python - 如何在 while 循环下获得选择函数以返回不同的结果
问题描述
我有这段代码可以正常工作,但有一个小问题。第一个选择函数运行良好,并在问题中返回一个随机状态。如果答案是肯定的,它可以正常工作并打印我想要的内容。但是当答案是否定的时候,我希望这个问题带有一个不同的州名。但是第二个选择函数,在 while 循环下,返回与第一个问题相同的状态。我认为另一种选择的用法会返回另一个随机状态名称,但显然并非如此。
这是代码:
from random import choice
states = {
'AK': 'Alaska',
'AL': 'Alabama',
'AR': 'Arkansas',
'AS': 'American Samoa',
'AZ': 'Arizona',
'CA': 'California',
'CO': 'Colorado',
'CT': 'Connecticut',
'DC': 'District of Columbia',
'DE': 'Delaware',
'FL': 'Florida',
'GA': 'Georgia',
'GU': 'Guam',
'HI': 'Hawaii',
'IA': 'Iowa',
'ID': 'Idaho',
'IL': 'Illinois',
'IN': 'Indiana',
'KS': 'Kansas',
'KY': 'Kentucky',
'LA': 'Louisiana',
'MD': 'Maryland',
'MA': 'Massachusetts',
'ME': 'Maine',
'MI': 'Michigan',
'MN': 'Minnesota',
'MO': 'Missouri',
'MP': 'Northern Mariana Islands',
'MS': 'Mississippi',
'MT': 'Montana',
'NA': 'National',
'NC': 'North Carolina',
'ND': 'North Dakota',
'NE': 'Nebraska',
'NH': 'New Hampshire',
'NJ': 'New Jersey',
'NM': 'New Mexico',
'NV': 'Nevada',
'NY': 'New York',
'OH': 'Ohio',
'OK': 'Oklahoma',
'OR': 'Oregon',
'PA': 'Pennsylvania',
'PR': 'Puerto Rico',
'RI': 'Rhode Island',
'SC': 'South Carolina',
'SD': 'South Dakota',
'TN': 'Tennessee',
'TX': 'Texas',
'UT': 'Utah',
'VA': 'Virginia',
'VI': 'Virgin Islands',
'VT': 'Vermont',
'WA': 'Washington',
'WI': 'Wisconsin',
'WV': 'West Virginia',
'WY': 'Wyoming'
}
state_list = list(states.values())
choice = choice(state_list)
question = "Would you like to move to {}?: ".format(choice)
answer = input(question).strip().lower()
while answer!= "yes":
question = "Okay. How about {}?: ".format(choice)
answer = input(question).strip().lower()
print("Sounds good! Let's go there!")
解决方案
不要忘记在每次迭代中更改选择变量,否则每次循环都会选择相同的状态。尝试这个:
while answer!= "yes":
choice = choice(state_list)
question = "Okay. How about {}?: ".format(choice)
answer = input(question).strip().lower()
你应该用不是函数名的东西重命名你的选择变量,它应该可以工作
推荐阅读
- rxjs - Rxjs distinctUntilChanged 与计时器
- java - 在 Spring Boot 中定义重要凭据的最佳方法
- sql - SQL 服务器中的正则表达式,使用字符的位置
- python-3.x - Python - KeyError(key) 被提出,但它不应该
- python - Python 在不打开终端的情况下执行 Shell 命令
- ruby-on-rails - Ruby on Rails:查询 rails 模型以获取浮点属性的特定精度
- php - sql请求在函数内部时出现致命错误
- mongodb - Spring data - mongoDB - 获取所有包含 agentNumberContainers 的联系人
- php - PDO插入查询不起作用PHP
- android - 如何在 Android Studio 中为某个项目禁用 NDK