Python的流程控制 if while break continue return

一、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()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章