当前位置:   article > 正文

Python: for循环与while循环的适用情况_哪些适合while执行哪些适合for

哪些适合while执行哪些适合for
  • for循环是遍历列表的有效方式,但不应在for循环中修改列表,否则导致Python难以跟踪其中的元素。
  • 使用while循环,在遍历的同时进行修改。while循环+列表+字典--→收集、存储、组织大量输入,供以后查看和显示。

1.在列表之间移动

        假设一个列表包含新注册但还未验证的网站用户,验证后,将他们移至另一列表。

  1. #首先,创建一个待验证用户列表和一个存储已验证用户的空列表。
  2. unconfirmed_users = ['alice', 'brian', 'candace']
  3. confirmed_users = []
  4. #验证每个用户直到没有未验证用户为止。
  5. # 并将经过验证的用户移至已验证用户列表中。
  6. while unconfirmed_users:
  7. currents_user = unconfirmed_users.pop()
  8. print(f"Verfying user:{currents_user.title()}")
  9. confirmed_users.append(currents_user)
  10. #显示所有已验证用户
  11. print("\nThe following users have been confirmed.:")
  12. for confirmed_user in confirmed_users:
  13. print(confirmed_user.title())

  •         pop方法以每次一个的方式从列表末尾删除元素。
  •         append的用法:元素作为方法的参数传递过去的(中间变量不可少)。删除为特定值的列表元素

2.删除列表中特定值

  1. pets = ['dog', 'cat', 'goldfish', 'rabbit', 'dog', 'cat', 'cat']
  2. print(pets)
  3. while 'cat' in pets:
  4. pets.remove('cat')
  5. print(pets)

 

  •        方法remove一次只能删一个特定元素。

        在这里产生的一个疑惑:方法里有参数吗?于是,搜了搜方法与函数的区别。函数是在C中就有的,方法可能是C++里面和类关联起来才有的?简单理解是:函数是独立的,方法需要依附对象。函数和方法的区别_我_是好人的博客-CSDN博客_函数和方法icon-default.png?t=M3K6https://blog.csdn.net/qq_34952846/article/details/78943800

3.使用用户输入来填充字典

  1. #创建一个空字典
  2. responses = {}
  3. #设置一个标志,指出调查是否继续
  4. polling_active = True
  5. while polling_active:
  6. #提示输入被调查者名字和回答
  7. name = input("/nWhat's your name? ")
  8. response = input("Which mountain would you like to climb? ")
  9. #将答案存储在字典中
  10. responses[name] = response
  11. #看看是否还有人要参与
  12. repeat = input("Would you like to let others respond? (Y/N)")
  13. if repeat == 'N':
  14. polling_active = False
  15. #调查结束,显示结果
  16. print("\n---Poll Results---")
  17. for name, response in responses.item():
  18. print(f"{name} would like to climb {response}")

       

  •         此字典的键对值 

4. 课后练习

  1. #7-8 熟食店
  2. sandwish_orders = ['fish-sandwish', 'beef-sandwish', 'chicken-sandwish']
  3. finished_sandwishes = []
  4. while sandwish_orders:
  5. current_sandwish = sandwish_orders.pop()
  6. print(f"{current_sandwish},I made your tuna sandwish.")
  7. finished_sandwishes.append(current_sandwish)
  8. print("\nAll the sandwish were made: ")
  9. print(finished_sandwishes)
  10. #7-9 五香烟熏肉卖完了
  11. sandwish_orders = ['pastrami', 'fish-sandwish', 'pastrami', 'beef-sandwish', 'pastrami', 'chicken-sandwish', 'beef-sandwish', 'chicken-sandwish']
  12. print("\npastrami sold out")
  13. while 'pastrami' in sandwish_orders:
  14. sandwish_orders.remove('pastrami')
  15. print(sandwish_orders)
  16. #7-10 梦想的度假胜地
  17. vacationlands = {}
  18. flag = True
  19. while flag:
  20. name = input("What's your name? ")
  21. place = input("Where would you want to go? ")
  22. vacationlands[name] = place
  23. flag = input("would you want to continue? (True/False)\n")
  24. print(f"\n{name} would like to {place}")

 

        这里由于当时没设置制表符,显得有点“拥挤”。最后地方输入“False”却不能成功退出程序,是因为上一篇里说过的input()函数de原因。 修改如下:

  1. temp = input("would you want to continue? (Y/N)")
  2. if temp == 'N':
  3. flag = False

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/693408
推荐阅读
相关标签
  

闽ICP备14008679号