(二) 【新手7天爬虫入门】python基础知识———IF条件判断(附带剪刀石头布游戏源码)

哈根达斯
2022-04-26 / 0 评论 / 249 阅读 / 正在检测是否收录...

Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。

可以通过下图来简单了解条件语句的执行过程:
l2g9y6ti.png
Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。

Python 编程中 if 语句用于控制程序的执行,基本形式为:

if 判断条件:
    执行语句……
else:
    执行语句……

其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。
else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句。
Gif 演示
l2g9zep9.png

逻辑控制,
条件真:非0,True
条件假:0,False,None
使用的是时候我们应该要注意代码的缩进与空格,以为别的语言一般会时使用 {}进行处理


# 条件为真
'''
condition=True
condition='任意字符'
condition=100
'''
# 条件为假
'''
condition=False
condition=0
condition=None
'''
condition = None

if condition:
    print("条件为true")
else:
    print("条件为False")
    print("我也是False这个语句快的") #这条语句的缩进和前一条一样,还在else 控制块语句内

print("程序运行结束")  # 这里else是控制语句块外面的代码语句

## 以下说明错误情况,应该注意缩进问题

'''
if condition:
    print("条件为true")
else:
 print("条件为False") #这个语法是错误的,需要缩进一致
    print("我也是False这个语句快的")
'''

if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
当判断条件为多个值时,可以使用以下形式:

if 判断条件1:
    执行语句1……
elif 判断条件2:
    执行语句2……
elif 判断条件3:
    执行语句3……
else:
    执行语句4……

如果使用三目运算者写法语句如下写法也与其它语言有所不同
三目运算表达式:变量 = 表达式 if 判断条件 else 表达式

#男=1,女=2,0=未知
sex = '男' if val==1 else '女' #当val==1则sex为男
# 变量 = 表达式 if 判断条件 else 表达式
sex = '男' if val==1 else '女' if sex==2 else '未知' #当val==1则sex为男,当sex不为1,也不为2时,sex为位置

由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。

当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。

附带剪刀石头布游戏

程序要求:控制台输入一个数字代码三种状态中的一种,程序生成一个随机码与之比较,输出提示输赢情况

第一版逻辑

import random #随机库

tn = input("石头剪子布游戏:(0)剪刀,(1) 石头,(2)布,请输入对应的数字出拳:\n")
if tn not in ['0', '1', '2']:
    print("请输入合法数字:0,1,2")
else:
    tn = int(tn)

bn = random.randint(0, 2)
print("对方出了%d" % bn)

if tn == 0:
    if bn == 1:
        print("对方出了石头你输了")
    elif bn == 2:
        print("对方出了布,你赢一局")
    else:
        print("对方也出了剪刀,平局")
elif tn == 1:
    if bn == 2:
        print("对方出了布你输了")
    elif bn == 0:
        print("对方出了剪刀,你赢一局")
    else:
        print("对方也出了石头,平局")
elif tn == 2:
    if bn == 2:
        print("对方也出了布,平局")
    elif bn == 0:
        print("对方出了剪刀,你输了")
    else:
        print("对方也出了石头,你赢了")

精简后逻辑

    import random #随机库
    
    tn = input("石头剪子布游戏:(0)剪刀,(1) 石头,(2)布,请输入对应的数字出拳:\n")
    if tn not in ['0', '1', '2']:
        print("请输入合法数字:0,1,2")
    else:
        tn = int(tn)

    bn = random.randint(0, 2)
    bnStr = "剪刀" if bn == 0 else "石头" if bn == 1 else "布"
    print("对方出了(%d)%s" % (bn, bnStr), end="")

    if (tn == 0 and bn == 2) or (tn == 1 and bn == 0) or (tn == 2 and bn == 1):
        print(",你赢了")
    elif (tn == 0 and bn == 1) or (tn == 1 and bn == 2) or (tn == 2 and bn == 0):
        print(",你输了")
    elif bn == tn:
        print(",平局")

本文内容部分图片文献内容与图片来自:https://www.runoob.com/python/python-if-statement.html,如有侵犯请联系站长进行删除

0

评论 (0)

取消