python的控制语句_python_控制语句

控制语句与循环语句

在程序开发中,一共有三种流程方式:

顺序 —— 从上向下,顺序执行代码

分支—— 根据条件判断,决定执行代码的分支

循环—— 让特定代码 重复执行

条件判断

判断语句又被称为分支语句,正是因为有了判断,才让程序有了很多的分支,如果条件满足,才能做某件事情,如果条件不满足,就做另外一件事情,或者什么也不做;

if...单分支

if 条件:

满足条件后要执行的代码

if 2<1:print("不满足条件,所以不打印!")print("哈哈")

if...else双分支

if 条件:

满足条件执行代码

else:

if条件不满足就走这段

if 3>2:print("满足条件,执行")else:print("不满足执行")

If...elif: python 并不支持 switch 语句

n=4

if n==3:print("不成立")elif n==5:print("条件不成立")elif n==4:print("条件成立")else:print("其他值")

条件判断练习:

#判断语句练习

n = 3

if n == 3:print("n和3相等")print("if代码块结束!")#用户名判断

name = input("姓名:")if name == "huahua":print("欢迎花花")else:print("输入错误")#嵌套

name = input("请输入您的名字:")if name.startswith("zhao"):if name.endswith("flowers"):print("欢迎flowers")elif name.endswith('yu'):print("欢迎yu")else:print("未知姓名")print("退出")#判断练习

x = 20y= 40

