Python核心:4. 流程控制语句

4. 语句

4.1 行
(1) 物理行:程序员编写代码的行。
(2) 逻辑行:python解释器需要执行的指令。
(3) 建议:
​ 一个逻辑行在一个物理行上。
​ 如果一个物理行中使用多个逻辑行,需要使用分号;隔开。
(4) 换行:
​ 如果逻辑行过长,可以使用隐式换行或显式换行。
​ 隐式换行:所有括号的内容换行,称为隐式换行
​ 括号包括: () [] {} 三种
​ 显式换行:通过折行符 \ (反斜杠)换行,必须放在一行的末尾,目的是告诉解释器,下一行也是本行的语句。

# 4个物理行 4个逻辑行
a = 1
b = 2
c = a + b
print(c)

# 1个物理行 4个逻辑行(不建议)
a = 1;b = 2;c = a + b;print(c)

# 4个物理行 1个逻辑行
# -- 换行符
d = 1+\
    2+\
    3+4\
    +5+6

# -- 括号
e = (1+2+
     3+4
     +5+
     6)

4.2 选择语句

4.2.1 if elif 语句

(1) 作用:
让程序根据条件选择性的执行语句。
(2) 语法:

 if 条件1:
     语句块1
 elif 条件2:
     语句块2
 else:
     语句块3

(3) 说明:
elif 子句可以有0个或多个。
else 子句可以有0个或1个,且只能放在if语句的最后。
(4) 演示:

sex = input("请输入性别:")
if number == "男":
    print("您好,先生")
elif number == "女":
    print("您好,女士")
else:
    print("性别未知")

练习1:
在终端中输入课程阶段数,显示课程名称
输入: 输出:
​ 1 Python语言核心编程
​ 2 Python高级软件技术
​ 3 Web 全栈
​ 4 项目实战
​ 5 数据分析、人工智能

number = input("请输入数字:")
if number == "1":
    print("Python语言核心编程")
elif number == "2":
    print("Python高级软件技术")
elif number == "3":
    print("Web 全栈")
elif number == "4":
    print("项目实战")
elif number == "5":
    print("数据分析、人工智能")

练习2:
在终端中录入4个同学身高,打印最高的值.

算法:

170 160 180 165

假设第一个就是最大值
使用假设的和第二个进行比较, 发现更大的就替换假设的
使用假设的和第三个进行比较, 发现更大的就替换假设的
使用假设的和第四个进行比较, 发现更大的就替换假设的
最后,假设的就是最大的.
效果:
请输入第1个同学身高:170
请输入第2个同学身高:160
请输入第3个同学身高:180
请输入第4个同学身高:165
最高的同学:180

height01 = int(input("请输入第1个同学身高:"))
height02 = int(input("请输入第2个同学身高:"))
height03 = int(input("请输入第3个同学身高:"))
height04 = int(input("请输入第4个同学身高:"))

max_value = height01
if max_value < height02:
    max_value = height02
if max_value < height03:
    max_value = height03
if max_value < height04:
    max_value = height04

print("最大值是:"+str(max_value))

练习3:

根据心理年龄与实际年龄,打印智商等级。
智商IQ = 心理年龄MA 除以 实际年龄CA 乘以 100
天才:140以上(包含)
超常:120-139之间(包含)
聪慧:110-119之间(包含)
正常:90-109之间(包含)
迟钝:80-89之间(包含)
低能:80以下

ma = int(input("请输入心理年龄:"))
ca = int(input("请输入实际年龄:"))
iq = ma / ca * 100
# if iq >= 140:
#     print("天才")
# elif 120 <= iq < 140:# 执行到本行,就是小于140,所以不用再次判断iq < 140
#     print("超常")
# elif 110 <= iq < 120:
#     print("聪慧")
# elif 90 <= iq < 110:
#     print("正常")
# elif 80 <= iq < 90:
#     print("迟钝")
# else:
#     print("低能")

# 连续区间的判断:只需要判断单边
if iq >= 140:
    print("天才")
elif iq >= 120:
    print("超常")
elif iq >= 110:
    print("聪慧")
elif iq >= 90:
    print("正常")
elif iq >= 80:
    print("迟钝")
else:
    print("低能")

4.2.2 真值表达式

if 100:
	print("真值")
# 等同于
if bool(100):
	print("真值")

4.2.3 条件表达式

(1) 语法:变量 = 结果1 if 条件 else 结果2

