Python控制语句/循环语句
1.控制语句
1.1.判断语句 if...elif...else
# if 语句(比较/逻辑/成员均可) # 字符串/列表/元组/字典 为空返回False,非空返回True # 条件成立返回True,不成立返回False
ar = "" list = []
tuple = ()
dic = {} if ar: # 条件成立返回True继续执行,不成立返回False不执行 print ( " 返回True执行此句... " )
age=5 if age>10: # 当if后面的语句满足条件,运算结果是True执行子语句 print ( " 恭喜你10岁了 " )
age = 34 if age<18 : print ( " 未成年 " ) elif age==18 : print ( " 成年了 " ) elif age==30 : print ( " 而立之年 " ) elif age==60 : print ( " 花甲之年 " ) else : print ( " 你输入的年龄是{0} " .format(age))
# input()该函数获取控制台输入内容,必须为int类型 age = int(input( " 请输入年龄: " )) # 将控制台输入内容转换为int类型 if age<18 : print ( " 未成年 " ) elif age==18 : print ( " 成年了 " ) elif age==30 : print ( " 而立之年 " ) elif age==60 : print ( " 花甲之年 " ) else : print ( " 你输入的年龄是{0} " .format(age))
1.2.练习题
第一题:
一个足球队在寻找年龄在10岁到12岁的小女孩(包括10岁和12岁)加入。编写一个程序,询问用户的性别(m表示男性,
f表示女性)和年龄,然后显示一条消息指出这个人是否可以加入球队,询问10次后,输出满足条件的总人数 # 10<=age<=12 # sex = str(input("请问性别:")) num = 0 for a in range(0,10 ):
sex = str(input( " 请问性别: " ))
age = int(input( " 输入年龄: " )) if sex== " f " and 10<=age<=12 :
num =num+1 print ( " 性别:{0},这个{1}岁的小女孩,第{2}个符合条件... " .format(sex,age,num)) else : pass
第二题:
输入num为四位数,对其中按照如下的规则进行加密: 1 )每一位分别加入5,然后分别将其替换为该数除以10取余后的结果 2 )将该数的第一位和第4位互换,第二位和第三位互换 3 )最后合起来作为加密后的整数输出
num = int(input( " 请输入一个四位数: " )) if 999<num<=9999 :
num_str = str(num)
a = num_str[0]
b = num_str[1 ]
c = num_str[2 ]
d = num_str[3 ]
num_new = d+c+b+ a print (int(num_new)) else : print ( " 非四位数 " )
第三题:
一家商场在降价促销。如果购买金额50 -100元(包含50元和100元)之间,会给10% 的折扣,
如果购买金额大于100元会给20 %折扣,编写一个程序,询问购买价格,再显示出折扣(10%或20% )和最终价格
price = int(input( " 购买了多少钱的商品: " )) if 50<=price<=100 : print ( " 购买金额:{0},享受折扣:{1},折扣金额:{2},最终价格:{3} " .format(price, " 10% " ,price*0.1,price-price*0.1 )) elif price>100 : print ( " 购买金额:{0},享受折扣:{1},折扣金额:{2},最终价格:{3} " .format(price, " 20% " ,price*0.2,price-price*0.2 )) else : print ( " 无折扣... " )
第四题:
生成随机整数,从1 - 9取出来。然后输入一个数字,来猜,如果大于,则打印bigger。
小的,则打印less。如果相等,则打印equal import random
num = random.randint(1,10 )
input_num = int(input( " 输入一个数字: " )) if num== input_num: print ( " {0} == {1} 输出:{2} | {3} " .format(num,input_num,True, " equal " )) elif num> input_num: print ( " {0} > {1} 输出:{2} | {3} " .format(num,input_num,True, " bigger " )) elif num< input_num: print ( " {0} < {1} 输出:{2} | {3} " .format(num,input_num,True, " less " )) else : print ( " 随机数:{0}, 输入数字:{1} " .format(num,input_num))
2.控制语句 for&while
2.1.for循环
# for循环 # for item in 某个数据类型:字符串、列表、元组、字典、集合等 # 代码块 # 遍历字符串 str_new = " abcdefg " for item in str_new: #for循环遍历str_new里面的元素,然后赋值给item print (item) # 遍历列表 list_new = [1,2,3,4,5,6,7,23 ] for item in list_new: print (item) # 遍历元组 tuple_new = (1,2,3,4,5,6,22222 ) for uu in tuple_new: print (uu) # 遍历出字典中所有的key dit = { " name " : " 张三 " , " password " : " 123456 " , " age " :23 } for item in dit: print (item)
2.1.1.for循环中的range()
# range()函数 range(m,n,k) m头,n尾,k步长 取头不取尾 # range函数 生成整数序列 # for item in range(x,y): # 代码块 for item in range(5): # range(m,n,k) m默认为0,k默认为1 print (item) # 0 1 2 3 4
2.1.2.for循环
# 遍历出L中所有的元素 L = [1,4,2,7,9 ] for item in range(0,len(L)-1 ): print (L[item])
# 请利用for循环和range函数,完成1-100整数相加的和(包含1,100) sum = 0 for item in range(1,101 ):
sum = sum+ item print (sum)
2.1.3.嵌套循环
# 打印出嵌套列表中所有的值 L = [[ " a " , " c " , " c " , " e " ],[ " rr " , " dd " , " ww " ],[ " aa " , " ww " , " qq " ],[ " hh " , " tt " , " uu " , " xx " , " ii " ]] for item in range(0,len(L)): for item2 in range(0,len(L[item])): print (L[item][item2])
# 利用嵌套for循环生成一个直角三角形 # * # ** # *** # **** # ***** for a in range(0,5 ): for b in range(0,a+1 ): print ( " * " ,end= '' ) print ( "" )
2.2.while循环
# while 控制循环 # 语法: # while 条件表达式: 逻辑/程远/比较/空数据/布尔值 # 代码块 # 执行规律:首先判断while 后面的条件大大是是否成立 # 如果True那就执行代码块,执行完毕后,继续判断--->如果True那就执行代码块 # 否则不进入内部执行
while 3==2 : print ( " 执行通过 " )
a = 1 # 初始值 while a<10 : print ( " 来了老弟!!! " )
a =a+1
# 利用while循环实现1-100整数相加 num = 0
sum = 0 while num<=100 :
sum = sum+ num
num =num+1 print (sum)
# while 与 if 语句搭配使用 break,continue # break 结束 # continue 结束当前循环,继续下次循环