Python的选择结构(附习题和解答)

本文介绍了Python中的选择结构,包括if-elif-else语句的使用,以及关系运算符和逻辑运算符的细节。通过示例展示了如何进行条件判断,如年龄验证、数字分解和石头剪刀布游戏。同时提供了两个编程练习,分别是判断水仙花数和检查数字是否为2或5的倍数。
摘要由CSDN通过智能技术生成

Python的选择结构

if语句:

if语句根据条件是否满足(True/False)来选择执行相应的语句,

注意点有三个:第一,每个条件后要使用冒号“:”,
第二,使用缩进来划分语句块;
第三,在Python中没有switch-case语句。

举个例子:

age = int(input("请输入您的年龄:"))#注意:input()函数返回的结果类型为字符串类型,需要进行转化,才好比较大小
if age<=0:
    print("年龄不能小于等于0,你是在逗我吧!")
elif age<18:
    print("你还未成年,不能登录游戏系统!")
else:
print("欢迎登录!")

关系运算符

== 、!= 、 >、<、<=、>=
注意:(1)关系运算符的优先级高于赋值运算符,但是低于算术运算符;
(2)上面的关系运算符后面的四个优先级相同,前面的两个优先级也相同,
但后面四种的优先级高于前面两种的优先级
举个栗子:分解数字
#任意给出一个不多于5位的正整数,1)求出输入的是几位数;2)逆序打印出这个数

num = int(input("请输入一个不多于5位的正整数:"))
a = int(num/10000)#得到万位数字
b = int(num%10000/1000)#得到千位数字
c = int(num%1000/100)#得到百位数字
d = int(num%100/10)#得到十位数字
e = int(num%10)#得到个位数字
if a!=0:
    print("这是一个5位数,逆序打印的结果为:",e,d,c,b,a)
elif b!=0:
     print("这是一个4位数,逆序打印的结果为:",e,d,c,b)
elif c!=0: 
    print("这是一个3位数,逆序打印的结果为:",e,d,c)
elif d!=0:
 print("这是一个2位数,逆序打印的结果为:",e,d)
else:
 print("这个数为:",e)

逻辑运算符
运算符逻辑表达式意 义
andx and y布尔与,若x为False,则 x and y 返回False,否则它返回 y的计算值
orx or y布尔或,若x是True,它返回x的值,否则返回y的计算值
notnot x布尔非,若x为True,则返回False;反之亦然
注意两点:(1)逻辑运算符的优先级低于关系运算符;
(2)当 not,and,or在一起使用时,优先级为not>and>or.

举个栗子:石头剪刀布游戏

用1表示石头,2表示剪刀,3表示布

import random#导入Python标准库

gameplayer = int(input("请输入您要出的拳,1=石头,2=布,3=剪刀"))
gamecomputer = random.ranfint(1,3)#随机产生一个1~3的整数
if ((gameplayer== 1 and gamecomputer ==2) or (gameplayer == 2 and gamecomputer== 3) or (gameplayer == 3 and gamecomputer ==1)):
    print("\n您战胜了电脑!")

elif gameplayer==gamecomputer:
    print("平局")
else:
print("您输给了电脑。")

习题

1)判断输入的任意三位正整数是否是水仙花数
#判断输入的任意三位数是否是水仙花数
import math#导入math标准库

num = input("请输入一个正整数:")
while int(num)!= 0:	#由于num是字符串,所以可以利用字符串索引提取出它的个位、十位、百位,但之后要转化为int型
    if int(num) == pow(int(num[0]),3) + pow(int(num[1]),3)+pow(int(num[2]),3):
        print("%3s是水仙花数"%num)
    else:
        print("%3s不是水仙花数。"%num)
    num = input("请输入一个正整数:")


2)输入一个数判断它是否是2或5的倍数
#编程判断一个数是否是2或5的倍数
num= int(input("请输入一个整数:"))
while num!=0:
    if num%2==0:
        if num%5==0:#利用if语句的嵌套来实现较为方便
            print("%3d是2和5的倍数。"%num)
        else:
            print("%3d是2的倍数,但不是5的倍数。"%num)
    else:
        if num%5 ==0:
            print("%3d不是2的倍数但是5的倍数"%num)
        else:
            print("%3d既不是2的倍数也不是5的倍数"%num)
    num = int(input("请输入一个整数:"))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

由心同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值