顺序结构
就像是input语句后面接print语句
代码演示
name="张三" a=b=c=d=100 #链式赋值 a,b,c,d="zoom" #可以分解赋值 print(a) print(b) print(c) print(d) name2=input("请输入你的姓名") age=eval(input("请输入你的年龄")) luck_number=eval(input("请输入你的幸运数字")) print(name2) print(age) print(luck_number)
代码运行结果
z
o
o
m
请输入你的姓名代
请输入你的年龄18
请输入你的幸运数字21
代
18
21
选择结构
and or 的使用,类似与C语言的&&和||
代码演示
use_number=input(("请输入你的用户名")) password=eval(input("请输入你的密码")) if use_number=="dai" and password==123456 : print("登入成功") else: print("你的密码或者用户名不正确") sorce=eval(input("请输入你的成绩")) if sorce<0 or sorce>100: print("你的成绩输入错误") else: print("你的成绩是",sorce)
代码运行结果
请输入你的用户名dai
请输入你的密码123456
登入成功
请输入你的成绩54
你的成绩是 54
或者
(请输入你的用户名ddd
请输入你的密码123
你的密码或者用户名不正确
请输入你的成绩120
你的成绩输入错误)
单分支选择结构
代码演示
flag=input("请输入一个布尔型的值Ture or false:") if flag: print("ture") if not flag: print("false") number=eval(input("请输入你的中奖号码:")) if number==123456: print("恭喜你中奖了") if number!=123456: print("谢谢惠顾") ''' if n%2: #n%2为0,所以不执行 print(n,"是奇数") ''' n=98 if not n%2: #not 的功能为取反 print(n,"是偶数") x=input("请输入一个字符串:") if x: print("这不是一个空字符串") if not x: print("这是一个空字符串") a=10 b=5 if a>b:max=a #只有一条语句可以直接写在冒号的后面 print(a,"是最大的值")
代码运行结果
请输入一个布尔型的值Ture or false:Ture
ture
请输入你的中奖号码:123456
恭喜你中奖了
98 是偶数
请输入一个字符串:123#(直接回车不输入代表空字符串,if not x: print("这是一个空字符串"))
这不是一个空字符串
10 是最大的值
双分支选择结构
代码演示
number=eval(input("请输入你的中奖号码"))
if number==123456:
print("恭喜你中奖了")
else:
print("谢谢惠顾")
print("~~~~~~以上代码可以简化~~~~~~~~~~")
result="恭喜你中奖了"if number==123456 else"谢谢惠顾"
print(result)
#继续简化
print("恭喜你中奖了"if number==123456 else"谢谢惠顾")
代码运行结果
请输入你的中奖号码123456
恭喜你中奖了
~~~~~~以上代码可以简化~~~~~~~~~~
恭喜你中奖了
恭喜你中奖了
多分支选择结构
代码演示
sorce=eval(input("请输入你的成绩")) if sorce<0 or sorce>100: print("你的成绩有误") elif 0<=sorce<=60: print("E") elif 60<sorce<70: print("D") elif 70<=sorce<80: print("C") elif 80<=sorce<90: print("B") elif 90<=sorce<=100: print("A")
代码运行结果
请输入你的成绩100
A
或者
请输入你的成绩120
你的成绩有误
if语句的嵌套使用
代码演示
answer=input("请问你喝酒了吗(yes or no)") if answer"yes": proof=eval(input("请输入酒精含量")) if proof<20: print("酒精含量小,祝你一路平安") elif proof<80: print("你已经达到酒驾标准,请不要开车") else : print("你已经达到醉驾标准,千万不要开车") else : print("你走吧,每你什么事情")
代码运行结果
请问你喝酒了吗(yes or no)yes
请输入酒精含量50
你已经达到酒驾标准,请不要开车
或者
请问你喝酒了吗(yes or no)no
你走吧,每你什么事情
循环语句
无限循环while的使用
代码演示
answer=input("你今天要上课吗 yes or no")#初始化变量 while answer=="yes":#条件判断 print("好好学习天天向上")#语句块 answer = input("你今天要上课吗 yes or no")#改变变量 s=0 i=1#初始化变量 while i<=100:#条件判断 s+=i i+=1#改变变量 print("1到100的累加和为",s) ''' 条件判断 初始化变量 改变变量 这3个通常是一个变量 ''' while i<=100:#条件判断 s+=i i+=1#改变变量 else:#正常执行完毕执行else(类似break语句为非正常执行) print("1到100的累加和为",s)
代码运行结果
你今天要上课吗 yes or noyes
好好学习天天向上
你今天要上课吗 yes or noyes
好好学习天天向上
你今天要上课吗 yes or nono (一直回答yes将会无限循环)
1到100的累加和为 5050
1到100的累加和为 5050
while语句(用户名的输入)
代码演示
i=0 while i<3: use_name=input("请输入你的用户名") password=input("请输入你的密码") if use_name=="dai"and password=="888888": print("登入成功") i=8 else : if i<2: print("你还有",2-i,"次输入机会") i+=1 if i==3: print("3次机会已经用完")
代码运行结果
请输入你的用户名dai
请输入你的密码888888
登入成功
或者
请输入你的用户名123
请输入你的密码123
你还有 2 次输入机会
请输入你的用户名123
请输入你的密码123
你还有 1 次输入机会
请输入你的用户名123
请输入你的密码123
3次机会已经用完
for循环的使用
代码演示
for i in "hellow":
print(i)
for i in range(1,10):#到9
print(i)
s=0
for i in range(1,11):
s+=i
print("1加到10的和为:",s) (Python有严格的缩进,print的位置会影响输出结果)
代码运行结果
h
e
l
l
o
w
1
2
3
4
5
6
7
8
9 (print语句中有自带/n,所以换行,基础章提及)
1加到10的和为: 55
水仙花数
代码演示
for i in range(100,1000): sd=i%10 ten=i//10%10 hundred=i//100 if sd**3+ten**3+hundred**3==i: print("100到999的水仙花数为",i) s=0
代码运行结果
100到999的水仙花数为 153
100到999的水仙花数为 370
100到999的水仙花数为 371
100到999的水仙花数为 407
跳转语句(break continue )
代码演示
i=0 while i<3: use_name=input("请输入你的用户名") password=input("请输入你的密码") if use_name=="dai"and password=="888888": print("登入成功") break#直接跳出循环 else : if i<2: print("你还有",2-i,"次输入机会") i+=1 if i==3: print("3次机会已经用完") s=0 i=0 while i<=100: if i%2==1: i+=1 continue#重新进行判断 s+=i i+=1 print("1到100的偶数和为",s)
代码运行结果
请输入你的用户名dai
请输入你的密码12456
你还有 2 次输入机会
请输入你的用户名dai
请输入你的密码888888
登入成功
1到100的偶数和为 2550
类似C语言中的switch(match)
代码演示
sorce=input("请输入你的成绩等级")
match sorce:
case "a":
print("优秀")
case "b":
print("良好")
case "c":
print("及格")
case "d":
print("不及格") (与switch不同的是不用加break来终止,只会输出一个语句块)
代码运行结果
请输入你的成绩等级a
优秀
案例
输出一些常见图形
长方形
代码演示
for i in range(1,4): for j in range(1,5): print("*",end="") print()
代码运行结果
****
****
****
正直角三角形
代码演示
for i in range(1,6): for j in range(1,i+1): print("*",end="") (该操作为不换行) print() (该操作为换行)
代码运行结果
*
**
***
****
*****
倒直角三角形
代码演示
for i in range(1, 6): for j in range(1, 7-i): print("*", end="") print()
代码运行结果
*****
****
***
**
*
正三角形
代码演示
for i in range(1, 6): for j in range(1, 6-i): print(" ", end="") for k in range(1, i*2): print("*", end="") print()
代码运行结果
*
***
*****
*******
*********
菱形
代码演示
row=eval(input("请输入想打印菱形的行数")) while row%2==0: print("输入错误,请重新输入") row = eval(input("请输入想打印菱形的行数")) top_row=(row+1)//2 for i in range(1, top_row+1): for j in range(1, top_row+1-i): print(" ", end="") for k in range(1, i*2): print("*", end="") print() bottom_row=row//2 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): print("*",end="") print()
代码运行结果
请输入想打印菱形的行数9
*
***
*****
*******
*********
*******
*****
***
*
空心菱形
代码演示
row=eval(input("请输入想打印空心菱形的行数")) while row%2==0: print("输入错误,请重新输入") row = eval(input("请输入想打印空心菱形的行数")) top_row=(row+1)//2 for i in range(1, top_row+1): for j in range(1, top_row+1-i): print(" ", end="") for k in range(1, i*2): if k==1 or k==i*2-1: print("*", end="") else: print(" ",end="") print() bottom_row=row//2 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): if k == 1 or k == 2*bottom_row-2*i+1: print("*", end="") else: print(" ", end="") print()
代码运行结果
请输入想打印空心菱形的行数9
*
* *
* *
* *
* *
* *
* *
* *
*
猜一猜
代码演示
import random rand=random.randint(1,100) count=1 while count<10: number=eval(input("请在1到100之内猜一个数")) if number==rand: print("恭喜你,猜对啦") break elif number>rand: print("大了") else: print("小了") count+=1 if count<=3: print("你的运气真好,一共猜了",count,"次") elif count<=9: print("你的运气还可以,一共猜了",count,"次") else: print("次数用完了,运气不是很好哦一共猜了",count,"次")
代码运行结果
请在1到100之内猜一个数50
小了
请在1到100之内猜一个数60
大了
请在1到100之内猜一个数55
恭喜你,猜对啦
你的运气真好,一共猜了 3 次
或者
请在1到100之内猜一个数5
小了
请在1到100之内猜一个数5
小了
请在1到100之内猜一个数5
小了
请在1到100之内猜一个数5
小了
请在1到100之内猜一个数5
小了
请在1到100之内猜一个数5
小了
请在1到100之内猜一个数5
小了
请在1到100之内猜一个数5
小了
请在1到100之内猜一个数5
小了
次数用完了,运气不是很好哦一共猜了 10 次
也可以先判断输入的数是否为1到100,如果不是重新输入,可以用while语句实现