python的input和while使用

python的input和while循环_第1张图片

一、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 时,循环结束。

执行流程图如下:

python的input和while循环_第2张图片

Gif 演示 Python while 语句执行过程

python的input和while循环_第3张图片

复杂一点:

python的input和while循环_第4张图片

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