# Python编程:if语句,while循环和用户输入

Python编程:if语句,while循环和用户输入

if 语句

编程时经常需要检查一系列条件,并据此决定采取什么措施。在 Python 中, if 语句让你能够检查程序的当前状态,并据此采取相应的措施。

>>>cars = ['audi', 'bmw', 'subaru', 'toyota']
>>>for car in cars:
>>>	if car == 'bmw':
>>>		print(car.upper())	#若车名为bmw则输出大写形式
>>>	else:
>>>		print(car.title())  #否则输出首字母大写形式
Audi
BMW
Subaru
Toyota

条件测试

if关键词紧跟一个bool值,种表达式被称为条件测试——若该布尔值为真(True)则执行if 后的代码块,若为假(False)则忽略if 后的代码块。

检查是否相等(不等)

检查是否相等:a==b (注意两个等号)。

>>>a=10
>>>b=10
>>>a==b
True	#若返回True则a=b,若返回False则a!=b

检查是否不等:a != b若返回True则a!=b,若返回False则a=b

**在Python中检查是否相等时区分大小写。**但如果大小写无关紧要,而只想检查变量的值,可将变量的值转换为小写,再进行比较。

比较数字

如下,检查一个人是否是18岁,或者是否大于/小于18岁:

>>> age == 18
True			#是18岁
>>> age > 18
True			#大于18岁
>>> age < 18
True			#是小于8岁
检查多个条件
逻辑与and

要检查是否两个条件都为 True ,可使用关键字 and。只有两个条件均为True ,才通过;有一个为False则不通过。

>>>age_1=10
>>>age_2=20
>>>(age_1<15)and(age_2>15)
True

为改善可读性,可将每个测试都分别放在一对括号内。

逻辑或or

关键字 or 也能够让你检查多个条件,但只要至少有一个条件满足,就能通过整个测试。仅当两个测试都没有通过时,使用 or 的表达式才为 False 。

检查特定值是否在列表中

要判断特定的值是否已包含在列表中,可使用关键字 in

>>> requested_toppings = ['mushrooms', 'onions', 'pineapple']
>>> 'mushrooms' in requested_toppings
True
>>> 'pepperoni' in requested_toppings
False

还有些时候,确定特定的值未包含在列表中很重要;在这种情况下,可使用关键字not in

if-else语句

在存在两种可能性的情况下可使用if-else语句。if条件满足则执行if代码块,if的条件不满足则执行else的代码块。

>>>if age >= 18:
>>>		print("You're ready to vote!")
>>>else:
>>>		print("You're not ready to vote!")

if-elif-else语句

经常需要检查超过两个的情形,为此可使用 Python 提供的 if-elif-else 结构。

Python 只执行 if-elif-else 结构中的一个代码块,它依次检查每个条件测试,直到遇到通过了的条件测试。测试通过后, Python 将执行紧跟在它后面的代码,并跳过余下的测试。

例如分年龄段收费:

>>>if age < 4:
>>>	print("Your admission cost is $0.")  #小于4岁免费
>>>elif age < 18:
>>>	print("Your admission cost is $5.")  #4-18岁5美元
>>>else:
>>>	print("Your admission cost is $10.")  #18岁以上10元

当情况多于3种可以使用多个elif语句。

省略else代码块

Python 并不要求 if-elif 结构后面必须有 else 代码块。else 是一条包罗万象的语句,只要不满足任何 if 或 elif 中的条件测试,其中的代码就会执行,这可能会引入无效甚至恶意的数据

例如上一例可改为如下,情况更加完整清晰:

>>>elif age>18:
>>>	print("Your admission cost is $10.")  #18岁以上10元

测试多个条件

if-elif-else 结构功能强大,但仅适合用于只有一个条件满足的情况。然而,有时候必须检查你关心的所有条件,此时使用简单if语句,在每个条件为 True时都采取相应措施。

例如,检查顾客是否点了几种配料:

>>>if 'mushrooms' in requested_toppings:
>>>	print("Adding mushrooms.")
>>>if 'pepperoni' in requested_toppings:
>>>	print("Adding pepperoni.")

使用 if 语句处理列表

检查特殊元素

例如,检查顾客是否点了mushroom:

>>>for requested_topping in requested_toppings:
>>>	if requested_topping == 'mushroom':
   -snip-
确定列表不为空
>>>if requested_toppings:	#若列表不为空则返回True
>>>	for requested_topping in requested_toppings:
  	-snip-
使用多个列表

若顾客提出的要求超出了pizza店的库存,那么需要拒绝ta。此时可以给定一个库存表,将顾客提出的要求与之对比,若没有则拒绝ta。

>>> available_toppings = ['mushrooms', 'olives', 'green peppers']
>>>for requested_topping in requested_toppings:
>>>	if requested_topping in available_toppings:
  -snip-

if语句格式

在条件测试的格式设置方面, PEP 8 提供的唯一建议是,在诸如 == 、 >= 和 <= 等比较运算符两边各添加一个空格。

用户输入与while 循环

函数input()

函数 input() 让程序暂停运行,等待用户输入一些文本。获取用户输入后, Python 将其存储在一个变量中,以方便你使用。

>>>message = input("Tell me something: ") #显示‘Tell me something: ’,并将用户反馈存入message
>>>print(message)		
Tell me something: Hello everyone!  
Hello everyone!		#显示存储在message中的"Hello everyone!"

函数 input() 接受一个参数:即要向用户显示的提示或说明,让用户知道该如何做。

使用int() 函数来获取数值输入

使用函数 input() 时, Python 将用户输入解读为字符串。有时候我们需要接收数字,这时可使用函数 int() ,函数 int() 将数字的字符串表示转换为数值表示。

>>>height = input("How tall are you, in inches? ")
>>>height = int(height)

while 循环

while 循环不断地运行,直到指定的条件不满足为止。

例如,输出数字1-5:

>>>current_number=1
>>>while current_number<6:  #当满足条件current_number<6时执行循环体
>>>  	print(current_number)
>>>		current_number+=1   #步长为1
让用户选择何时退出

使用 while 循环让程序在用户愿意时不断地运行,如下例,当用户输入‘quit’时退出循环。

>>>while message != 'quit':
>>> -snip-
根据标志判断是否结束循环

在前一个示例中,我们让程序在满足指定条件时就执行特定的任务。但在复杂的程序中,很多不同的事件都会导致程序停止运行。我们可定义一个变量,用于判断整个程序是否处于活动状态。这个变量被称为标志。

如下例所示,定义一个标志active,检查当灯坏或红灯条件为真时,active标志为False,此时不可通行:

>>>active=True
>>>if light_broken:
>>>		active=False
>>>if light_red:
>>>		active=False
>>>while active:
>>>		print("You can drive through.")    
使用break退出循环

要立即退出 while 循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用 break 语句。

>>>while True:
>>>	city = input("Please input your favorite city: ")
>>>	if city == 'quit':  输入为'quit'则结束循环
>>>		break
		-snip-
使用continue重新开始循环

使用continue关键字可跳过循环体剩余部分回到循环开头,重新开始一个循环。如下例,打印10以内的奇数:

>>>while current_number < 10:
>>>	current_number += 1
>>>	if current_number % 2 == 0:
>>>		continue #偶数则跳过打印环节
>>>	print(current_number)
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值