一 .if流程控制语句
if语句:
格式:
if表达式:
语句
1. if语句
#练习if语句 aa=int(input("请你输入一个数是否是奇偶:")) if aa%2==0: print("是偶数") else: print("是奇数")
2. if语句else
#练习if语句 aa=int(input("请你输入一个数是否是奇偶:")) if aa%2==0: print("是偶数") else: print("是奇数")
#水仙花数 # aa=153%10 #3 各位 # aa=153//10 #15 # aa=153//10%10 # 5 十位 #aa=153//100 #1 百位 #求水仙花树 num =int(input("请输入一个数:")) aa=num%10 bb=num//10%10 cc=num//100 if num==aa**3+bb**3+cc**3: print("是水仙花数") else: print("不是一个水仙花数")
#找最大值 num1=int(input()) num2=int(input()) num3=int(input()) max=num1 #假设 if num2>num1: max=num2 if num3>max: max=num3 print("max=",max)
二 .if ..elif..流程控制语句
if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
当判断条件为多个值时,可以使用以下形式:
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
num = 5 if num == 3: # 判断num的值 print 'boss' elif num == 2: print 'user' elif num == 1: print 'worker' elif num < 0: # 值小于零时输出 print 'error' else: print 'roadman' # 条件均不成立时输出
#!/usr/bin/env python name=input('请输入用户名字:') password=input('请输入密码:') if name == 'egon' and password == '123': print('egon login success') else: print('用户名或密码错误') 练习一:用户登陆验证
#!/usr/bin/env python #根据用户输入内容打印其权限 ''' egon --> 超级管理员 tom --> 普通管理员 jack,rain --> 业务主管 其他 --> 普通用户 ''' name=input('请输入用户名字:') if name == 'egon': print('超级管理员') elif name == 'tom': print('普通管理员') elif name == 'jack' or name == 'rain': print('业务主管') else: print('普通用户') 练习二:根据用户输入内容输出其权限
三 .流程控制之while循环
1. while循环
while 条件:
# 循环体
# 如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件。。。
# 如果条件为假,那么循环体不执行,循环终止
count=0 while count <= 10: print('loop',count) count+=1
count=0 while count <= 10: if count%2 == 0: print('loop',count) count+=1
num=0 while num<5: num=num+1 print(num) # 1 # 2 # 3 # 4 # 5
# # sum=0 num=1 while num<=100: sum+=num num+=1 print(sum) #5050
# # str="ABCDEFGAAAAAAAAAAA" index=0 while index<len(str): print( index,str[index]) index+=1 # 1 ==== B # 2 ==== C # 3 ==== D # 4 ==== E # 5 ==== F # 6 ==== G
# 输出所有三位数的水仙花数 num=100 while num<=999: a=num%10 b=num//10%10 c=num//100 if num==a**3+b**3+c**3: print(num) num+=1 # 153 # 370 # 371 # 407
str=input("请输入字符串:") index=0 sum=0 while index<len(str): if str[index]>="0" and str[index]<="9": sum+=int(str[index]) index+=1 print(sum) # 字符串比较大小是比的ASCII的值
tag=True while tag: ...... while tag: ........ while tag: tag=False
#与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句,while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句 count = 0 while count <= 5 : count += 1 print("Loop",count) else: print("循环正常执行完啦") print("-----out of while loop ------") 输出 Loop 1 Loop 2 Loop 3 Loop 4 Loop 5 Loop 6 循环正常执行完啦 -----out of while loop ------ #如果执行过程中被break啦,就不会执行else的语句啦 count = 0 while count <= 5 : count += 1 if count == 3:break print("Loop",count) else: print("循环正常执行完啦") print("-----out of while loop ------") 输出 Loop 1 Loop 2 -----out of while loop ------
2.死循环
import time num=0 while True: print('count',num) time.sleep(1) num+=1
# 死循环 表达式永远为真的循环 while 2: print("哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈") var = 1 while var == 1 : # 该条件永远为true,循环将无限执行下去 num = raw_input("Enter a number :") print "You entered: ", num
四. 流程控制之for循环
1 .for 语句
格式:
for 变量名 in 集合
语句
for aa in 'Python': # 第一个实例 print ('当前字母 :', aa) # 当前字母 : P # 当前字母 : y # 当前字母 : t # 当前字母 : h # 当前字母 : o # 当前字母 : n
fruits = ['banana', 'apple', 'mango'] for bb in fruits: # 第二个实例 print ('当前字母 :', bb) # 当前字母 : banana # 当前字母 : apple # 当前字母 : mango
# range() 函数 列表生成器 # 功能:生成数列 print(range(10)) #range(0, 10) for aa in range(5): print(aa) #0 1 2 3 4
for b in range(2,20,2): print(b) # # 2 # 4 # 6 # 8 # 10 # 12 # 14 # 16 # 18
使用for循环同时遍历元素下标
numerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
Python 2.3. 以上版本可用,2.6 添加 start 参数
# enumerate(sequence, [start=0])
参数
sequence -- 一个序列、迭代器或其他支持迭代对象。
start -- 下标起始位置
seq = ['one', 'two', 'three'] for i, element in enumerate(seq): print (i, element) # 0 one # 1 two # 2 three
# for 循环求一加到100 sum=0 for a in range(1,101): #5050 sum+=a print(sum)
五 .break语句
break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,
也会停止执行循环语句。
break语句用在while和for循环中。
注意:只能结束最近的循环 就是当前循环
#!/usr/bin/python # -*- coding: UTF-8 -*- for letter in 'Python': # 第一个实例 if letter == 'h': break print ('当前字母 :', letter) # 当前字母 : P # 当前字母 : y # 当前字母 : t
var = 10 # 第二个实例 while var > 0: print ('当前变量值 :', var) var = var -1 if var == 5: # 当变量 var 等于 5 时退出循环 break # 当前变量值 : 10 # 当前变量值 : 9 # 当前变量值 : 8 # 当前变量值 : 7 # 当前变量值 : 6 #
# 注意循环中可以有else语句 break导致循环截止 不会执行else里的语句 num=1 while num<=10: print(num) # 1 2 3 if num==3: break num+=1 else: print("因为有braek就不会执行else中的语句")
六 . continue语句
Python continue 语句跳出本次循环,而break跳出整个循环。
continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
continue语句用在while和for循环中。
当前最近的循环
# var = 10 # 第二个实例 while var > 0: var = var -1 if var == 5: continue print ('当前变量值 :', var) # 当前变量值 : 9 # 当前变量值 : 8 # 当前变量值 : 7 # 当前变量值 : 6 # 当前变量值 : 4 # 当前变量值 : 3 # 当前变量值 : 2 # 当前变量值 : 1 # 当前变量值 : 0
for letter in 'Python': # 第一个实例 if letter == 'h': continue print ('当前字母 :', letter) # 当前字母 : P # 当前字母 : y # 当前字母 : t # 当前字母 : o # 当前字母 : n #
#break用于退出本层循环 while True: print "123" break print "456" #continue用于退出本次循环,继续下一次循环 while True: print "123" continue print "456"
七 .练习for ,while , for break ,continue
#1. 使用while循环输出1 2 3 4 5 6 8 9 10 #2. 求1-100的所有数的和 #3. 输出 1-100 内的所有奇数 #4. 输出 1-100 内的所有偶数 #5. 求1-2+3-4+5 ... 99的所有数的和 #6. 用户登陆(三次机会重试) #7:猜年龄游戏 要求: 允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出 #8:猜年龄游戏升级版 要求: 允许用户最多尝试3次 每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序 如何猜对了,就直接退出 #题一 count=1 while count <= 10: if count == 7: count+=1 continue print(count) count+=1 count=1 while count <= 10: if count != 7: print(count) count+=1 #题目二 res=0 count=1 while count <= 100: res+=count count+=1 print(res) #题目三 count=1 while count <= 100: if count%2 != 0: print(count) count+=1 #题目四 count=1 while count <= 100: if count%2 == 0: print(count) count+=1 #题目五 res=0 count=1 while count <= 5: if count%2 == 0: res-=count else: res+=count count+=1 print(res) #题目六 count=0 while count < 3: name=input('请输入用户名:') password=input('请输入密码:') if name == 'egon' and password == '123': print('login success') break else: print('用户名或者密码错误') count+=1 #题目七 age_of_oldboy=73 count=0 while count < 3: guess=int(input('>>: ')) if guess == age_of_oldboy: print('you got it') break count+=1 #题目八 age_of_oldboy=73 count=0 while True: if count == 3: choice=input('继续(Y/N?)>>: ') if choice == 'Y' or choice == 'y': count=0 else: break guess=int(input('>>: ')) if guess == age_of_oldboy: print('you got it') break count+=1
#打印九九乘法表
for i in range(1,10):
for j in range(1,i+1): print('%s*%s=%s' %(i,j,i*j),end=' ') print()
#分析 ''' #max_level=5 * #current_level=1,空格数=4,*号数=1 *** #current_level=2,空格数=3,*号数=3 ***** #current_level=3,空格数=2,*号数=5 ******* #current_level=4,空格数=1,*号数=7 ********* #current_level=5,空格数=0,*号数=9 #数学表达式 空格数=max_level-current_level *号数=2*current_level-1 ''' #实现 max_level=5 for current_level in range(1,max_level+1): for i in range(max_level-current_level): print(' ',end='') #在一行中连续打印多个空格 for j in range(2*current_level-1): print('*',end='') #在一行中连续打印多个空格 print() 打印金字塔
8 .三元运算符
# 三元运算符 a=6 b=2 f=a if a>b else b print(f) # 变量 = 条件返回True的结果 if 条件 else 条件返回Fales结果 # 6