四方显神

导航

Python(二) if分支与循环


一、if分支语句
二、while循环
三、for循环
四、循环else

一、if分支语句
1. Java中:
if(条件判断){
代码块;
}
else if(){
代码块;
}
else{
代码块;
}
python中:
if 条件1:
代码块
elif 条件2:
代码块
else:
代码块
这里是多重判断语句
注意:python中语句的上下级关系都是靠缩进完成的
实例:
age = int(input("请输入年龄"))
if age>=18 and age<=60: #这里使用的是and不是Java中经常使用的&
print("合法工龄")
elif age>60:
print("退休年龄")
else:
print("童工")
# 这里要注意,input有两个特性,1.接收的内容都是字符串类型
#2.会阻止当前代码继续执行

★ visio画图软件-程序设计基本流程图

实例:
height = float(input("输入身高(m)"))
weight = float(input("输入体重(kg)"))
bmi = weight / height ** 2
if bmi > 10 and bmi <= 18.4:
print(f'您的bmi值为{bmi:.2f},身体状态偏瘦') #★输出格式早就忘了
elif bmi > 18.4 and bmi <= 23.9:
print("正常")
elif bmi > 23.9 and bmi <= 27.9:
print("过重")
else:
print("肥胖")

2. and逻辑运算符的简写形式
if age>=18 and age<=60:
if 18 <= age <= 60: # 上面这句可以简写成这种,仅仅在python中支持这种形式

3.if嵌套结构
if 外层条件1:
...
if 内层条件2:
...
else:
...
原则:先编写外层的,所有外层的编写完毕,再编写内层的。
实例:
proof = int(input("输入酒精含量(单位:mg/100ml)"))
if proof<20:
print("不构成酒驾")
else:
print("酒驾")
if proof>=80:
print("且醉驾")



猜拳案例:
''' 猜拳游戏
参与游戏的角色有两个,玩家手工出拳,电脑随机出拳,根据石头剪刀布判断输赢。
未知知识点:如何让电脑随机出拳
'''

#python中,我们可以通过导包来实现随机数的功能 ①import 模块名称 ②模块名称.函数名称
import random

player = int(input("请输入您的出拳信息:石头:0,剪刀:1,布:2"))
computer = random.randint(0,2) #产生0-2之间的随机数
print("计算机出拳:"+str(computer))
if player - computer < 0 or player - computer == 2:
print("玩家赢")
elif player == computer:
print("平局")
else:
print("电脑赢")

 

4.三目运算符
简化if...else...语句
和Java中不同了
语法:
语句段1 if 条件判断 else 语句段2
与下面不适用三目运算符等价:
if 条件判断:
语句段1
else :
语句段2
实例:
# 输入两个数值,返回最大值
num1 = int(input("输入数值1"))
num2 = int(input("输入数值2"))
# print(num1) if num1 > num2 else print(num2)
max = num1 if num1 > num2 else num2
print(max)

 

while循环
1.基本语法和应用
2.continue和break
3.死循环
4.循环嵌套

循环:有条件地重复做一件事。

1.语法
Java中:
while(循环条件){
代码块;
}
python中:
while 条件:
代码块

while循环三步走:
①定义初始化计数器 i=0或i=1
②编写循环条件 while i<100
③在循环体内部对计数器进行更新操作 +1等操作

2.循环中的两个关键词
continue终端本次循环,还会继续下一次循环
break跳出循环

3.死循环:没有循环的结束条件
input可以阻止死循环

4.实例:猜数字

这个代码是我写的,应该还可以改进,运行是没问题的,但是感觉很累赘
'''
计算机从1-10随机生成一个数字,然后提示输入数字,计算机根据我们输入的数字,提示“猜对了”“猜大了”“猜小了”
只能有三次机会
'''

import random

key = random.randint(1, 10)
print(key)
ourKey = int(input("请猜一个数字"))
turns = 1
while ourKey != key and turns < 3:
if ourKey < key:
ourKey = int(input("你猜得有点小,再猜"))
elif ourKey > key:
ourKey = int(input("你猜得有点大,再猜"))
turns += 1
if ourKey == key:
print("猜对了")
else:
print("你没机会了")


5.循环嵌套
一个while里套一个while,每个while基础语法相同

 

一 for循环
1.基本语法
2.range函数相关案例
3.for嵌套

二 循环else
1.while循环中的else语句结构
2.for循环中的else语句结构

 

 

一、

1.基本语法
for 临时变量 in 序列:
重复执行的代码1
重复执行的代码2
2.range函数
python2中range()函数返回的是列表,
python3中range()函数返回的是可迭代对象,不是列表

基本语法:
range(stop)
range(start,stop[,step])
start:计数从start开始,默认是从0开始,例如range(5)等价于range(0,5)
stop:计数到stop结束,但不包括stop,例如range(0,5)是[1,2,3,4]没有5
step:步长,默认为1,例如range(0,5)等价于range(0,5,1)

案例:
for i in range(3):
print(i) #0,1

for i in range(0,5,2):
print(i) #0,2,4

3.break和continue关键字
和if以及while中的用法一样

4.for循环案例
'''
用for循环实现用户登录
①输入用户名、密码
②判断用户名和密码是否正确(username='admin',password='admin888')
③登录仅有三次机会,超过报错

'''
count = 0
for i in range(3):
count += 1
username = input("请输入用户名")
if username == 'admin':
pwd = input("请输入密码")
if pwd == 'admin888':
print("登录成功")
break
else:
print(f'您还有{3 - count}次登录机会')
print("密码错误,请重新输入")
else:
print(f'您还有{3 - count}次登录机会')
print("用户名错误,请重新输入")
if count >= 3:
print("今日尝试登录达到上限,禁止登录")
break

5.for循环嵌套
外层循环一次,内层循环循环两次

 

二、循环else python中特有的
1.while循环else结构
为什么需要while循环else结构?
循环可以配合else使用,else下方的缩进代码指的是当循环正常结束之后要执行的代码。
正常结束:没有遇到break
continue关键字对else没有影响

while 条件:
循环代码
else:
循环正常结束后执行的代码

2. 综合案例:报数字
'''

从1开始报数,当需要报出的数字尾数是7或者这个数字是7的时候,跳过该数字。每个学生都报完结束。

'''
nums = int(input("输入学生数量"))
for i in range(1, nums + 1):
if i % 10 == 7:
continue
else:
print(f'我是第{i}个')

 

posted on 2023-09-07 14:24  szdbjooo  阅读(106)  评论(0)    收藏  举报