学习Python的第三天——判断

1.判断语句介绍

        判断。就是将已有信息与根据所给出的条件进行对比,如果符合条件则是是,不符合则是否,生活中也有很多判断场景,比如:

        火车站安检:

上网吧:

 密码判断:

 

2. if判断语句基本格式介绍

        if语句是用来进行判断的,其使用格式如下:

if 要判断的条件:
    条件成立时,要做的事情

         例1:

age = 30  # 给要判断的变量赋予一个值
print("------if判断开始------")
if age >= 18:  # 判断age变量所表示的数值是否大于等于18,也就是是否成年
    print("我已经成年了")
print("------if判断结束------")

        输出结果(成年):

------if判断开始------
我已经成年了
------if判断结束------

        输出结果(未成年):

------if判断开始------
------if判断结束------

        这个示例首先为age这个函数赋一个30的值,然后用if判断age是否符合条件,是的话输出“我已经成年了”,否的话没有输出,最后无论判断是与否,都会输出“------if判断结束------”,因为“print("------if判断结束------")”并不在if的缩进内,并不会被if判断结果影响。

        注意:因为Python是极度简化的,象C++的判断正确执行代码块会用英文括号扩起,而Python则将其优化掉了,所以Python中需要严格执行缩进以让系统分辨出你的那些是判断语句中的,那些是接下来继续运行的。

        例2:

password = 123456  # 定义变量password(密码)
user_input = eval(input("请输入密码:"))  # 获取控制台(用户)输入,并赋给变量user_input
if user_input == password:  # 判断用户输入是否等于定义的变量密码password
    print("用户输入密码正确!")
else:
    print("密码错误!")
print("if判断结束")

        输出结果(正确):

请输入密码:123456
用户输入密码正确!
if判断结束

        输出结果(错误):

请输入密码:123
密码错误!
if判断结束

        输出结果(报错):

请输入密码:A
Traceback (most recent call last):
  File "D:\PyCharm Community Edition 2023.3.3\示例.py", line 2, in <module>
    user_input = eval(input("请输入密码:"))  # 获取控制台(用户)输入,并赋给变量user_input
                 ^^^^^^^^^^^^^^^^^^^^^
  File "<string>", line 1, in <module>
NameError: name 'A' is not defined

        分析原因:因为==(双等于号)不只是比较等号两边的数值是否相等,还比较两者数值类型,input函数不用其他方法进行结果类型转换t默认类型是str字符串类型,而password变量的值是int整型,会直接被判否,所以用eval进行类型转换,str转int(直接用int()转换也行,但eval可以顺带将运行式(加减乘除求余等)算出并转换)。但我输入的值:A是一个不能转换为整型的字符串,所以会报错。

        错误信息直译:名称错误:未定义名称“A”

3.if-else的使用

        刚刚那串代码,涉及到了一个新的内容:else(翻译:其他的),格式如下:

if 条件:
    满足条件时要做的事情1
    满足条件时要做的事情2
    满足条件时要做的事情3
    ...(省略)...
else:
    不满足条件时要做的事情1
    不满足条件时要做的事情2
    不满足条件时要做的事情3
    ...(省略)...

         直接上示例,例1:

chePiano = 1  # 用1代表有车票,0代表没有车票
if chePiano == 1:  # 判断
    print("有车票,可以上火车")
    print("终于可以见到Ta了,美滋滋~~~")
else:
    print("没有车票,不能上车")
    print("亲爱的,那就下次见了")

        输出结果(有车票):

有车票,可以上火车
终于可以见到Ta了,美滋滋~~~

        输出结果(没有车票):

没有车票,不能上车
亲爱的,那就下次见了

        这个示例将1视为有车票,将其他情况视为没有车票。

4.if-elif-else的使用

        elif(翻译:否则如果)很简单,就是判断后再次判断,格式:

if 条件1:
    符合条件1需要执行的代码
    ......
elif 条件2:
    不符合条件1但符合条件2的情况下需要执行的代码
    ......
elif 条件3:
    即不符合条件1也符合条件2但符合条件3的情况下需要执行的代码
    ......
......
else:
    即不符合所有条件的情况下需要执行的代码
    ......

         

解释:

        当xxx1满足时,执行事情1,然后整个if结束

        当xxx1不满足时,那么判断xxx2,如果xxx2满足,则执行事情2,然后整个if结束

        当xxx1不满足时,xxx2也不满足,如果xxx3满足,则执行事情3,然后整个if结束

         示例1:

score = eval(input("请输入考试成绩:"))  # 获取控制台输入并将其赋值给score变量
if score == 100:  # 判断
    print('本次考试,等级为A+,即为满分')
elif score >= 90 and score < 100:
    print('本次考试,等级为A,即为优秀')
elif score >= 80 and score < 90:
    print('本次考试,等级为B,即为良好')
