笔者:风起怨江南 出处:https://blog.csdn.net/JackMengJin 笔者原创,文章欢迎转载,如果喜欢请点赞+关注,感谢支持!
目录
一、if语句
1.1 if语句基本形式
1.2 if语句判断顺序
1.3 各种判断条件关系
1.4 if...elif...else用法
1.5 多个条件同时判断
二、内置函数input()用法
2.1 小插曲
2.2 Python的内置函数
2.3 更多实例
Python条件判断语句通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试。Python程序语言规定:
编程中经常需要检查一系列条件,并据此决定采用什么措施。Python 编程中 if 语句用于控制程序的执行,基本形式为:
if 判断条件:
执行语句……
else:
执行语句……
"if判断条件"成立时(值非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。
else 为可选语句,在条件不成立时执行相关语句。
先看一个示例并试着理解:
#if语句
num0 = 1
num1 = 2
if num1 == num0:
print('Yes')
else:
print('No')
No
在Python中if语句能够检查程序的当前状态,并据此采用相应的措施。
需要注意的是,if + 判断条件后需要加‘:’冒号,else后也需要加‘:’冒号。
这里以詹姆斯场均得分举例:
#if语句
score0 = 25 #詹姆斯这赛季场均得分
score1 = 27 #詹姆斯生涯场均得分
if score0 == score1:
print('詹姆斯这赛季场均得分等于生涯场均得分')
else:
print('詹姆斯这赛季场均得分不等于生涯场均得分')
詹姆斯这赛季场均得分不等于生涯场均得分
if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)、!=(不等于)来表示其关系。具体用法会在第二节举例说明。
当判断条件为多个值时,可以使用以下形式:
if 判断条件1:
执行语句1
elif 判断条件2:
执行语句2
else:
执行语句3
这里还以詹姆斯场均得分举例:
#if语句
score0 = 25 #詹姆斯这赛季场均得分
score1 = 27 #詹姆斯生涯场均得分
if score0 == score1:
print('詹姆斯这赛季场均得分等于生涯场均得分')
elif score0 > score1:
print('詹姆斯这赛季场均得分大于生涯场均得分')
else:
print('詹姆斯这赛季场均得分小于生涯场均得分')
詹姆斯这赛季场均得分小于生涯场均得分
在Python里多个条件判断用elif来实现。
在if...elif...else结构里的判断顺序:
多个条件同时判断的具体用法会在第二节举例说明。
本来打算将input()放在上面文章里穿插着讲下,但由于这个错误的使用,还是觉得单独把input()拎出来讲下效果更好:
#if语句
print('请猜下老詹这赛季场均多少分:')
score0 = 25 #詹姆斯这赛季场均得分
guess0 = input() #猜的分数
if guess0 == score0:
print('恭喜你猜对了,这赛季老詹场均25分!')
else:
print('很遗憾猜错了,差一点哦')
请猜下老詹这赛季场均多少分:
25
本来以为输入25会得到正确的答案,结果啪啪打脸:
请猜下老詹这赛季场均多少分:
25
很遗憾猜错了,差一点哦
然后我意识到可能输出的类型不对,于是我加上打印再尝试运行一下:
#if语句
print('请猜下老詹这赛季场均多少分:')
score0 = 25 #詹姆斯这赛季场均得分
guess0 = input() #猜的分数
print(type(score0))#查看score0类型
print(type(guess0))#查看guess0类型
if guess0 == score0:
print('恭喜你猜对了,这赛季老詹场均25分!')
else:
print('很遗憾猜错了,差一点哦')
结果果然不出所料,数据类型不同导致的答案错误:
请猜下老詹这赛季场均多少分:
25
很遗憾猜错了,差一点哦
可以通过打印看到input()输入的值是字符串的数据类型(str),所以虽然都是25,但一个代表整数,一个代表字符串,所以得不到正确答案。
查看关于对Python内置函数的详细资料,可以点击Python官网-内置函数->传送门。
而在Python手册里是怎么定义input()的呢?
input
([prompt])如果存在 prompt 实参,则将其写入标准输出,末尾不带换行符。接下来,该函数从输入中读取一行,将其转换为字符串(除了末尾的换行符)并返回。当读取到 EOF 时,则触发
EOFError
。例如:
>>> s = input('--> ')
--> Monty Python's Flying Circus
>>> s
"Monty Python's Flying Circus"
如果加载了
readline
模块,input()
将使用它来提供复杂的行编辑和历史记录功能。
由上可以看到input()返回的值是str字符,所以如果让输入的数字变为整形,可以使用int()方法:
int(input())
#if语句
print('请猜下老詹这赛季场均多少分:')
score0 = 25 #詹姆斯这赛季场均得分
guess0 = int(input()) #猜的分数
print(type(score0))#查看score0类型
print(type(guess0))#查看score0类型
if guess0 == score0:
print('恭喜你猜对了,这赛季老詹场均25分!')
else:
print('很遗憾猜错了,差一点哦')
请猜下老詹这赛季场均多少分:
25
恭喜你猜对了,这赛季老詹场均25分!
可以看到使用int()方法后,变量guess0的数据类型为int类型,而不是2.1实例中的str数据类型,所以运行正确。
还是以老詹得分为例子,这里增加了一个random随机库(random库是使用随机数的Python标准库)。
从概率论角度来说,随机数是随机产生的数据(比如抛硬币),但时计算机是不可能产生随机值,真正的随机数也是在特定条件下产生的确定值,只不过这些条件我们没有理解,或者超出了我们的理解范围。计算机不能产生真正的随机数,那么伪随机数也就被称为随机数
--伪随机数:计算机中通过采用梅森旋转算法生成的(伪)随机序列元素
python中用于生成伪随机数的函数库是random
因为是标准库,使用时候只需要import random
random库包含两类函数,常用的共8个
--基本随机函数: seed(), random()
--扩展随机函数:randint(), getrandbits(), uniform(), randrange(), choice(), shuffle()
已知老詹的得分是一个随机数,范围在20~30之间。用户需要输入数值猜测老詹的场均得分(变量score0),具体代码如下:
import random
#if语句
print('请猜下老詹这赛季场均多少分:')
#詹姆斯这赛季场均得分为一个随机数,范围在20~30之间
score0 = random.randint(20,30)
guess0 = int(input()) #猜的分数
print(type(score0))#查看score0类型
print(type(guess0))#查看score0类型
if guess0 == score0:
print('恭喜你猜对了,这赛季老詹场均:',score0,'分!')
elif guess0 < 20:
print('不要太小看老汉,他得分肯定大于20分的。告诉你正确答案吧:', score0, '分!')
elif guess0 > 30:
print('你大大大大的高估了老詹的得分,他得分肯定低于或等于30分的。告诉你正确答案吧:', score0, '分!')
elif guess0 > 20 and guess0 < 25 and score0 >= 25:
print('你猜的这个分值太小了,已经低于25分了。告诉你正确答案吧:',score0,'分!')
elif guess0 >= 25 and score0 < 25:
print('你高估了老詹的得分,他没得到25分以上。告诉你正确答案吧:',score0,'分!')
elif guess0 >= 28 and score0 < 23:
print('你大大的高估了老詹的得分,你是詹吹么?告诉你正确答案吧:',score0,'分!')
else:
print('很遗憾猜错了,差一点哦,告诉你正确答案吧:',score0,'分!')
尝试测试一下:
请猜下老詹这赛季场均多少分:
1
不要太小看老汉,他得分肯定大于20分的。告诉你正确答案吧: 27 分!
请猜下老詹这赛季场均多少分:
19
不要太小看老汉,他得分肯定大于20分的。告诉你正确答案吧: 29 分!
竟然第三次就猜对了,哈哈!继续测试:
请猜下老詹这赛季场均多少分:
21
恭喜你猜对了,这赛季老詹场均: 21 分!
请猜下老詹这赛季场均多少分:
25
很遗憾猜错了,差一点哦,告诉你正确答案吧: 27 分!
请猜下老詹这赛季场均多少分:
28
你高估了老詹的得分,他没得到25分以上。告诉你正确答案吧: 21 分!
请猜下老詹这赛季场均多少分:
30
很遗憾猜错了,差一点哦,告诉你正确答案吧: 27 分!
请猜下老詹这赛季场均多少分:
30
你高估了老詹的得分,他没得到25分以上。告诉你正确答案吧: 23 分!
请猜下老詹这赛季场均多少分:
31
你大大大大的高估了老詹的得分,他得分肯定低于或等于30分的。告诉你正确答案吧: 20 分!
Python3.x已经没有raw_input() 了,只有input(), 用法功能跟Python2.x中的raw_input() 一样。
以上便是《Python学习03讲》所有内容,更多python学习请继续关注我的博客——风起怨江南,不定期更新,原创不易,如果喜欢请点赞和关注,谢谢大家的支持!想获得更多免费的学习资料请添加我的微信公众号——风起怨江南,谢谢大家的关注和支持!