chapter 7 用户输入和while循环

1、 函数input()的工作原理

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

name = input('What is your name : ')
print('Welcome ' + name + '!')       # 注意这里 name 只存储了你输入的部分,不包括 'What is your name : '

输入‘Howe’后输出是:

 

函数 input() 接受一个参数:即要想用户显示的提示或说明,让用户知道该如何做。在上面的例子中,'What is your name : ' 就是传入 input() 函数的参数。当程序运行到 input() 函数是,会阻塞在这里,等待用户输入,用户输入完成并按下回车键后,程序才继续运行。

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

在使用 input() 函数是,Python会将用户所有的输入解读为字符串。所以当需要把输入解读为数字时,使用 int() 函数。

number = input('Enter your number what you want : ')
if(number > 10):   # 这里的 number 没有转换成数字,不能直接和数字比较,所以会报类型错误
    print('The number you enter is greater than 10')
else:
    print('The number you enter is less than 10')

报错是:

number = input('Enter your number what you want : ')
if(int(number) > 10):
    print('The number you enter is greater than 10')
else:
    print('The number you enter is less than 10')

当输入 11 时,输出是:

1.2 求模运算符

处理数值信息时,求模运算符(%)时一个很有用的工具,它将两个数相除并返回余数。

print('4 % 3 = ' + str(4 % 3))
print('5 % 3 = ' + str(5 % 3))
print('6 % 3 = ' + str(6 % 3))
print('7 % 3 = ' + str(7 % 3))

输出是:

2、while 循环简介

for循环用于针对集合中的每个元素的一个代码块,而while循环不断的运行,直到指定的条件不满足为止。在编写程序时除必要情况,应尽量避免出现死循环的情况

2.1 使用 while 循环

number = 1
while number <= 5:
    print('number = ' + str(number))
    number += 1   # 等价于 number = number + 1

输出是:

如果把上面 while 循环的条件 number <= 5 改为 True ,那么程序会永远在执行 while 循环里面的代码。

2.2 让用户选择合适退出

message = ''
while message != 'quit':
    message = input("Enter something what you want: \nWhen you enter 'qiut',the program will exit. ")
    print(message)

输出是:

2.3 使用 break 退出循环

message = ''
while True:
    message = input("Enter something what you want: \nWhen you enter 'qiut',the program will exit. ")
    if message == 'quit':
        break
    else:
        print(message)

这段代码和上面的代码所实现的效果是一样的,只是退出 while 循环的方式不一样。

2.4 在循环中使用 continue

要返回循环的开头,并根据条件测试结果决定是否继续执行循环,可用 continue 语句,它不会像 break 语句那样不再执行余下的代码并退出整个循环。

number = 0
while True:
    number += 1
    if number % 2 == 0:
        print(str(number) + ' % 2 = 0')
        continue
    elif number > 10:
        break
    else:
        print('number = ' + str(number))

输出是:

3、使用 while 循环来处理列表和字典

3.1 在列表之间移动元素

unconfirmed_users = ['alice', 'brian', 'candace']
confirmed_users = []
while unconfirmed_users:
    current_user = unconfirmed_users.pop()
    print('Verrfying 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())

输出是:

3.2 删除包含特定值的所有列表元素

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

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

print(pets)

输出是:

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

informations = {}
flag = True
while flag:
    name = input('\nWhat is your name: ')
    age = input('Hello ' + name + '! How old are you? ')
    informations[name] = int(age)
    repeat = input('Do you want to continue? (yes/no) ')
    if repeat == 'no':
        flag = False

print('\n----- Result -----')
for name, age in informations.items():
    print(name.title() + '`s age is ' + str(age))

输出是:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值