1. 条件判断语句
条件控制语句用于根据条件来决定程序的执行路径。在Python中,常见的条件控制语句有以下几种:
(1)if语句:用于执行满足条件的代码块。示例代码:
age = 20
if age >= 18:
print("成年人")
(2)if-else语句:在满足条件时执行一个代码块,否则执行另一个代码块。
# if-else语句
# 语法:
# if 条件表达式 :
# 代码块
# else :
# 代码块
# 执行流程:
# if-else语句在执行时,先对if后的条件表达式进行求值判断
# 如果为True,则执行if后的代码块
# 如果为False,则执行else后的代码块
示例代码:
age = 16
if age >= 18:
print("成年人")
else:
print("未成年人")
(3)if-elif-else语句:在满足多个条件时执行不同的代码块。
# if-elif-else语句
# 语法:
# if 条件表达式 :
# 代码块
# elif 条件表达式 :
# 代码块
# elif 条件表达式 :
# 代码块
# elif 条件表达式 :
# 代码块
# else :
# 代码块
#
# 执行流程:
# if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
# 如果表达式的结果为True,则执行当前代码块,然后语句结束
# 如果表达式的结果为False,则继续向下判断,直到找到True为止
# 如果所有的表达式都是False,则执行else后的代码块
# if-elif-else中只会有一个代码块会执行
示例代码:
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
以上是常见的条件控制语句,它们根据条件的真假来决定执行哪个代码块。你可以根据实际需求选择合适的条件控制语句,它们可以帮助你根据不同的条件执行不同的操作。
(4)嵌套条件控制语句:在一个条件控制语句内部嵌套另一个条件控制语句,可以处理更复杂的条件逻辑。 示例代码:
x = 10
y = 5
if x > 0:
if y > 0:
print("x和y都大于0")
else:
print("x大于0,但y小于等于0")
else:
print("x小于等于0")
(5)真值表达式:在条件控制语句中,除了使用具体的布尔值(True或False)作为条件外,还可以使用其他类型的值作为条件。在Python中,以下值被视为假(False):False、None、数值0(如0、0.0)、空的序列(如空列表、空元组、空字符串)。 示例代码:
x = []
if x:
print("x不为空")
else:
print("x为空")
(6)条件表达式的短路求值:在逻辑运算符中,当条件表达式的结果已经确定时,后面的条件表达式不会再被计算。这种机制称为短路求值。 示例代码:
x = 5
y = 0
if x > 0 and y > 0: # 由于x不大于0,后面的条件表达式y > 0不会被计算
print("x和y都大于0")
else:
print("至少有一个小于等于0")
当需要判断多个条件是否满足时,可以使用逻辑运算符来组合条件表达式。
(7)多个条件都满足:使用逻辑运算符and
来连接多个条件,只有当所有条件都为真时,整个条件表达式才为真。 示例代码:
age = 25
score = 90
if age > 18 and score > 80:
print("年龄大于18且分数大于80")
(8)多个条件有一个满足:使用逻辑运算符or
来连接多个条件,只要有一个条件为真,整个条件表达式就为真。 示例代码:
is_sunny = True
is_warm = False
if is_sunny or is_warm:
print("天晴或气温温暖")
这样,你可以根据实际需求编写条件判断语句,同时考虑多个条件的组合关系。使用逻辑运算符and
和or
可以根据不同的逻辑需求,对多个条件进行合适的判断。
2. input函数
input()
函数用于从用户处获取输入,并将用户输入的内容作为字符串返回。它可以用于与用户进行交互,接收用户的输入并根据输入进行相应的处理。
使用input()
函数的一般语法为:
variable = input(prompt)
其中,prompt
是一个可选的字符串参数,用于向用户显示提示信息,告诉用户需要输入什么内容。
示例代码:
name = input("请输入您的姓名: ")
print("您好," + name + "!")
在上面的示例中,用户输入姓名后,input()
函数会将输入的内容作为字符串返回,并将其赋值给变量name
。然后,程序会打印出"您好,"加上用户输入的姓名。
需要注意的是,input()
函数返回的是字符串类型。如果需要将输入的内容解析为其他数据类型(如整数、浮点数等),可以使用类型转换函数进行转换,例如int()
、float()
等。
示例代码:
age = input("请输入您的年龄: ")
age = int(age) # 将输入的年龄转换为整数类型
print("您的年龄是 " + str(age) + " 岁。")
在上面的示例中,我们将用户输入的年龄转换为整数类型,并将其存储在变量age
中。然后,程序会打印出年龄信息。
通过使用input()
函数,你可以与用户进行交互,获取用户的输入,并根据输入进行相应的处理。这在编写交互式程序或需要用户输入数据的情况下非常有用。
3. 循环语句
循环语句是在程序中重复执行一段代码的一种结构。在Python中,常见的循环语句有两种:for
循环和while
循环。
(1)for循环:用于遍历可迭代对象(如列表、元组、字符串等)中的元素,按照顺序逐个处理。 示例代码:
fruits = ['apple', 'banana', 'orange']
for fruit in fruits:
print(fruit)
(2)while循环:在满足一定条件的情况下,重复执行一段代码,直到条件不满足时退出循环。 示例代码:
count = 0
while count < 5:
print("Count: ", count)
count += 1
除了上述两种常见的循环语句,还有一些控制循环的关键字可以使用:
break
:用于立即退出当前循环,不再执行后续的循环迭代。 示例代码:
# for循环
numbers = [1, 2, 3, 4, 5]
for number in numbers:
if number == 3:
break
print(number)
# while循环
i = 0
while i < 5:
i += 1
if i == 3:
break # 当 i 等于 3 时,提前结束循环,跳出循环体
print(i)
-
continue
:用于跳过当前循环迭代,继续执行下一次迭代。 示例代码:
# for循环
numbers = [1, 2, 3, 4, 5]
for number in numbers:
if number == 3:
continue
print(number)
# while循环
i = 0
while i < 5:
i += 1
if i == 3:
continue # 当 i 等于 3 时,跳过本次循环的剩余代码,直接进入下一次循环
print(i)
通过循环语句,你可以根据需要重复执行一段代码,遍历数据集合或在满足条件的情况下执行特定的操作。循环语句是编程中非常重要的一部分,可以提高代码的灵活性和效率。
(3)while-else循环:Python 的 while 循环语句可以搭配 else
关键字使用。这个 else
块会在 while 循环正常执行完毕(即循环条件为假)时执行,但如果循环中使用了 break
语句提前结束了循环,则不会执行该 else
块。
示例代码:
count = 0
while count < 5:
print("Count:", count)
count += 1
else:
print("循环结束")
在上述示例中,当 count
小于 5 时,循环会一直执行,每次输出当前的 count 值。当 count
达到 5 时,循环条件为假,循环正常结束,此时会执行 else
块并输出"循环结束"。如果在循环过程中使用了 break
语句提前结束循环,那么 else
块将不会被执行。
4. 练习
(1)求100以内所有的奇数之和
sum = 0 # 记录奇数之和的变量
number = 1 # 初始值为1
while number <= 100:
if number % 2 != 0: # 判断是否为奇数
sum += number # 如果是奇数,累加到奇数之和变量中
number += 1 # 增加数值继续下一次循环
# 输出结果
print("100以内所有奇数之和为:", sum)
输出结果为:
100以内所有奇数之和为: 2500
使用while
循环,通过一个计数变量number
来逐个判断数值是否为奇数,并将奇数累加到sum
变量中,直到number
超过100时结束循环。最后输出结果为100以内所有的奇数之和,即2500。
(2)求100以内所有的奇数之和
sum = 0 # 记录奇数之和的变量
# 循环1到100的数字
for i in range(1, 101):
if i % 2 != 0: # 判断是否为奇数
sum += i # 如果是奇数,累加到奇数之和变量中
# 输出结果
print("100以内所有奇数之和为:", sum)
输出结果为:
100以内所有奇数之和为: 2500
因此,100以内所有的奇数之和为2500。
(3)求1000以内所有的水仙花数
水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1**3 + 5**3 + 3**3 = 153)。
# 获取1000以内的三位数
i = 100
while i < 1000:
# 假设,i的百位数是a,十位数b,个位数c
# 求i的百位数
a = i // 100
# 求i的十位数
# b = i // 10 % 10
b = (i - a * 100) // 10
# 求i的个位数字
c = i % 10
# print(i , a , b , c)
# 判断i是否是水仙花数
if a**3 + b**3 + c**3 == i :
print(i)
i += 1
输出结果为:
153
370
371
407
***Repl Closed***
5. 小游戏
5.1 猜数字小游戏
import random
print('-'*20, '欢迎来到猜数字游戏', '-'*20)
number = random.randint(1, 100) # 随机生成一个1到100的数字
guess = 0
count = 0
while guess != number:
guess = int(input('请输入你猜测的数字(1-100):'))
count += 1
if guess < number:
print('猜小了!')
elif guess > number:
print('猜大了!')
else:
print(f'恭喜你猜对了!答案是{number},你一共猜了{count}次。')
play_again = input('是否再玩一次?(输入Y继续,其他键退出):')
if play_again.upper() == 'Y':
number = random.randint(1, 100)
count = 0
else:
print('感谢参与游戏,再见!')
break
这个猜数字的游戏会随机生成一个1到100的数字,玩家需要输入猜测的数字,程序会根据猜测结果给出提示(猜大了或猜小了),直到猜对为止。猜对后,程序会显示猜对的次数,并询问玩家是否继续游戏。玩家可以选择继续猜数字或退出游戏。
5.2 唐僧大战白骨精
# 显示欢迎信息
print('-'*20,'欢迎光临《唐僧大战白骨精》','-'*20)
# 显示身份选择的信息
print('请选择你的身份:')
print('\t1.唐僧')
print('\t2.白骨精')
# 游戏的身份选择
player_choose = input('请选择[1-2]:')
# 打印一条分割线
print('-'*66)
# 根据用户的选择来显示不同的提示信息
if player_choose == '1':
# 选择1
print('你已经选择了1,你将以->唐僧<-的身份来进行游戏!')
elif player_choose == '2':
# 选择2
print('你竟然选择了白骨精,太不要脸了,你将以->唐僧<-的身份来进行游戏!')
else :
# 选择3
print('你的输入有误,系统将自动分配身份,你将以->唐僧<-的身份来进行游戏!')
# 进入游戏
# 创建变量,来保存玩家的生命值和攻击力
player_life = 2 # 生命值
player_attack = 2 # 攻击力
# 创建一个变量,保存boss的生命值和攻击力
boss_life = 10
boss_attack = 10
# 打印一条分割线
print('-'*66)
# 显示玩家的信息(攻击力、生命值)
print(f'唐僧,你的生命值是 {player_life} , 你的攻击力是 {player_attack}')
# 由于游戏选项是需要反复显示的,所以必须将其编写到一个循环中
while True :
# 打印一条分割线
print('-'*66)
# 显示游戏选项,游戏正式开始
print('请选择你要进行的操作:')
print('\t1.练级')
print('\t2.打BOSS')
print('\t3.逃跑')
game_choose = input('请选择要做的操作[1-3]:')
# 处理用户的选择
if game_choose == '1' :
# 增加玩家的生命值和攻击力
player_life += 2
player_attack += 2
# 显示最新的信息
# 打印一条分割线
print('-'*66)
# 显示玩家的信息(攻击力、生命值)
print(f'恭喜你升级了!,你现在的生命值是 {player_life} , 你的攻击力是 {player_attack}')
elif game_choose == '2' :
# 玩家攻击boss
# 减去boss的生命值,减去的生命值应该等于玩家的攻击力
boss_life -= player_attack
# 打印一条分割线
print('-'*66)
print('->唐僧<- 攻击了 ->白骨精<-')
# 检查boss是否死亡
if boss_life <= 0 :
# boss死亡,player胜利,游戏结束
print(f'->白骨精<-受到了 {player_attack} 点伤害,重伤不治死了,->唐僧<-赢得了胜利!')
# 游戏结束
break
# boss要反击玩家
# 减去玩家的生命值
player_life -= boss_attack
print(' ->白骨精<- 攻击了 ->唐僧<-')
# 检查玩家是否死亡
if player_life <= 0 :
# 玩家死亡
print(f'你受到了 {boss_attack} 点伤害,重伤不治死了!GAME OVER')
# 游戏结束
break
elif game_choose == '3' :
# 打印一条分割线
print('-'*66)
# 逃跑,退出游戏
print('->唐僧<-一扭头,撒腿就跑!GAME OVER')
break
else :
# 打印一条分割线
print('-'*66)
print('你的输入有误,请重新输入!')