python的input和while使用
一、Python input()函数:获取用户输入的字符串
Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。
Python2.x 中 input() 相等于 eval(raw_input(prompt))
,用来获取控制台的输入。
raw_input() 将所有输入作为字符串看待,返回字符串类型。而 input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )。
注意:input() 和 raw_input() 这两个函数均能接收 字符串 ,但 raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError 。
除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互。
注意:python3 里 input() 默认接收到的是 str 类型。
函数语法
input([prompt])
参数说明:
- prompt: 提示信息
解决问题:
- input 得到的数据到底是什么类型
- 多个参数接收input的输入,是怎么解包的
- 如果输入的个数不确定,怎么处理
- 要判断输入的是不是float 类型
- 要对输入的参数格式输出,规定参数只能是str或者int 或者float类型
1、例子
# 用户输入
# 提示输入内容
pet = input ('请输入您最喜欢的宠物名称:')
print(pet)
输出结果如下:
请输入您最喜欢的宠物名称:猫咪 猫咪
2、吉祥号码
在python 3 里,一切input的得到的东西,都是str类型(可用type()查看类型)
good_luck_num = input('请输入你的吉祥号码:')
print(type(good_luck_num))
print('您输入的是:'+good_luck_num)
输出结果如下:
请输入你的吉祥号码:9898998 <class 'str'> 您输入的是:9898998
在python2 里 有input 和raw_input
- raw_input 得到的都是str类型
- input 会根据输入数据的类型自动生成类型
我们可以使用 Python 内置函数将字符串转换成想要的类型,比如:
- int(string) 将字符串转换成 int 类型;
- float(string) 将字符串转换成 float 类型;
- bool(string) 将字符串转换成 bool 类型。
3、超市选物
print('---------超市购物系统---------')
print('1.电子产品 2.化妆品 3.生活用品 4.书籍')
# print('请选择您要购买的产品类型:')
product_type = input('请选择您要购买的产品类型:')
# 判断输入的序号
if product_type == '1':
print('电子产品')
elif product_type =='2':
print('化妆品')
elif product_type =='3':
print('生活用品')
elif product_type =='4':
print('书籍')
else:
print('只能输入1~4的数字')
输出结果如下:
---------超市购物系统--------- 1.电子产品 2.化妆品 3.生活用品 4.书籍 请选择您要购买的产品类型:4 书籍
4、小练习
(1)编写一个程序,询问用户最喜欢的IT从业岗位,并输出一条信息,如:“我最喜欢的岗位是Python自动化运维。”
gz = input('您最喜欢的IT从业岗位:')
print('我最喜欢的岗位是'+gz)
输出结果如下:
您最喜欢的IT从业岗位:Python自动化运维 我最喜欢的岗位是Python自动化运维
(2)编写一个程序,询问学生今天的作业完成了吗?如果输入“y”,则输出“今天的作业完成了”;如果输入“no”,则输出“今天的作业还需要一段时间才能完成。”
zy = input('今天的作业完成了吗?:(y/n)')
if zy == 'y':
print('今天的作业完成了')
elif zy == 'n':
print('今天的作业还需要一段时间才能完成')
输出结果如下:
今天的作业完成了吗?:(y/n)y 今天的作业完成了
(3)让用户输入一个三位数,输出这个数是不是回文数。
num = input('输入一个三位数')
num2 = num[::-1]
print(num2)
if num == num2:
print('这是个回文数')
elif num != num2:
print('这是个普通数字')
输出结果如下:
输入一个三位数121 121 这是个回文数
二、Python While 循环语句
Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
while 判断条件(condition):
执行语句(statements)……
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假 false 时,循环结束。
执行流程图如下:
Gif 演示 Python while 语句执行过程
复杂一点:
1、例子:(while循环:如果这件事情是重复性的去做的)
num = 1
while num<10:
print(num,end=" ")
num = num+1
输出结果如下:
1 2 3 4 5 6 7 8 9
2、使用while循环,计算1-100之间偶数之和。
#创建一个变量x初始化为2
x = 2
#创建一个变量sum初始化为0
sum = 0
#使用while循环求出0-100所有偶数的和
while x <= 100 :
sum += x
x += 2
#打印输出求和结果
print(sum)
输出结果如下:
2550
3、编写一个程序,模拟用户登录,验证用户名和密码,最大输入次数为3次,否则锁定用户。
count = 3
users= 'xgp'
password= '123.com'
i = 3
while i > 0 and i < 4:
# 输入提示
user = input('请输入您的用户名:')
passwd = input('请输入您的密码:')
# 判断用户名和密码
if user == users and passwd == password:
print('登陆成功')
break
else:
# 登陆统计次数
i = i - 1
if i == 0:
print('账号锁定')
相比较上面的简单一点 count = 3 while count>0: name = input('请输入用户名:') password = input('请输入密码:') if name == 'xgp' and password == '123.com': print('通过验证,即将登陆......') break else: count = count - 1 print('还剩'+str(count)+"次机会")
输出结果(1):
请输入您的用户名:1 请输入您的密码:1 请输入您的用户名:1 请输入您的密码:1 请输入您的用户名:1 请输入您的密码:1 账号锁定
输出结果(2):
请输入您的用户名:xgp 请输入您的密码:123.com 登陆成功
三、while循环处理列表和字典
for循环是一种遍历列表的有效方式,但在for循环中不应修改列表,否则将导致Python难以跟踪其中的元素。要在遍历列表的同时对其进行修改,可使用while循环。
通过将while循环同列表和字典结合起来使用,可收集、存储并组织大量输出,供以后查看和显示。
1、类似列表复制
users = ['alpha','byta','gima']
users_shadow = []
while users:
current_user = users.pop()
users_shadow.append(current_user)
print(users_shadow)
输出结果如下:
['gima', 'byta', 'alpha']
for循环复制
for i in users:
users_shdow.append(i)
print(users_shadow)
输出结果如下:
['gima', 'byta', 'alpha']
2、删除列表当中的指定元素
users = ['alpha','byta','gima']
print(users)
while 'byta' in users:
users.remove('byta')
print(users)
输出结果如下:
['alpha', 'byta', 'gima'] ['alpha', 'gima']
3、创建一个调查程序,每次循环的时候,提示输入接受调查的名字和回答,将这个收集到的数据存储到一个字典中
# 创建一个空字典
responses = {}
# 设置标志:表示调查是否继续
flag = True
# 循环操作
while flag:
#提示输入接受调查的名字和回答
name = input('请输入您的名字:')
response = input('清输入您的答案:')
# 将答案存储到字典中
responses[name] = response
# 是否还有人需要参加调查
repeat = input('是否还有人需要参加调查:(yes/no)')
if repeat == 'no':
flag = False
# 显示调查结果
print('\n-------------------调查结果-------------------')
for name,response in responses.items():
print(name + ">>>" + response)
输出结果如下:
请输入您的名字:wsd 清输入您的答案:123 是否还有人需要参加调查:(yes/no)yes 请输入您的名字:wushaox 清输入您的答案:x 是否还有人需要参加调查:(yes/no)no -------------------调查结果------------------- wsd>>>123 wushaox>>>x