Python学习笔记:用户输入和while循环

# -*- coding: utf-8 -*-
"""
Created on Wed Mar  4 14:35:06 2020

@author: 86159
"""
# use #%% to create cells, Run current cell(ctrl+enter)
#%%
mes=input('tell me something:\n')#返回值是字符串,函数input()让程序暂停运行,等待用户输入一些文本,按回车键后继续运行;接受一个参数,即要向用户显示的提示或说明
print(mes)
#%%
notice="please tell me that u r a xx."#可以先把提示语存放到一个变量中
notice=notice+"\nCould u?\n"#notice=notice+"xx"   notice+="xx" 效果相同
mess=input(notice)
print(mess)
#%%
#使用int()来获取数值输入,因为input()返回值是字符串,无法当作数字使用
#int('12',16)的结果是18,12要以字符串的形式进行输入,如果是带参数base的话,这里并不是将12转换为16进制的数,而是说12就是一个16进制的数,int()函数将其用十进制数表示
#int('12',8)的结果是10,说明12是八进制,输出结果应该是十进制
age=input('input your age:')
#print(eval(age))#若输入值是's',错误提示name 's' is not defined
#print(int(age))#若输入值是'a',错误提示invalid literal for int() with base 10: 'a'
#age=age+10#can only concatenate str (not "int") to str
#age1=10+eval(age+'10')#输入11 输出结果为1120,因为eval返回的是字符串表达式'11'+'10'的结果(去掉外层引号),即1110
age1=10+eval(age)#eval()函数:返回传入字符串的表达式的结果。即变量赋值时,等号右边的表示是写成字符串的格式,返回值就是这个表达式的结果。
age2=10+int(age)#使用int()来获取数值输入
print(age1,age2)
#%%
#对输入的数字进行奇偶判断
num=input('input a number:')
num=int(num)

if num%2==0:#求模运算符 %,将两个数相除并返回余数
    print(str(num)+' is even')
else:
    print(str(num)+' is odd')
#%%
#while循环:避免无限循环,必须有停止运行的途径
current_num=1
while current_num<=5:#while 条件:    满足条件就接着运行这个循环
    print(current_num)
    current_num += 1#current_num=current_num + 1的简写
#%%
message=''
prompt='tell me something,and I will repeat it to u:'
prompt+="\nenter 'quit' to end the program\n" 

while message!='quit':#定义一个退出值,只要用户输入的不是这个值,程序就接着运行
    message=input(prompt)
    if message!='quit':#冒号
        print('the thing that you told me is '+message)
#%%
#标记,值为True False(首字母大写
#有很多事件可以导致循环停止,所以设置标志,在其中的任何一个事件导致活动标志变成False时,循环退出
flag=True
prompt='tell me something,and I will repeat it to u:'
prompt+="\nenter 'quit' to end the program\n" 

while flag:#flag作为标记值,值为True时循环运行,为False时停止循环
    message=input(prompt)
    if message!='quit':
        print('the thing that you told me is '+message)
    else:
        flag=False
#%%
#break:用于控制程序流程,立即退出整个循环,不再运行循环中余下的代码,不管条件测试的结果如何;在任何循环中都可使用break语句来退出循环
prompt="\nplease enter the name of the city you have visited:"
prompt+="\nenter 'quit' when you are finished."

while True:#若没有终止条件,将一直循环下去
    city=input(prompt)
    if city=='quit':
        break
    else:
        print('\nthe city you have visited is '+city.title())
#%%
#continue:退出本次循环;返回到循环开头,并根据条件测试结果决定是否继续执行循环
num=0
while num<10:#条件
    num+=1#判断1-10的奇偶性,若没有这句,将会陷入死循环,因为num的值一直不变且符合while的循环条件
    if num%2!=0:
        continue#遇到奇数跳过本次循环,继续判断num+1
    else:
        print(str(num)+' is a even')
#num=1
#while num<10:#条件
#    if num%2==0:
#        num+=1
#        continue#遇到偶数跳过本次循环,继续判断num+1
#    else:
#        print(str(num)+' is a odd')
#        num=num+1
#%%
#使用while循环处理列表和字典
un_mems=['a','b','c']#待验证用户列表
mems=[]#已验证用户列表

while un_mems:#列表不为空
    uu=un_mems.pop()#从列表末尾弹出元素
    
    mems.append(uu)#在列表末尾插入元素
mems.reverse()#永久性的翻转列表元素的顺序 例如:由['c','b','a']转换成['a','b','c']
for mem in mems:
    print(mem)
#%%
#删除包含特定值的所有列表元素
pets=['a','b','a','b','a','b']

while 'a' in pets:#循环删除列表中的某个元素,while 条件:条件为真的时候,循环一直运行
    pets.remove('a')#移除
for pet in pets:
    print(pet)
#%%
#使用用户输入来填充列表
pets=[]

pet=input("输入宠物种类:\n结束输入时输入'quit'")
while pet!='quit':
    pets.append(pet)
    pet=input("输入宠物种类:\n结束输入时输入'quit'")
for pet in pets:
    print(pet)
#%%
#使用标记:用户输入来填充列表
flag=True
pets=[]

while flag:#使用标记来作为判断条件
    pet=input("输入宠物种类\n结束输入时输入'quit'\n")
    if pet=='quit':
        flag=False
    else:
        pets.append(pet)
print('列表中包含的元素如下')
print(len(pets))
for pet in pets:
    print(pet)
#%%
#使用用户输入来填充字典
users={}#先定义一个空字典
flag=True#标记

while flag:
    name=input("输入用户姓名:")
    age=input("输入用户年龄:")#返回值的类型是字符串
    
    users[name]=int(age)#往字典中插入新的键值对
    #users[name]=eval(age)#往字典中插入新的键值对
    
    mes=input("是否全部登记完毕?\n输入yes/no\n")
    if mes=='yes':
        flag=False#flag为False时终止循环;也可用 break终止整个while循环
for key,value in users.items():
    #print(users[key].title()+':'+str(users[value]))#写法错误,因为key中存储的就是键,value中存的就是值
    print(key.title()+':'+str(value))
发布了78 篇原创文章 · 获赞 31 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_37209590/article/details/104664006