Python学习03:if条件判断从句和内置函数input()用法

笔者:风起怨江南 出处: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学习03:条件判断从句

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

每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试。Python程序语言规定:

  • 任何非0、非空(null)值为true
  • 0 或者 null为false

一、if语句

1.1 if语句基本形式

编程中经常需要检查一系列条件,并据此决定采用什么措施。Python 编程中 if 语句用于控制程序的执行,基本形式为:

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

"if判断条件"成立时(值非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围

else 为可选语句,在条件不成立时执行相关语句。

先看一个示例并试着理解:

#if语句
num0 = 1
num1 = 2
if num1 == num0:
    print('Yes')
else:
    print('No')
No

在Python中if语句能够检查程序的当前状态,并据此采用相应的措施。

需要注意的是,if + 判断条件后需要加‘:’冒号,else后也需要加‘:’冒号。

1.2 if语句判断顺序

  1. 如果判断结果为true,会依次执行接下来的语句,如果判断结果为false,则会不执行if中的语句。
  2. 如果判断结果为true,会执行if中的语句,如果判断结果为false,则会执行else中的语句。

这里以詹姆斯场均得分举例:

#if语句
score0 = 25 #詹姆斯这赛季场均得分
score1 = 27 #詹姆斯生涯场均得分
if score0 == score1:
    print('詹姆斯这赛季场均得分等于生涯场均得分')
else:
    print('詹姆斯这赛季场均得分不等于生涯场均得分')
詹姆斯这赛季场均得分不等于生涯场均得分

1.3 各种判断条件关系

if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)、!=(不等于)来表示其关系。具体用法会在第二节举例说明。

1.4 if...elif...else用法

当判断条件为多个值时,可以使用以下形式:

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结构里的判断顺序:

  1. 如果if条件判断结果为true,会执行if中的语句。
  2. 如果if条件判断结果为false,elif条件判断结果为true,则会执行elif中的语句。
  3. 如果if条件判断结果为false,elif条件判断结果为false,则会执行else中的语句。

1.5 多个条件同时判断

  • 如果判断需要多个条件同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功。
  • 使用 and (与)表示只有两个条件同时成立的情况下,判断条件才成功。

多个条件同时判断的具体用法会在第二节举例说明。

二、内置函数input()用法

2.1 小插曲

本来打算将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
<class 'int'>
<class 'str'>
很遗憾猜错了,差一点哦

可以通过打印看到input()输入的值是字符串的数据类型(str),所以虽然都是25,但一个代表整数,一个代表字符串,所以得不到正确答案。

2.2 Python的内置函数

查看关于对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
<class 'int'>
<class 'int'>
恭喜你猜对了,这赛季老詹场均25分!

可以看到使用int()方法后,变量guess0的数据类型为int类型,而不是2.1实例中的str数据类型,所以运行正确。

2.3 更多实例

还是以老詹得分为例子,这里增加了一个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
<class 'int'>
<class 'int'>
不要太小看老汉,他得分肯定大于20分的。告诉你正确答案吧: 27 分!
请猜下老詹这赛季场均多少分:
19
<class 'int'>
<class 'int'>
不要太小看老汉,他得分肯定大于20分的。告诉你正确答案吧: 29 分!

竟然第三次就猜对了,哈哈!继续测试:

请猜下老詹这赛季场均多少分:
21
<class 'int'>
<class 'int'>
恭喜你猜对了,这赛季老詹场均: 21 分!
请猜下老詹这赛季场均多少分:
25
<class 'int'>
<class 'int'>
很遗憾猜错了,差一点哦,告诉你正确答案吧: 27 分!
请猜下老詹这赛季场均多少分:
28
<class 'int'>
<class 'int'>
你高估了老詹的得分,他没得到25分以上。告诉你正确答案吧: 21 分!
请猜下老詹这赛季场均多少分:
30
<class 'int'>
<class 'int'>
很遗憾猜错了,差一点哦,告诉你正确答案吧: 27 分!
请猜下老詹这赛季场均多少分:
30
<class 'int'>
<class 'int'>
你高估了老詹的得分,他没得到25分以上。告诉你正确答案吧: 23 分!
请猜下老詹这赛季场均多少分:
31
<class 'int'>
<class 'int'>
你大大大大的高估了老詹的得分,他得分肯定低于或等于30分的。告诉你正确答案吧: 20 分!

Python3.x已经没有raw_input() 了,只有input(), 用法功能跟Python2.x中的raw_input() 一样。


以上便是《Python学习03讲》所有内容,更多python学习请继续关注我的博客——风起怨江南,不定期更新,原创不易,如果喜欢请点赞和关注,谢谢大家的支持!想获得更多免费的学习资料请添加我的微信公众号——风起怨江南,谢谢大家的关注和支持!

发布了10 篇原创文章 · 获赞 14 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/JackMengJin/article/details/105339707