程序的描述方式



程序的组织结构

顺序结构



选择结构
选择结构if






双分支结构



多分支结构

score = eval(input('请输入你的成绩:'))
if score<0 or score>100:print('成绩有误!')
elif 0<=score<=60:print('E')
elif 60<=score<=70:print('D')
elif 70<=score<=80:print('C')
elif 80<=score<=90:print('B')
else:print('A')
嵌套if的使用

answer=input('请问,你喝酒了吗')
if answer == 'y': #answer的值为y表示喝酒了proof=eval(input('请输入酒精含量:'))if proof<20:print('构不成酒驾,祝你一路平安')elif proof<80: #20<=proof<80print('已构成酒驾,请不要开车')else:print('已达到了醉驾标准,请不要开车')
else:print('你走吧')

多个条件的连接

user_name = input('请输入你的用户名:')
pwd = input('请输入你的密码:')
if user_name == 'July' and pwd == '888888':print('登陆成功')
else:print('用户名或者密码不正确')

score = eval(input('请输入你的成绩:'))
if score<0 or score>100:print('成绩无效')
else:print('你的成绩为:',score)
模式匹配
score = input('请输入你的成绩:')
match score:
case 'A':print('优秀')
case 'B':print('良好')
case 'C':print('中等')
case 'D':print('及格')
case 'E':print('不及格')
遍历循环for

#遍历字符串
for i in 'hello':print(i)
#range()函数,Pyhton中的内置函数,产生一个[n,m]的整数序列,包含n,但是不包含m
for i in range(1,11):if i % 2 == 0:print(i,'是偶数')#计算1-10之间的累加和
s=0;
for i in range(1,11):s+=i;
print('1-10之间的累加和为:',s)
'''
153=3*3*3 + 5*5*5 + 1*1
'''
for i in range(100,1000):sd = i%10 #获取个位上的数字 153%10 -->3tens = i//10%10 #获取十位上的数字 153//10-->15 15%10-->5hundred = i//100 #获取百位上的数字 153//100-->1#判断if sd**3+tens**3+hundred**3==i:print(i)
s=0;
for i in range(1,11):s=s+i
else:print('1-10之间的累加和为:',s)
无限循环结构

#(1)初始化变量
answer=input('今天要上课吗?y/n')
while answer=='y':#(2)条件判断print('好好学习,天天向上')#(3)语句块#(4)改变变量answer=input('今天要上课吗?y/n')# 1-100之间的累加和s=0#存储累加和i=1 #(1)初始化变最while i<=100:#(2)条件判断s+=i #(3)语句块#(4)改变变量i+=1print('1-100之间的累加和:',s)#循环正常结束# 1-100之间的累加和s=0#存储累加和i=1 #(1)初始化变最while i<=100:#(2)条件判断s+=i #(3)语句块#(4)改变变量i+=1else:print('1-100之间的累加和:',s)
使用while循环模拟用户登录
#(1)初始化变量
i=0
while i<3: #(2)条件判断0,1,2#(3)语句块user_name=input('请输入你的用户名:')pwd=input('请输入你的密码:')#登陆操作,if...else...if user_name=='July' and pwd=='123456':print('系统正在登陆,请稍后')#需要改变循环变量,目的:退出循环i=8#第三行 判断i<3,8<3 False退出while循环 #(4)改变变量else:if i<2:print('用户名或密码不正确,你还有',2-i,'次机会')i+=1 #(4)改变变量#单分支的判断
if i==3: #当用户名或密码输入3次不正确的时候,循环执行结束了,i的最大值为3print('对不起,三次均输入错')
嵌套循环打印输出长方形和三角形


#三行四列
for i in range(1,4): #外层循环行for i in range(1,5): #内层循环 列print('*',end='')print() #空的print语句,作用是换行print('-----------------')
for i in range(1,6): #5行# *的个数与行相同,range(1,2),第二行,range(1,3)for j in range(1,i+1):print('*',end='')print() #换行
#倒三角
#1-->5 range(1,6) ,2-->4 range(1,5) ,3-->3 range(1,4)
for i in range(1,6):for j in range(1,7-i):print('*',end='')print() #空print()换行print('-----------------')for i in range(1,6):#倒三角形for j in range(1,6-i):#print('&',end='')print(' ', end='')#1,3,5,7...等腰三角形range(1,2),range(1,4),range(1,6)...for k in range(1,i*2):print('*',end='')print() #当2个并列的for循环执行完毕之后,再换行
嵌套循环打印输出菱形和空心菱形

