6.0、Python基础--输入与while循环(列表、字典与循环嵌套使用)

6.1、input()方法原理

程序运行到input()方法时,会暂停,等待用户输入文本。获取到用户输入后,程序会将其存储到一个变量中。

message =  input('请输入文本:')
print(message)
输出结果:
请输入文本:我喜欢编程
我喜欢编程

运行结果

注意: Sublime Text不能运行提示用户输入的程序。你可以使用Sublime Text来编写提示用户输入的程序,但必须从终端运行它们

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

message =  int(input('请输入数字:'))
print(message)

代码解析:
在示例中,当输入数字时,Python将这个数字解读为字符串,但随后int()将这个字符串转换成了数值类型。

score =  input('请输入成绩:')
score = int(score)
if score >= 90:
    print('恭喜你晋级啦')
else:
    print('很遗憾!')
    

运行结果

通过这个例子可以看出,我们用int()方法成功将字符串转换成数值类型

6.1.3、取模运算符

取模运算符(%)是个很有用的工具,将两数相除并返回余数。

print(4 % 3) # 1
print(5 % 3) # 2
print(6 % 3) # 0

取模运算不会指出一个数是另一个数的多少倍,而是指出余数是多少。

6.2、while循环介绍

while循环和for循环不同之处在于,while循环不断运行,直到满足指定条件后才停止。

6.2.1、while循环

num = 1
while num <= 5:
    print('Python->'+str(num))
    num+=1

输出结果:
Python->1
Python->2
Python->3
Python->4
Python->5

6.2.2、while循环何时退出

我们可以使while循环不断的运行,我们在其中定义一个退出值,只要用户输入的不是这个值,程序就接着运行。

information = 'Hello Word!!'
message = ''
while message != 'exit':
    message = input('请输入:'+information)
    if message != 'exit':
        print(message)

运行结果:
运行结果

information = '输入文本'
information += '\nEnter ’exit‘ to end:'
bol = True
while bol:
    message = input(information)
    if message == 'exit':
        bol = False
    else:
        print(message)

运行结果:
运行结果

6.2.3、while循环使用break退出循环

如果要立刻退出while循环,不再运行循环中剩下的代码,可以用break语句。break语句用于控制程序流程,可以使他来控制哪些代码行将执行,哪些代码行不执行,这样可以让程序按照我们的要求来执行。

information = '请输出你喜欢的城市名字,'
information += '输 ’exit‘ 退出:'
while True:
    message = input(information)
    if message == 'exit':
        break
    else:
        print('我喜欢 '+message)

运行结果:
运行结果
代码解析:
程序开头while True将不断运行,直到遇到break语句,则会跳出整个循环。

6.2.4、while循环使用continue语句

continue语句与break语句不同之处在于,continue只跳出本次循环,而break语句则是直接跳出循环,执行后面的代码。

num = 0
while num < 10:
    num+=1
    if num%2 ==0:
        continue
    print(num)
输出结果:
1
3
5
7
9

代码解析:
首先将num设置为0,由于num小于10,则会进入循环,以步长1的方式往上数,到if语句判断num取模2之后是否为0 ,如果为0,则跳出本次循环,num加1之后回到开头,再次执行while循环,如果当前数字不能被2整除,就循环余下代码块。

6.3、while循环和列表、字典结合

我们如果要处理一些用户信息:获取用户的输入,再将输入的打印出来或者作出应答,循环再次运行时,我们获取另一个输入值并作出响应,则需要while循环中嵌套列表和字典。
for循环是一种遍历列表的方法,但是for循环中不适合做对列表修改的操作。要在遍历列表的同时对其进行修改,可用while循环来实现。

6.3.1、在列表中移动元素

假定有一个列表,其中包含新注册但是未验证的网站用户;验证这些用户后,如何将他们移到另一个已验证用户列表中呢?一种办法是使用一个while循环,在验证用户的同时将其从未验证用户列表中提取出来,再将其加入到另一个已验证用户列表中。

#首先,创建一个待验证的用户列表
# 和一个用于存储已经验证用户的空列表
un_users = ['tony','tom','json','mds']
con_users = []
# 验证每个用户 直到没有可验证用户未知
# 将每个验证完的列表都移到已验证用户列表中
while un_users:
    cu_user = un_users.pop()
    print('没有验证的用户: '+cu_user.title())
    con_users.append(cu_user)
# 显示所有已验证的用户
print('完成验证用户有:')
for c_user in con_users:
    print(c_user.title())
    

运行结果:
运行结果

代码解析:
首先创建了两个列表,un_users 是没有经过验证的用户,con_users 是已经验证过的用户,是一个空列表。while循环不断运行,直到un_users列表变为空。在这循环中,函数pop()每次从列表末尾删除一个未验证的用户,之后将末尾用户存储到变量中并再添加到con_users列表中。

6.3.2、

将用户输入大批信息,循环添加到字典中。每次循环执行时都提示输入被采访者的名字和回答。将数据收集到字典中。

persons = {}
# 设置一个状态,表示是否要继续循环
state = True
while state:
    # 提示用户输入采访者名字和回答
    user_name = input('请输入名字:\n')
    person = input('请输入你喜欢的城市:\n')
    # 将输入信息存储到字典中
    persons[user_name] = person
    # 判断是否还有被采访的用户
    per = input('还有被采访者吗?(yes:继续;no:录入完毕)')
    if per == 'no':
        state = False
# 输入结束,显示输入结果
print('\n-------------Results------------------')
for user_name,person in persons.items():
    print(user_name+' 喜欢 '+ person)

运行结果:
运行结果

6.3.3、删除列表中特定值的元素

在前面文章中,用方法remove()来删除列表中的特定值,之所以可行,是因为要删除的值在列表中只出现了一次,如果要删除出现多次的特定值,则要用while来嵌套使用。

information = ['北京','上海','内蒙古','病毒']
print(information)
while '病毒' in information:
    information.remove('病毒')
print(information)

运行结果:
运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值