文章目录
用户输入
函数input()的工作原理
函数input()让程序暂停运行,等待用户输入一些文本。获取用户输入后,python将其存储在一个变量中,以方便你使用。
message=input("please input")
print(message)
使用函数input()时,都应指定清晰而易于明白的提示,有时候提示可能超过一行,在这种情况下,可将提示存储在一个变量中,再将变量传递给函数input()
message=“if you tell us who you are , we can personalize the message you see"
message+="\nWhat is you first name?"
name=input(message)
print("\nHello, "+name+"!")
这个示例演示了一种创建多行字符串的方式。第一行将消息存储在变量message中;
在第二行,运算符+=在存储在message中的字符串末尾附加一个字符串。
使用int()来获取数值输入
使用函数input()时,python将用户输入解读为字符串。
输入数字也能成功打印输出,但是要是做其他数值比较就会报错。
为了解决这个可以使用函数int(),它让python将输入视为数值。函数int()将数字的字符串表示转换为数值表示。
>>>age=input("How old are you?")
How old are you? 26
>>>age=int(age)
>>>age>=18
True
求模运算符
处理数值信息时,求模运算符(%)是一个很有用的工具,它将两个数相除并返回余数。
>>>4%3
1
>>>5%3
2
求模运算符不会指出一个数是另一个数的多少倍,而只指出余数是多少。
如果一个数被另一个数整出,余数就为0,求模运算符将返回0,可利用这个来判断一个数是奇数还是偶数。
while循环
for循环是对每个列表中的元素都执行相同的操作,
而while循环是不断地运行,直到指定的条件不满足为止。
number=1
while number<=5:
print(number)
number += 1
number=number+1
使用break退出循环
要立即退出while循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用break语句。
break语句用于控制程序流程
message="please enter the name fo a city"
message+="(enter 'quit' when you are finished)"
while True:
city=input(message)
if city == 'quit':
break
else:
print("I love " + city)
注意:在python任何循环中都可以使用break语句。例如,可使用break语句来退出遍历列表或字典的for循环。
在循环中使用continue
要返回到循环开头,忽略余下的代码,并根据条件测试结果决定是否继续执行循环,可使用continue语句。
例如:打印1到10的奇数
number=0
while number<10
number+=1
if number % 2 ==0:
continue #满足number%2==0,则继续返回上面开始循环,不满足则输出下面的print语句。
print(number)
避免无限循环
要避免写出无限循环,务必对每个while循环进行测试,确保它按预期那样结束。如果你希望程序在用户输入特定值时结束,可运行程序并输入那样的值;如果在这种情况下程序没有结束,请检查程序处理这个值的方式,确认程序至少有一个这样的地方能让循环条件为false或让break语句得以执行。
使用while循环来处理列表和字典
在列表之间移动元素
Unauth_users=['liming','xiaobai'] #未认证用户
auth_users=[] #已认证用户
while Unauth_users:
user=Unauth_users.pop()
auth_users.append(user)
print("auth_users:")
for auth_user in auth_users:
print(auth_user.title()
删除包含特定值的所有列表元素
使用函数remove()删除列表中的特定值,只能删除第一个指定的值,如果一个值出现了多次,可使用while循环来删除。
pets=['dogs','cat','dogs','cat']
while 'cat' in pets:
pets.remove('cat')
print(pets)
使用用户输入来填充字典
wenda={}
active=True #设置一个标志位,指出问答是否继续
while active:
names=input("what is your name?")
ages=input("How old are you?")
wenda[names]=ages #将问答存储在字典
message=input("who wants to quiz?(yes or no)")
if message =='no':
actuve=False
for name,age in wenda.items():
print(name+age)