row = eval(input('请输入菱形的行数:'))
while row%2==0: #判断行数的奇偶性,行数是偶数,重新输入行数print('重新输入菱形的行数:')row=eval(input('请输入菱形的行数:'))#7#输出菱形的
top_row=(row+1)//2 #上半部分的行数 #4
#上半部分
for i in range(1,top_row+1):#(1,4)#倒三角形for j in range(1,top_row+1-i):print('&',end='')#print(' ', end='')#1,3,5,7...等腰三角形range(1,2),range(1,4),range(1,6)...for k in range(1,i*2):print('*',end='')print() #当2个并列的for循环执行完毕之后,再换行#下半部分
bottom_row=row//2 #3
for i in range(1,bottom_row+1):#直角三角形for j in range(1,i+1):print(' ',end='')#倒三角形for k in range(1,2*bottom_row-2*i+2): #1-->range(1,8) 2-->range(1,6) 3-->range(1,4)print('*',end='')print()
row = eval(input('请输入菱形的行数:'))
while row%2==0: #判断行数的奇偶性,行数是偶数,重新输入行数print('重新输入菱形的行数:')row=eval(input('请输入菱形的行数:'))#7#输出菱形的
top_row=(row+1)//2 #上半部分的行数 #4
#上半部分
for i in range(1,top_row+1):#(1,4)#倒三角形for j in range(1,top_row+1-i):print(' ',end='')#print(' ', end='')#1,3,5,7...等腰三角形range(1,2),range(1,4),range(1,6)...for k in range(1,i*2):if k==1 or k==i*2-1:print('*',end='')else:print(' ',end='')print() #当2个并列的for循环执行完毕之后,再换行#下半部分
bottom_row=row//2 #3
for i in range(1,bottom_row+1):#直角三角形for j in range(1,i+1):print(' ',end='')#倒三角形for k in range(1,2*bottom_row-2*i+2): #1-->range(1,8) 2-->range(1,6) 3-->range(1,4)if k==1 or k==2*bottom_row-2*i+2-1:print('*',end='')else:print(' ',end='')print()
程序跳转使用
break在循环中的使用

s=0#存储累加和
i=1#(1)初始化变量
while i<11: #(2)条件判顺#(3)语句块s+=iif s>20:print('累加和大于20的当前数是:',i)breaki+=1 #(4)改交变最
i=0#统计登录的次数(1)初始化变量
while i<3: #(2)条件判断#(3)语句块user_name=input('请输入用户名:')pwd=input('请输入密码:')if user_name=='July' and pwd=='888888':print('系统正在登录,请稍后...')breakelse:if i<2:print('用户名或密码不正确,您还有',2-1,'次机会')#(4)改变变量i+=1
else:print('三次都输入错误!')

for i in 'hello':if i=='e':breakprint(i)
print('---------------------')for i in range(3):# (3)语句块user_name = input('请输入用户名:')pwd = input('请输入密码:')if user_name == 'July' and pwd == '888888':print('系统正在登录,请稍后...')breakelse:if i < 2:print('用户名或密码不正确,您还有', 2 - 1, '次机会')
else:print('三次都输入错误!')
continue在循环中的使用


s=0
i=1 #(1)初始化变最
while i <=100:#(2)条件判断#(3)语句块if i%2==1:# 奇数i+=1continue # 不再执行后面的代码了# 累加求和的代码s+=1i+=1
print('1-100之间的偶数和:',s)
s=0
for i in range(1,101):if i%2==1:# 奇数continue # 不再执行后面的代码了# 累加求和的代码s+=1
print('1-100之间的偶数和:',s)
空语句pass


总结


实战
实战1

year=eval(input('请输入一个四位的年龄:'))
if (year%4==0 and year%100!=0 or year%400==0):print(year,'年是闰年')
else:print(year,'年是平年')
实战2

#(1)初始化变量
answer='y'
#(2)条件判断
while answer=='y':#(3)循环操作,语句块print('---------------欢迎使用10086查询功能-------------------------------')print('1.查询当前余额')print('2.查询当前的剩余流量')print('3.查询当前的剩余通话时长')print('0.退出系统')choice =input('请输入你要执行的操作:')if choice=='1':print('当前的余额为123.4块')elif choice=='2':print('当前的剩余流量为:4GB')elif choice=='3':print('当前的剩余通话时长为:300分钟')elif choice=='0':print('程序退出,谢谢你的使用')breakelse:print('对不起,你的输入有误,请重新输入:')#(4)改变变量answer=input('还要继续操作吗?y/n')
else:#while...elseprint('程序退出,谢谢你的使用')
实战3

for i in range(1,10):for j in range(1,i+1):print(str(j)+'*'+str(i)+'='+str(i*j),end=' \t')print()
实战4

import random
rand = random.randint(1,100)#产生1-100之间的随机数
count=1 #记录猜数的次数
while count <= 10:number=eval(input('在我心中有个数,1-100之间,请你猜一猜:'))if number==rand:print('猜对了')breakelif number>rand:print('大了')elif number<rand:print('小了')count+=1 #每猜一次count次数要加1
#判断次数
if count<=3:print('真聪明,一共猜了',count,'次')
elif count<=6:print('还可以,一共猜了',count,'次')
else:print('猜的次数多,一共猜了',count,'次')