if x >y:print("x>y")else:print("x

s1= "hello"s2= "Hell"

if s1 > s2 and x >y:print("条件满足")elif not s1

else:print("不满足条件")'''1. 定义一个整数变量记录年龄

2. 判断是否满 18 岁 (**>=**)

3. 如果满 18 岁,允许进网吧嗨皮'''

#age=eval(input("请说明你的年龄:"))#if age>=18:#print("欢迎进入网吧")#else:#print("不满18岁未成年人禁止入内!")#print("都会执行")

#定义一个整数变量 `age`,编写代码判断年龄是否正确,要求人的年龄在 0-120 之间

age = 15

if age >= 0 and age <= 120:print("年龄正确")else:print("年龄不符")#定义两个整数变量 `python_score`、`c_score`,编写代码判断成绩要求只要有一门成绩 > 60 分就算合格

python_score = 30c_score= 70

if python_score >= 60 or c_score >= 60:print("满足条件")#定义一个布尔型变量 `is_employee`,编写代码判断是否是本公司员工如果不是提示不允许入内

is_employee =Trueif not is_employee: #当条件不满足时才会执行not

print("禁止入内")'''定义 `holiday_name` 字符串变量记录节日名称

2. 如果是 **情人节** 应该 **买玫瑰**/**看电影**

3. 如果是 **平安夜** 应该 **买苹果**/**吃大餐**

4. 如果是 **生日** 应该 **买蛋糕**

5. 其他的日子每天都是节日啊……'''holiday_name= "情人节"

if holiday_name == "情人节":print(f"{holiday_name}应该买玫瑰,看电影!")elif holiday_name == "平安夜":print(f"{holiday_name}应该买苹果,吃大餐!")elif holiday_name == "生日":print(f"{holiday_name}应该买蛋糕!")else:print(f"{holiday_name}其他的日子每天都是节日啊")'''1. 定义布尔型变量 `has_ticket` 表示是否有车票

2. 定义整型变量 `knife_length` 表示刀的长度,单位:厘米

3. 首先检查是否有车票,如果有,才允许进行 **安检**

4. 安检时,需要检查刀的长度,判断是否超过 20 厘米

* 如果超过 20 厘米,提示刀的长度,不允许上车

* 如果不超过 20 厘米,安检通过

5. 如果没有车票,不允许进门'''has_ticket=True

knife_length= 10

ifhas_ticket:print("有车票,请开始安检......")if knife_length >= 20:print(f"刀的长度为{knife_length}厘米,不允许上车")else:print("安检通过")else:print("无车票,请先买票")#1、输入一个数,判断一个数n能同时被3和5整除

n = eval(input("请输入数字:"))if n % 5 == 0 and n % 3 ==0:print("可以整除")else:print("不能整除")'''1. 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)

2. 电脑 **随机** 出拳

3. 比较胜负

| 序号 | 规则 |

| :---: | :---: |

| 1 | 石头 胜 剪刀 |

| 2 | 剪刀 胜 布 |

| 3 | 布 胜 石头 |'''

importrandom

player= int(input("输入要出的拳 —— 石头1/剪刀2/布3:"))

computer= random.randint(1, 3) #`random.randint(a, b)` ,返回 `[a, b]` 之间的整数,包含 `a` 和 `b`

print(f"电脑输出的是{computer}")if ((player == 1 and computer == 2)or (player == 2 and computer == 3)or (player == 3 and computer == 1)):print("欧耶,我赢了")elif player ==computer:print("平局了")else:print("不行,我要和你决战到天亮!")'''定义一个函数,成绩作为参数传入。如果成绩小于60,则输出不及格。

如果成绩在60到80之间,则输出良好;如果成绩高于80分,

则输出优秀,如果成绩不在0-100之间,则输出 成绩输入错误'''grade= eval(input("请输入成绩:"))defa(grade):if grade > 80:print("优秀")elif 60 <= grade <= 80:print("良好")elif grade < 60:print("不及格")returna(grade)#根据用户输入内容打印其权限

name = input('请输入用户名字:')if name == 'flowers':print('超级管理员')elif name == 'mr':print('普通管理员')elif name == 'lan' or name == 'coli':print('业务主管')else:print('普通用户')'''用三行print,完成以下信息的显示:

==================================

= 欢迎进入到身份认证系统V1.0

= 1. 登录

= 2. 退出

= 3. 认证

= 4. 修改密码

=================================='''

print("="*25)print("=\t欢迎进入身份认证系统V1.0\n= 1. 登录\n= 2.退出\n= 3.认证\n= 4.修改密码")print("="*25)#编写程序,从键盘获取一个个信息,然后按照下面格式显示

'''==================================

姓名: dongGe

QQ:xxxxxxx

手机号:131xxxxxx

公司地址:北京市xxxx

=================================='''name= input("姓名:")

QQ= input("QQ:")

phone_num= input("手机号:")

addr= input("地址:")print("=" * 25)print(f"姓名:{name}\nQQ:{QQ}\n手机号:{phone_num}\n公司地址{addr}")print("=" * 25)#编写程序从键盘获取用户名、密码,如果用户名和密码都正确(预先设定一个用户名和密码),那么就显示“欢迎登陆xxx”,否则提示密码或者用户名错误

name = "flowers"pw= "123"username= input("输入用户名:")

password= input("输入密码:")if username == name and password ==pw:print(f"欢迎{username}")else:print("用户名或密码错误!")#嵌套:判断验证码之后在判断用户名密码

username = input("请输入用户名:")

password= input("请输入密码:")

code= 'qwer'your_code= input("请输入验证吗:")if your_code ==code:if username =='flower' and password=='123':print('登录成功')else:print('登录失败')else:print('验证码错误')

循环语句

while 循环 在给定的判断条件为 true 时执行循环体,否则退出循环体。另外,在 Python 中没有 do..while 循环。

循环的作用就是让指定的代码重复的执行

for 循环 重复执行语句

嵌套循环 你可以在while循环体中嵌套for循环

while 循环如何终止:

改变条件、break、系统命令;

1.While 循环语句

初始条件设置 —— 通常是重复执行的 计数器

while 条件(判断 计数器 是否达到 目标次数):

条件满足时,做的事情1

条件满足时,做的事情2

条件满足时,做的事情3

...(省略)...

处理条件(计数器 + 1)

#1. 定义重复次数计数器

i = 0 #程序计数法从 `0` 开始)—— 几乎所有的程序语言都选择从 0 开始计数#2. 使用 while 判断条件

while i< 5:#重复执行的代码

print("hello")#处理计数器 i

i+=1

print(f"循环结束后输出i的值是:{i}") #注意:循环结束后,之前定义的计数器条件的数值是依旧存在的

循环使用 else 语句

当while循环体不满足条件时执行else

#while循环和for循环中使用else语句,使用了随机整数,每次运行结果都不同

importrandom

x=0while x<10:

x+=1

if x==random.randint(1,20):print(x)break

else:print("没有中断循环")#例子2

count =0while count < 5:print (count, "小于 5")

count= count + 1

else:print (count, "大于或等于 5")#while else 当while循环被break打断,就不会执行else得结果

count=0while count<5:

count+=1

if count==3:break #跳出循环

print(count)else:print("循环正常执行完了")print("------out of while loop--------")

循环控制语句

`break` 和 `continue` 是专门在循环中使用的关键字,只针对 当前所在循环有效;

`break` 某一条件满足时,退出循环,不再执行后续重复的代码;

`continue` 某一条件满足时,不执行后续重复的代码;

pass 语句:Python pass是空语句,是为了保持程序结构的完整性,pass 不做任何事情,一般用做占位语句。

#break某一条件满足时,退出循环,不再执行后续重复的代码

i=0while i<=10:if i==3:break

print(i)

i+=1

print("over")#continue在整个循环中,只有某些条件,不需要执行循环代码,而其他条件都需要执行

i =0while i < 10:#当 i == 7 时,不希望执行需要重复执行的代码

if i == 7:#在使用 continue 之前,同样应该修改计数器

#否则会出现死循环

i += 1

continue

#重复执行的代码

print(i)

i+= 1

#输出1234568910

i =0while i<10:

i+= 1

if i == 7:continue

print(i)print('结束')#continue和pass的区别

a="python"i=2

for e ina:if e=="y":passi=3

else:print(e+str(i)) #输出:p2、t3、h3、o3、n3

a="python"i=2

for e ina:if e=="y":continuei=3

else:print(e+str(i)) #输出:p2、t2、h2、o2、n2

2.嵌套循环

while ` 嵌套就是:` while ` 里面还有 ` while `

```python

while 条件 1:

条件满足时,做的事情1

条件满足时,做的事情2

条件满足时,做的事情3

...(省略)...

while 条件 2:

条件满足时,做的事情1

条件满足时,做的事情2

条件满足时,做的事情3

...(省略)...

处理条件

2

处理条件

1

'''在控制台连续输出五行`*`,每一行星号的数量依次递增,使用字符串 * 打印

*

**

***

****

*****'''

#row = 1#while row <= 5:#print("*" * row)#row += 1

#使用循环嵌套打印小星星

row = 1

while row <= 5:#假设 python 没有提供字符串 * 操作

#在循环内部,再增加一个循环,实现每一行的 星星 打印

col = 1

while col <=row:print("*", end="")

col+= 1

#每一行星号输出完成后,再增加一个换行

print("")

row+= 1

#打印99乘法表#定义起始行

row = 1

#最大打印 9 行

while row <= 9:#定义起始列

col = 1

#最大打印 row 列

while col <=row:#end = "",表示输出结束后,不换行

#"\t" 可以在控制台输出一个制表符,协助在输出文本时对齐

print("%d * %d = %d" % (col, row, row * col), end="\t")#列数 + 1

col += 1

#一行打印完成的换行

print("")#行数 + 1

row += 1

循环练习:

#计算 0 ~ 100 之间所有数字的累计求和结果#0. 定义最终结果的变量

result =0#1. 定义一个整数的变量记录循环的次数

i =0#2. 开始循环

while i <= 100:print(i)#每一次循环,都让 result 这个变量和 i 这个计数器相加

result +=i#处理计数器

i += 1

print("0~100之间的数字求和结果 = %d" %result)#计算 0 ~ 100之间所有偶数的累计求和结果

result=0

i=0while i<=100:if i%2==0:print(i)

result+=i

i+=1

print(f"0~100之间的数字求和结果{result}")#输出1-100内所有得奇数

x=0while x<100:if x%2==1:print(x)

x+=1

#方法二

x=1

while x<101:print(x)

x+=2

#设定一个数字,给三次机会让用户输入数字如果比数字大就显示猜测大了,小了就猜测小了,猜对了退出循环;

count =0while count<3:

num= int(input('请输入数字:'))if num >66:print('猜的数字大了')elif num<66:print('猜的数字小了')else:print('恭喜你猜对了')breakcount+=1

else:print('请明天再试')#用户登录三次输入错机会,且每次输入错误时提示剩余错误次数

count = 1

while count<=3:

name= input('用户名:')

pw= input('密码:')if name =='flower' and pw =='123':print('登录成功')else:print(f'输入错误,您还有{3-count}次机会')

count+=1

print("输入次数超过三次,请明天再来")#输入一个数判断是奇数还是偶数,end退出循环

whileTrue:

x= input("请输入一个数:")if x=="end":breaknum=int(x)if num%2==0 :print("{}是偶数".format(num))else:print("{}是奇数".format(num))else:print("end结束")#编写代码,实现一个判断用户输入的年份是否是闰年的程序

whileTrue:

year= int(input("请输入年份:"))if year %400==0 or year%4==0 and year%100 !=0:print("这是闰年")else:print("不是闰年")#while循环和for循环中使用else语句,使用了随机整数,每次运行结果都不同

importrandom

x=0while x<10:

x+=1

if x==random.randint(1,20):print(x)break

else:print("没有中断循环")#使用while,完成以下图形的输出

i = 1x= 4

while i <= 9:if i <= 5:print("*" *i)elif i > 5:print("*" *x)

x-= 1i+= 1

#编写代码,实现输入某年某月某日,判断这一天是这一年的第几天?闰年情况也考虑进去

print("==== please ouput in this format 'year/month/day' ====")

all_day=0whileTrue:

moth= [31, 30, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

year= input("请输入年月日:")

y,m,d=year.split("/")

y=int(y)

m=int(m)

d=int(d)if y%400==0 or y%4==0 and y%100 !=0:

moth[1]=28

if m>0 and m<12:if d>0 and d

all_day+=i

all_day=all_day+delse:print("超出范围请重试")else:print("超出范围请重试")break

else:if m>0 and m<12:if d>0 and d

all_day+=i

all_day=all_day +delse:print("超出范围请重试")else:print("超出范围请重试")break

print("这是%s的第%s天"%(y,all_day))

3.For循环

For...in..

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串

languages = ["C", "C++", "Perl", "Python"]for x in languages: #遍历一个列表

print(x)#break 语句用于跳出当前循环体

sites = ["Baidu", "Google","Runoob","Taobao"]for site insites:if site =="Runoob":print("菜鸟")break

print(site)else:print("没有循环数据")print("完成循环")#内置range()函数。它会生成数列

for y in range(4):print(y)#也可以使用range指定区间的值

for v in range(10,20):print(v)#range以指定数字开始并指定不同的增量甚至可以是负数,叫做'步长'

for i in range(0,10,3): #结果0,3,6,9

print(i)for c in range(10,0,-2): #结果是:10,8,6,4,2

print(c)

a= ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']for i inrange(len(a)):print(i, a[i]) #0 Google,1 Baidu,2 Runoob,3 Taobao,4 QQ

a=list(range(5)) #使用range()函数来创建一个列表

print(a)

循环使用 else 语句

for num in [1,2,3,4,5]:print(num)if num == 3:break

else:#如果循环体内部使用break退出了循环

#else 下方的代码就不会被执行

print("判断条件不成立时会执行")print("循环结束")importrandom

x=0while x<10:

x+=1

if x==random.randint(1,20):print(x)break

else:print("没有中断循环")#在学员列表中搜索指定的姓名

students =[

{"name": "阿土"},

{"name": "小美"}

]

find_name= "张三"

for stu_dict instudents:print(stu_dict)if stu_dict["name"] ==find_name:print("找到了 %s" %find_name)#如果已经找到,应该直接退出循环,而不再遍历后续的元素

break

#else:

#print("抱歉没有找到 %s" % find_name)

else:#如果希望在搜索列表时,所有的字典检查之后,都没有发现需要搜索的目标

#还希望得到一个统一的提示!

print("抱歉没有找到 %s" %find_name)print("循环结束")

练习:

打印九九乘法表

#for 循环语句实现:#for i in range(1,10):#for j in range(1,10):#print(j,"x",i,"=" ,i*j,"\t",end="")#if i==j:#print("")#break

小知识随机数:

在 `Python` 中,要使用随机数,首先需要导入随机数的模块 —— “工具包”

import random

导入模块后,可以直接在模块名称后面敲一个 `.` 然后按 `Tab` 键,会提示该模块中包含的所有函数

random.randint(12, 20) # 生成的随机数n: 12 <= n <= 20

random.randint(20, 20) # 结果永远是 20

random.randint(20, 10) # 该语句是错误的,下限必须小于上限

转义字符 | 描述 |

| --- | --- |

| \\\\ | 反斜杠符号 |

| \\' | 单引号 |

| \\" | 双引号 |

| \n | 换行 |

| \t | 横向制表符 |

| \r | 回车 |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值