一、if 分支結構
if 判斷條件可以是任意的類型,當下面的值作爲bool表達式時,會被解釋器作爲False處理
False、None、0、""、[]、()、{}
s=""
if s:
print('s不是空字符串')
else:
print('s是空字符串')
my_list=[]
if my_list:
print('不是空列表')
else:
print('是空列表')
my_dict={}
if my_dict:
print('不是空字典')
else:
print('是空字典')
# if的使用,不做任何處理的if判斷分支可用pass
s = input("請輸入一個整數:")
s= int(s)
if s>5:
print('大於5')
elif s<5:
#空語句,相當於佔位符
pass
else:
print('等於5')
#斷言,不滿足斷言則報錯
age = 30
assert 20<age<80
#while的使用
count_i = 0
while count_i<10:
print('count',count_i)
count_i+=1
print('循環結束')
a_tuple = ('fkit','crazy','char')
i =0
while i<len(a_tuple):
print(a_tuple[i])
i+=1
src_list = [12,324,546,3423,67,234,546,23]
a_list=[]
b_list=[]
c_list=[]
while len(src_list)>0:
ele=src_list.pop()
if ele%3==0:
a_list.append(ele)
elif ele%3 ==1:
b_list.append(ele)
else:
c_list.append(ele)
print(a_list,b_list,c_list)
#for循環
result = 1
for x in range(1,8):
result*=x
print(result)
for x in a_list:
print('當前元素',x)
my_dict = {'語文':89,'數學':92}
for key,value in my_dict.items():
print(key,value)
for key in my_dict.keys():
print(my_dict[key])
for value in my_dict.values():
print(value)
src_list = [12,324,546,3423,67,234,546,23]
statist={}
for x in src_list:
if x in statist:
statist[x]+=1
else:
statist[x]=1
print(statist)
#循環體使用else
from builtins import print
count = 0
while count<5:
print('count小於5',count)
count+=1
else:
print('count大於5')
"""循環的else代碼是塊是python的一個很特殊的語法,else代碼塊的主要作用是便於生成更優雅的python代碼"""
"""for循環同樣可以使用else代碼塊,當for循環把區間、元組、或者列表的所有元素遍歷一次之後,for循環會執行
else代碼塊,在else代碼塊中,循環計數器的值依然等於最後一個元素的值"""
a_list = [330,1.4,50,'fkit',-3.5]
for ele in a_list:
print('元素',ele)
else:
print('else元素塊',ele)
for i in range(0,5):
j =0
#內層循環
while j < 3:
print('i的值爲:%d,j的值爲:%d' % (i,j))
j+=1
# for表達式
a_list = [x*x for x in range(10)]
print(a_list)
b_list = [x*x for x in range(10) if x%2 == 0]
print(b_list)
#for表達式生成器
"""如果將for表達式的方括號改爲圓括號,for表達式將不再生成列表,而是生成一個生成器,該生成器同樣可使用
for循環迭代"""
c_list = (x*x for x in range(10) if x%2 == 0)
print({c_list})
for i in c_list:
print(i)
d_list = [(x,y)for x in range(5) for y in range(4)]
print(d_list)
#[(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3), (3, 0),
# (3, 1), (3, 2), (3, 3), (4, 0), (4, 1), (4, 2), (4, 3)]
"""上面代碼中x是遍歷range(5)的計數器,因此x可迭代5次,y是遍歷range(4)的計數器,因此該y可以迭代4次,因此
(x,y)表達式一共會迭代20次"""
e_list = [(x,y,z) for x in range(5) for y in range(4) for z in range(6)]
#e_list列表包含120個元素
print(e_list)
src_a = [30,12,66,34]
src_b = [3,5,7,11]
#只要y能整除x,就配對在一起
result =[(x,y) for x in src_b for y in src_a if y%x ==0]
print(result)
#常用的工具函數
"""zip()函數將兩個列表壓縮成一個列表,也可以將三個列表壓縮成一個列表"""
kl = [x for x in zip(src_a,src_b)]
print(kl) #[(30, 3), (12, 5), (66, 7), (34, 11)]
"""reversed()函數反轉序列"""
a_list = [x for x in reversed(range(10))]
print(a_list)
"""sorted()函數序列排序"""
print(sorted(src_a))
"""sorted函數"""
my_list = ['qwbe','qw','kqwkeqn','asdbd']
for s in sorted(my_list,key=len):
print(s)
"""break控制循環"""
def test():
for i in range(10):
print('asdasd',i)
for j in range(10):
if j==1:
return
print("return後的輸出語句")
test()
二、數字轉人民幣讀法demo
"""數字轉人民幣讀法"""
def divide(num):
integer = int(num)
fraction = round((num - integer) * 100)
return (str(integer), str(fraction))
han_list = ['零', '壹', '貳', '叄', '肆', '伍', '陸', '柒', '捌', '玖']
unit_list = ["十", "百", "千"]
def four_to_hanstr(num_str):
result = ""
num_len = len(num_str)
for i in range(num_len):
num = int(num_str[i])
if i != num_len - 1 and num != 0:
result += han_list[num] + unit_list[num_len - 2 - i]
else:
result += han_list[num]
return result
def integer_to_str(num_str):
#獲取整數的長度
str_len = len(num_str)
#如果長度大於12
if str_len > 12:
print('數字太大,翻譯不了')
return
elif str_len>8:
return four_to_hanstr(num_str[:-8])+"億"+ \
four_to_hanstr(num_str[-8:-4]) +"萬"+ \
+ four_to_hanstr(num_str[-4:])
# 如果大於4位,包含單位‘萬’
elif str_len>4:
return four_to_hanstr(num_str[:-4])+"萬"+\
four_to_hanstr(num_str[-4:])
else:
return four_to_hanstr(num_str)
num=float(input("請輸入一個浮點數:"))
integer,fraction = divide(num)
print(integer,fraction) #整數部分,小數部分
print(integer_to_str(integer))
print(fraction)
三、九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print("%2d * %2d = %2d" % (j, i, i * j), end = " ")
print()