python基础_013__用户输入和while循环

 

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


# for循环适合遍历列表,是最有效的方式
# while循环适合修改列表数据,可以用来收集,存储并组织大量输入
# 在while使用标志比较合适
# break 退出循环不往下执行continue 继续执行循环


2、使用input()和while做一个问卷调查

# input()代码只能出现在控制台执行,不能通过编译打包的这点需要注意

# 2.1 使用列表存储单一的回答  & input()和while


likes = []  # 定义一个列表存大家人喜欢的菜
active = True  # 定一个变量作为标志来判断要不要结束循环
while active:
    like = input("请问你喜欢吃什么菜?如果想退出问卷调查请输入:quit")
    if like != "quit":
        likes.append(like)
    else:
        active = False  # 标志为False表示不继续循环, 这里可以用break是一样的效果
print(f"大家喜欢的菜是{likes}")


# 2.1输出结果:
# 请问你喜欢吃什么菜?如果想退出问卷调查请输入:quit辣椒炒肉
# 请问你喜欢吃什么菜?如果想退出问卷调查请输入:quit西红柿鸡蛋
# 请问你喜欢吃什么菜?如果想退出问卷调查请输入:quitquit
# 大家喜欢的菜是['辣椒炒肉', '西红柿鸡蛋']

# 2.2 使用字典存储多回答 & input()和while


# 如果问卷调查有多个选项可以用字典存储然后依次添加到列表中去,有时候我们要举一反三灵活使用字典,列表,循环等

likess = {}  # 定义一个字典存回答问题同学的名字,和他喜欢吃的菜
while True:
    name = input("请问你叫什么名字")
    vegetable = input("请问你喜欢吃什么菜?")
    likess[name] = vegetable
    repeat = input("请问是否继续问卷调查请输入:是/否")
    if repeat == "是":
        continue
    elif repeat == "否":
        break
    else:
        print("输入的选项错误,默认继续问卷调查")
        continue

for name, like in likess.items():
    print(f"{name} 同学喜欢吃 {like}")

# 2.2输出结果:
# 请问你叫什么名字刘艳
# 请问你喜欢吃什么菜?苦瓜
# 请问是否继续问卷调查请输入:是/否是
# 请问你叫什么名字张三
# 请问你喜欢吃什么菜?皮蛋抖辣椒
# 请问是否继续问卷调查请输入:是/否哈哈哈
# 输入的选项错误,默认继续问卷调查
# 请问你叫什么名字德宇
# 请问你喜欢吃什么菜?蛋啵啵和肉肉
# 请问是否继续问卷调查请输入:是/否否
# 刘艳 同学喜欢吃 苦瓜
# 张三 同学喜欢吃 皮蛋抖辣椒
# 德宇 同学喜欢吃 蛋啵啵和肉肉

3、在列表之间移动元素


# while 列表: while是可以对列表进行循环的,数据循环完后回退出循环


# 题目:有一个列表包含新注册但还没有实名制的网站用户,这些用户完成实名制后将他们移到已实名制的列表中

# 定义一个未实名制的用户列表
unconfirmed_user = ["刘艳", "张三", "李四", "王五"]
# 定义一个已近实名制的用户列表
Real_name_system = []

while unconfirmed_user:
    user = unconfirmed_user.pop()  # 删除列表的最后一位,并返回给变量user
    print(f"{user} 用户已经完成实名")
    Real_name_system.append(user)  # 添加到已经实名制的列表中
# 输出结果:
# 王五 用户已经完成实名
# 李四 用户已经完成实名
# 张三 用户已经完成实名
# 刘艳 用户已经完成实名

print(f"显示所有已近完成实名制的用户清单:{Real_name_system}")
# 输出结果:显示所有已近完成实名制的用户清单:['王五', '李四', '张三', '刘艳']


3、删除为特定值的所有列表元素

# 题目:有一个宠物列表,想删除为cat的元素
pets = ["dog", "cat", "dog", "cat", "goldfish", "cats"]

# 判断 cat 在不在 pets这个列表中,如果在返回 :True 继续循环,不在返回False退出循环

while "cat" in pets:  
    pets.remove("cat")  # 删除第一次出现的值

print(pets)
# 输出结果:['dog', 'dog', 'goldfish', 'cats']
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值