elif score >= 70 and score < 80:
    print('本次考试,等级为C,即为一般')
elif score >= 60 and score < 70:
    print('本次考试,等级为D,即为合格')
elif score >= 0 and score < 60:
    print('本次考试,等级为E,即为不合格')
else:
    print('输入的成绩不正确!')

        输出结果(A+):

请输入考试成绩:100
本次考试,等级为A+,即为满分

        输出结果(A):

请输入考试成绩:99
本次考试,等级为A,即为优秀

        输出结果(B):

请输入考试成绩:89.5
本次考试,等级为B,即为良好

        输出结果(C):

请输入考试成绩:70
本次考试,等级为C,即为一般

        输出结果(D):

请输入考试成绩:60
本次考试,等级为D,即为合格

        输出结果(E):

请输入考试成绩:59.5
本次考试,等级为E,即为不合格

        输出结果(乱输入):

请输入考试成绩:-10
输入的成绩不正确!

        提示:判断中,

elif score >= 90 and score < 100:
    print('本次考试,等级为A,即为优秀')

        像这样的判断代码有很多,意思是判断成绩是不是大于等于90和小于100,其实还可以简化为链式比较,就像这样:

elif 90 <= score < 100:
    print('本次考试,等级为A,即为优秀')

        这样改成链式比较与之前的代码功能上没有任何区别,只是看着顺眼一点(本人觉得没区别)。

5.if嵌套

        接下来就是一个和elif功能差不多(都是再次进行判断)的方法就是嵌套,一种很常见的方法,简单来说,就是将一个if判断嵌套在另一个if判断里,以达到再次判断的效果。

        格式示例:

if 条件1:
    满足条件1 做的事情1
    满足条件1 做的事情2
    if 条件2:
        满足条件2 做的事情1
        满足条件2 做的事情2

 附带说明:

        外层的if判断,可以更改成if-else判断

        内层的if判断,一样的也可以更改成if-else判断

        根据实际的开发需求,对其进行选择

        示例1:

cheapish = 1  # 用1代表有车票,0代表没有车票
dao_length = 9  # 刀子的长度,单位为cm

if cheapish == 1:
    print("有车票,可以进站")
    if dao_length < 10:
        print("通过安检")
        print("终于可以见到Ta了,美滋滋~~~")
    else:
        print("没有通过安检")
        print("刀子的长度超过规定,等待警察处理...")
else:
    print("没有车票,不能进站")
    print("亲爱的,那就下次见了")

        因为有两个if判断,但是是嵌套着的,所以结果有三个,分别是有车票,刀子长度小于10:

有车票,可以进站
通过安检
终于可以见到Ta了,美滋滋~~~

        有车票,刀子长度大于10:

有车票,可以进站
没有通过安检
刀子的长度超过规定,等待警察处理...

        没有车票(因为没有车票就不会进行下一轮的if判断,便不会有两种结果):

没有车票,不能进站
亲爱的,那就下次见了

6.综合学习——猜拳游戏

需求:

        1.从控制台输⼊要出的拳 —— ⽯头(1)/剪⼑(2)/布(3)

        2.电脑随机出拳 —— 先假定电脑只会出⽯头,完成整体代码功能

        3.⽐较胜负

代码:

player = int(input('请输入:剪刀(1)  石头(2)  布(3):'))

computer = 2  # 固定电脑只能出石头,将电脑computer变量设为2石头

if ((player == 1) and (computer == 3)) or ((player == 2) and (computer == 1)) or ((player == 3) and (computer == 2)):  
    # 判断,因为剪刀石头布只有三种可能,一种玩家赢,一种平局,还有一种电脑赢。先写好玩家胜利的所有可能,再判断是否一样,就是平局。最后都是算作电脑赢
    print('获胜,哈哈,你太厉害了')
elif player == computer:
    print('平局,要不再来一局')
else:
    print('输了,不要走,洗洗手接着来,决战到天亮')

        这样便可以简单的完成,但电脑只会出石头,太过单一。所以,我们便要借用别人做好的库,random来帮我们生成随机数。(以后再细说库)

代码:

import random  # 导入random库,只有导入才能使用

player = input('请输入:剪刀(0)  石头(1)  布(2):')
player = int(player)

# 产生随机整数:1、2、3 中的某一个
computer = random.randint(1, 3)

if ((player == 0) and (computer == 2)) or ((player == 1) and (computer == 0)) or ((player == 2) and (computer == 1)):
    # 判断,因为剪刀石头布只有三种可能,一种玩家赢,一种平局,还有一种电脑赢。先写好玩家胜利的所有可能,再判断是否一样,就是平局。最后都是算作电脑赢
    print('获胜,哈哈,你太厉害了')
elif player == computer:
    print('平局,要不再来一局')
else:
    print('输了,不要走,洗洗手接着来,决战到天亮')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值