value = 1 if input("请输入性别:") == "男" else 0

(2) 作用:根据条件(True/False) 来决定返回结果1还是结果2。

4.3 循环语句

4.3.1 while语句

(1) 作用:
可以让一段代码满足条件,重复执行。
(2) 语法:

while 条件:
    # 满足条件执行的语句
else:
    # 不满足条件执行的语句

(3) 说明:
else子句可以省略。
在循环体内用break终止循环时,else子句不执行。

count = 0  # 1. 开始 
while count < 3:  # 2. 结束
    print(count)  # 0  1  2
    count += 1  # 3. 间隔

练习1:
在终端中循环录入5个成绩,
最后打印平均成绩(总成绩除以人数)
效果:
请输入成绩:98
请输入成绩:83
请输入成绩:90
请输入成绩:99
请输入成绩:78
平均分:89.6

"""
    在终端中循环录入5个成绩,
    最后打印平均成绩(总成绩除以人数)
"""
total_score = 0
count = 0
while count < 5:
    count += 1 # 0 1 2 3 4
    score = int(input("请输入成绩:"))
    total_score += score
print("平均成绩" + str(total_score / 5))

练习2:
一张纸的厚度是0.01毫米
请计算,对折多少次超过珠穆朗玛峰(8844.43米)
思路:
数据:厚度、高度、

"""
# 一张纸的厚度是0.01毫米
# 请计算,对折多少次超过珠穆朗玛峰(8844.43米)
"""
thickness = 0.01 / 1000
height = 8844.43
count = 0
while thickness < height:#  对折
    thickness *= 2
    count += 1
    print("第" + str(count) + "次对折的厚度是:" + str(thickness))
print("对折" + str(count) + "次")

练习3:
程序产生1个,1到100之间的随机数。
让玩家重复猜测,直到猜对为止。
每次提示:大了、小了、恭喜猜对了,总共猜了多少次。
效果:
请输入要猜的数字:50
大了
请输入要猜的数字:25
小了
请输入要猜的数字:35
大了
请输入要猜的数字:30
小了
请输入要猜的数字:32
恭喜猜对啦,总共猜了5次

"""
    程序产生1个,1到100之间的随机数。
    让玩家重复猜测,直到猜对为止。
    每次提示:大了、小了、恭喜猜对了,总共猜了多少次。
"""
# 1. 准备随机数工具
import random

# 2. 产生随机数
random_number = random.randint(1, 100)

count = 0
while True:
    count += 1
    input_number = int(input("请猜数字:"))
    if input_number > random_number:
        print("大了")
    elif input_number < random_number:
        print("小了")
    else:
        print("恭喜猜对了,总共猜了" + str(count) + "次")
        break

4.3.2 for 语句

(1) 作用:
用来遍历可迭代对象的数据元素。
可迭代对象是指能依次获取数据元素的对象,例如:容器类型。
(2) 语法:

for 变量列表 in 可迭代对象:
    # 语句块1
  else:
    # 语句块2

(3) 说明:
else子句可以省略。
在循环体内用break终止循环时,else子句不执行。

message = "我是最美最靓袁冰妍"
for item in message:
    print(item)  

range 函数

(1) 作用:
​ 用来创建一个生成一系列整数的可迭代对象(也叫整数序列生成器)。
(2) 语法:
​ range(开始点,结束点,间隔)
(3) 说明:
函数返回的可迭代对象可以用for取出其中的元素
返回的数字不包含结束点
开始点默认为0
间隔默认值为1

# 写法1:range(开始,结束,间隔)
# 注意:不包含结束值
for item in range(1, 3, 1):
    print(item)

# 写法2:range(开始,结束)
# 注意:间隔默认为1
for item in range(1, 3):
    print(item)

# 写法3:range(结束)
# 注意:开始默认为0
for item in range(3):
    print(item)

4.4 跳转语句

4.4.1 break 语句

(1) 跳出循环体,后面的代码不再执行。
(2) 可以让while语句的else部分不执行。

4.4.2 continue 语句

(1) 跳过本次,继续下次循环。(嗑瓜子例子)

# 需求:累加1-100之间能被3整除的数字
# 思想:不满足条件跳过,否则累加.
sum_value = 0
for item in range(1, 101):
    if item % 3 != 0:
        continue
    sum_value += item
print(sum_value)

练习:累加10 – 60之间,个位不是3/5/8的整数和。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值