python for迴圈實現小功能,推導式總結分享
For 迴圈
一、使用for迴圈實現簡單功
'''
乘法表
1--9乘法表
for迴圈實現數字遍歷
'''
for i in range(1,10): # 行中
for s in range(1,i+1):# 列中 print('%s X %s=%s'%(s,i,s*i),end ='') print()
'''
星星
實現星星以三角形排列
'''
for i in range(1,9):# 行
for s in range(len(range(1,9))-i):
print(' ',end ='')
i):# 列
',end = '')print()
'''
金額小寫=>大寫
對迴圈數字進行拆分
對數組合
'''
list_num = ['零','壹','貳','叄','肆','伍','陸','柒','捌','玖']
list_U = ['園','拾','佰','仟','萬']
input_num = input('輸入數字:')
len_U = len(input_num)
for i in input_num:
len_U -=1
print("{0}{1}".format(list_num[int(i)],list_U[len_U]),end='')
print('整')
執行:
E:\python_VS_code\directory[目錄]>D://py3.6//python.exe e:/python_VS_code/directory[目錄]/demo0802/py_for_mult.py
1 X 1=1
1 X 2=22 X 2=4
1 X 3=32 X 3=63 X 3=9
1 X 4=42 X 4=83 X 4=124 X 4=16
1 X 5=52 X 5=103 X 5=154 X 5=205 X 5=25
1 X 6=62 X 6=123 X 6=184 X 6=245 X 6=306 X 6=36
1 X 7=72 X 7=143 X 7=214 X 7=285 X 7=356 X 7=427 X 7=49
1 X 8=82 X 8=163 X 8=244 X 8=325 X 8=406 X 8=487 X 8=568 X 8=64
1 X 9=92 X 9=183 X 9=274 X 9=365 X 9=456 X 9=547 X 9=638 X 9=729 X 9=81
*
*** ***** *******
輸入數字:1234
壹仟貳佰叄拾肆園整
二、推導式:
列表推導式:
va=[rxp for out in list if (out 條件)]
獲得兩個列表交集
va3=[10,20,30,40]
va4=[20,30,50,60,70]
Va5=[ num for num in va3 if num in va4]
獲得並集
va6=[ num for num inva3 if num not inva4 ]
print(va6)
print(va4+va6)
獲得差集
va7=[ num for num inva4 if num not inva3 ]
print(va7)
獲得0-99之間的 奇數的二倍值
va2=[i*2 for i in range(100) if i%2!=0 ]
print('va2,',va2)
生成器 物件
(元組推導式)
gen=( i for i in range(5))
print(gen)
for i in gen:
print(i)
字典推導式
mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3,'B':20,'b':50}
var={keyexcept:vaExcept forkey in 字典物件 }
if k.lower() in ['a','b','z']判斷條件
mcase_frequency = {
k.lower(): mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0) #第三部執行
for k in mcase.keys()#第一步
if k.lower() in ['a','b','z'] #第二部判斷執行 true 執行第三部
集合推導式
mcase_key={key for key inmcase ifkey== key.lower()}
三,同樣要求的三種不同解決方式
'''
統計字串中數字和字母的個數
1.使用異常處理非數字 try...except
2.使用內建函式判定非數字isdigit()
3.使用字元轉換判斷數字字母範圍。
ord() 字元轉ascii碼 chr() ascii碼轉字元
'''
str_for = 'adashgdkahfqa223354564'
num = 0
str_num = 0
'''
第一種
'''
for i in str_for:
try:
int(i)
num +=1
except ValueError:
str_num +=1
print('數字:',num,'\n''字母:',str_num)
'''
第二種
'''
num1 = 0
str_num1 = 0
for i in str_for:
if i.isdigit() == True:
num1 +=1
else:
str_num1 +=1
print('數字:',num1,'\n''字母:',str_num1)
'''
第三種
'''
num2 = 0
str_num2 = 0
for i in str_for:
= 5}
print(dict_infer)
文章轉載自python教程網:www.99kao.com 轉載請註明出處