pyhton 控制语句
程序在一般情况下是按顺序执行的,编程语言提供了各种控制结构,允许复杂的执行路径。循环语句允许执行一个语句或语句多次
if 控制语句 一、if 语句格式
何为真假?
假: 0 0.0 “” None Flase;计算表达式的值如果等于0、0.0、”空字符串”、None、Flase的都为假
真: 除了假的这些值,其他的都为真
1 2 3 4 5 6 if 表达式: 语句 当程序执行到if 语句时,首先计算"表达式" 的值,如果"表达式" 的值为真,就执行if 下的"语句" ;如果"表达式" 的值为假,则跳过整个if 语句,继续向下执行。
二、if-else 语句格式 1 2 3 4 5 6 7 8 if 表达式: 语句1 else : 语句2 当程序执行到if -else 时,首先计算"表达式" 的值,如果"表达式" 的值为真,则执行"语句1" ,执行完"语句1" 跳出整个if -else 语句;如果"表达式" 的值为假,则执行"语句2" ,执行完"语句2" 跳出整个if -else 语句。
三、if-elif-else 语句格式
注:elif 可以在一个if语句里出现多次,没有限制
1 2 3 4 5 6 7 8 9 10 11 12 13 if 表达式1 语句1 elif 表达式2 语句2 elif 表达式3 语句3 ...... else : 语句4 这里面的每个elif 都是对他上面所有表达式的否定;当程序执行if -elif -else 语句时,首先会计算“表达式1 ”的值,如果“表达式1 ”的值为真,则执行“语句1 ”,执行完“语句1 ”,则跳出整个if -elif -else 语句;如果“表达式1 ”为假,计算“表达式2 ”的值,如果“表达式2 ”的值为真,则执行“语句2 ”,执行完“语句2 ”,则跳出整个if -elif -else 语句;如果“表达式2 ”为假,计算“表达式3 ”的值;如此下去,直到某个表达式的值为真才停止,如果没有一个真的表达式,且有else ,则执行“else 语句”。
四、if 语句示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 age = int (input ("请输入年龄:" )) if age <= 0 : print ("你还没出娘胎" ) elif age <= 7 : print ("儿童" ) elif age <= 17 : print ("少年" ) elif age <= 22 : print ("成年" ) elif age <= 30 : print ("青年" ) elif age <= 50 : print ("壮年" ) elif age <= 100 : print ("老年" ) elif age <= 150 : print ("老寿星" ) else : print ("老妖怪" )
While循环语句 一、while 循环使用场景
循环的作用就是让 指定的代码 重复的执行
while
循环最常用的应用场景就是 让执行的代码 按照 指定的次数 重复 执行
需求 —— 打印 5 遍 Hello Python
思考 —— 如果要求打印 100 遍怎么办?
二、while 语句格式 1 2 3 4 5 6 7 8 9 10 11 12 while 表达式: 语句 当程序执行到while 语句时,首先会计算表达式的值,如果表达式的值为假,结束整个while 语句,如果表达式的值为真,则执行语句,执行完语句再去计算表达式的值,如果表达式的值还为真,则在执行语句...... 直到表达式的值为假才会停止,否则一直循环。 num = 1 while num <= 5 : print ("num = %d" % num) num += 1
三、while-else 语句格式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 while 表达式: 语句1 else : 语句2 当while 表达式为真时,循环执行“语句1 ”,当语句1 执行结束后,在执行else 中的“语句2 ”;当while 条件为假时;则执行else 中的“语句2 ”,当“语句2 ”执行结束后,退出整个while 循环。并且while 如果是以break 导致循环截止的,同样不会执行else 下面的语句。 只有在while 表达式为假时才执行else 中的语句 index = 0 while index < 5 : index += 1 print (index) if index == 3 : break else : print ("my name is a lemon" )
四、while 简单示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 '''死循环:表达式永远为真的循环 例如: while 1 + 1 == 2: #1 + 1永远等于2 print("my name is a lemon") ''' '''用while计算1+2+3+....+100的总数 num1 = 0 num2 = 1 while num2 <= 100: num1 += num2 num2 += 1 print("num1 = %d" % (num1)) # num1 = 5050 ''' '''将str1变量中的字符串每个字符都打印一遍,并且显示每个字符的序列号 str1 = "lemon" index = 0 while index < len(str1): print(index, str1[index]) index += 1 '''
五、while 语句练习 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 '''打印出所有三位数中水仙花数 num = 100 while num <= 999: n = num // 100 u = num // 10 % 10 m = num % 10 if num == n**3 + u**3 + m**3: print("水仙花数: %s" % (num)) num += 1 ''' '''如何将所有五位数中的回文数都列出来 num = 10000 while num <= 99999: a = num // 10000 % 10 # 万 b = num // 1000 % 10 # 千 c = num // 10 % 10 # 十 d = num % 10 # 个 if a == d and b == c: print("回文数 = %d" % (num)) num += 1 ''' '''从控制台输入一个数,分解质因数;例如:90=2x3x3x5 num = int(input("请输入质因数:")) i = 2 while num != 0 and num != 1: if num % i == 0: print(i) num //= i else: i += 1 ''' '''从控制台输入字符串,返回这个字符串中有多少个单词 str1 = input("请输入一行字符串:") str2 = str1.strip() index = 0 count = 0 while index < len(str2): while str2[index] != " ": index += 1 if index == len(str2): break count += 1 if index == len(str2): break while str2[index] == " ": index += 1 print(count) ''' '''输入五个数,找出第二大的值 listNum = [] num = 0 while num < 5: val = int(input("请输入五次除了浮点数以外的数字:")) listNum.append(val) # 将val的值追加到list列表里 num += 1 print(listNum) listNum.sort() # 升序排序 count = listNum.count(listNum[len(listNum) - 1]) c = 0 while c < count: listNum.pop() c += 1 print(listNum[len(listNum) -1]) '''
For 循环语句 一、for 语句格式 1 2 3 4 5 6 7 8 9 10 for 变量名 in 集合: 语句 按顺序取“集合”中的每个元素赋值给“变量”,再去执行语句。如此反复循环,直到取完“集合”中的元素截止。 for i in [1 , 2 , 3 , 4 , 5 ]: print (i)
二、range 函数方法
功能: 生成数列
格式: range([start], [end], [step])
解释: start 默认是 0、step 默认是1,这两个是可有可无的,但是end是必须有的 !!
示例:
1 2 3 4 5 6 7 for t in range (5 ): print ("t = %d" % (t)) for y in range (2 , 10 + 1 , 2 ): print ("y = %d" % (y))
三、enumerate 函数方法
功能: 同时生成下标和元素值
格式: enumerate([list])
示例:
1 2 for index, i in enumerate ([1 , 2 , 3 , 4 , 5 ]): print ("index = %d" % (index), "i = %d" % (i))
四、for 语句简单示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 '''用for计算1+2+3+......+100的总核数 sum = 0 for i in range(1,100 + 1): sum += i print("总核数 = %d" % (sum)) # 总核数 = 5050 ''' '''从控制台输入一个数,判断是否是质数;质数:只能被1和自身整除的就是质数,其中,2就是质数,1则不是 # 用户输入数字 num = int(input("请输入一个数字: ")) # 质数大于 1 if num > 1: # 查看因子 for i in range(2, num): if (num % i) == 0: print(num, "不是质数") print(i, "乘于", num // i, "是", num) break else: print(num, "是质数") # 如果输入的数字小于或等于 1,不是质数 else: print(num, "不是质数") '''
break & continue 控制语句 一、break 语句
作用: 跳出while和for的循环
注意: 只能跳出距离他最近的那一层循环
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 list = [10 , 20 , 30 , 40 , "lemon" ]index = 0 while index < 5 : print (list [index]) index += 1 if index == 4 : break for i in range (1 , 10 ): print (i) if i == 5 : break
二、continue 语句
作用: 跳过当前循环中的剩余语句,然后继续下一次循环
注意: 只能跳过距离他最近的那一层循环
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 num = 0 while num < 5 : num += 1 print (num) if num == 3 : continue print ("@" ) print ("*" ) for i in range (5 ): print (i) if i == 3 : continue print ("@" ) print ("*" )