《Python编程从入门到实践》7

第7章 用户输入和while循环

7.1 函数input()的工作原理

message = input("Tell me something, and I will repeat it back to you: ")
print(message)
函数input()的参数是:令用户输入字符串时的提示语

7.1.1 编写清晰的程序

name = input("Please enter your name:")
print(f"\nHello,{name}!")

prompt = "If you tell us who you are, we can personalize the messages you see."
prompt += "\nWhat is your first name?"

name = input(prompt)
print(f"\nHello,{name}")
这里要注意+=,在python中,变量a += 变量a 等同于: 变量a = 变量a + 变量a

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

age = input("How old are you?")
a = int(age) > 18
print(a)

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

if height >= 48:
	print("\nYou're tall enough to ride!")
else:
	print("\nYou'll be able to ride when you're a little older.")
这里可以将int()和str()等同理解,起到类型转换的作用

7.1.3 求模运算符

number = input("Enter a number, and I'll tell you if it's even or odd:")
number = int(number)

if number % 2 == 0:
	print(f"The number {number} is even.")
else:
	print(f"The number {number} is odd.")
这里举了一个例子:
首先我们输入一个值,然后把输入的值通过int()进行类型转换,
然后通过ifelse语句进行判断,条件是int()之后的值对2取余数,
然后便可以打印出奇数、偶数 

7.2 while循环简介

一直循环,直到不满足条件为止

7.2.1 使用while循环

current_number = 1
while current_number <= 5:
	print(current_number)
	current_number += 1
这里举了一个简单的例子:
设变量值为1,运行while语句
首先要进行条件判断,如果符合条件,则运行循环语句
循环末尾变量的值加1,继续遍历循环判断条件。

7.2.2 让用户选择何时退出-设定退出的值

prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\nEnter 'quit to end the program."
message = ''
while message != 'quit':
	message = input(prompt)

	if message != 'quit':
		print(message)
其实就是在循环时,让用户输入某一个值,
然后判断while循环的条件和用户输入的值是否相等,
一般情况下,我们这样设置:用户输入的值不等于循环判断值时,我们进行循环

7.2.3 使用标志

prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\nEnter 'quit to end the program."

active = True

while active:
	message = input(prompt)

	if message == 'quit':
		active = False
	else:
		print(message)
使用标志:其实就是换了一种花样结束循环,
我们一开始定义一个变量,赋予其布尔值:True
然后将这个标志设置为while循环的判断语句并进行循环
这个过程中还是需要用户不停的进行输入,因为不输入,标志的值便无法改变
我们通过if语句来对标志的值进行改变。

7.2.4 使用break退出循环

prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\nEnter 'quit to end the program."

while True:
	message = input(prompt)

	if message == 'quit':
		break
	else:
		print(message)
这里我们将while循环判断的值直接设置为True
同样,while循环在每次循环前都要判断条件是否满足
很显然,循环设置为True后,当用户没有打断循环时,会进入死循环
同样,我们在这里设置if-else语句,如果满足了循环结束的条件,我们直接通过break结束循环

7.2.5 在循环中使用continue

current_number = 0
while current_number < 10:
	current_number += 1
	if current_number % 2 == 0:
		continue
	print(current_number)
break语句是直接结束循环
continue是返回到循环开头去进行判断-循环,并不结束循环
同样,我们设置if条件判断语句,当条件满足时,我们通过continue返回循环开头

7.2.6 避免无限循环

x = 1
while x <= 5:
	print(x)
	x += 1
在上述例子中,如果我们在循环体末尾不添加变量自加的语句,那么程序会进入死循环

7.3 使用while循环处理字典和列表

7.3.1 在列表之间移动元素

unconfirmed_users = ['alice', 'brian', 'candace']
confirmed_users = []

while unconfirmed_users:
	current_user = unconfirmed_users.pop()

	print(f"Verifying user:{current_user.title()}")
	confirmed_users.append(current_user)

print("\nThe following users have been confirmed:")
for confirmed_user in confirmed_users:
	print(confirmed_user.title())
这里我们首先定义两个列表,一个存入值,另一个为空列表
然后通过while循环遍历第一个列表,将列表中的值存入一个变量
这里我们采用方法pop()将第一个列表中的值弹出
再将变量的值存入空列表,然后循环继续进行遍历-取出-存储操作
最后通过for循环遍历打印最开始的空列表,输出添加后的值

7.3.2 用while循环移除列表中的特定值

pets = ['dog', 'cat', 'cat']
print(pets)

while 'cat' in pets:
	pets.remove('cat')

print(pets)
到这里,我真的发现python这个编程语言的优雅之处,
它的代码风格很符合我们人类的语言
例如这里:判断值‘cat’是否再列表pets中,
我们直接通过 “while ‘cat' in pets:”这条语句来进行循环,真的很优雅!

7.3.3 使用用户输入来填充字典

qs = {}

polling_active = True

while polling_active:
	name = input("\nWhat is your name?")
	mountain_name = input("Which mountain would you like to climb someday?")

	qs[name] = mountain_name

	repeat = input("Would you like to let another person respond?(yes/no)")
	if repeat == 'no':
		polling_active = False

print("\n--- Poll Results ---")
for name, mountain_name in qs.items():
	print(f"{name} would like to climb {mountain_name}.")
这里我们先定义一个空字典,然后赋予一个标志,然后进行while循环
在循环中:我们通过函数input()输入字典所需要的键值对
然后将键值对存入字典中,这里如果忘记了字典中键值对的存储,可以回顾上一篇文章。
将键值对存入字典之后,我们再引导用户输入一个值,再用if语句进行判断,
如果满足条件,我们修改while循环的标志,令其值为False
这样便结束了while循环
最后我们通过for循环,输出字典,上面这个例子是输出了我们想要看到的结果

目前已经学完了7个章节,用到最多的就是:列表、元组、字典、if语句、if-else语句、if-elif-else语句还有我们在打印输出时的f字符串,f字符串真的很方便,f字符串使得我们不用再在print函数中写入很多双引号和加号,看上去很“优雅”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值