Python 如何修复基于随机数生成器不重复的if语句
我正在做一个问答游戏,在询问首都城市和国家之间交替进行。它们应该随机交替,因此我使用随机数生成器,但是if语句不会根据随机数生成器的输出重复。(我对编码相当陌生,如果这太长,很抱歉) 代码如下:Python 如何修复基于随机数生成器不重复的if语句,python,python-3.x,Python,Python 3.x,我正在做一个问答游戏,在询问首都城市和国家之间交替进行。它们应该随机交替,因此我使用随机数生成器,但是if语句不会根据随机数生成器的输出重复。(我对编码相当陌生,如果这太长,很抱歉) 代码如下: import random from random import randrange quest_one = int(input('How many questions? ')) for i in range(quest_one): number = (randrange(2)) Co
import random
from random import randrange
quest_one = int(input('How many questions? '))
for i in range(quest_one):
number = (randrange(2))
Country_main = {
"Australia" : 'Canberra',
'india' : 'New Delhi',
'France' : 'Paris',
'Japan' : 'Tokyo',
'China': 'Beijing',
'USA': 'Washington',
'England': 'London',
'Russia': 'Moscow',
'Germany': 'Berlin',
'Brazil': 'Brasilia',
'Bangladesh': 'Dhaka'
}
Capital_main = {
'Canberra': 'Australia',
'New Delhi': 'India',
'Paris': 'France',
'Tokyo': 'Japan',
'Beijing': 'China',
'Washington': 'USA',
'London': 'England',
'Moscow': 'Russia',
'Berlin': 'Germany',
'Brasilia': 'Brazil',
'Dhaka': 'Bangladesh'
}
def Capital_of():
rando = random.choice(list(Country_main.items()))
ans = input("What is the capital city of " + rando[0] + '? ')
if rando[1] in ans:
print('correct')
#Change to add value to score later
elif rando[1] not in ans:
print('wrong')
return
def Country_of():
randy = random.choice(list(Capital_main.items()))
ansy = input("Which country has the capital city " + randy[0] + '? ')
if randy[1] in ansy:
print('correct')
# Change to add value to score later
elif randy[1] not in ansy:
print('wrong')
return
if number == 1:
Capital_of()
if number == 0:
Country_of()
问题在于代码的结构方式。您的
for
循环应该是询问指定数量问题的主循环
按照现在的设置方式,for循环将生成x
数量的随机数,然后退出循环并运行程序的其余部分
# current program
for i in range(quest_one):
number = (randrange(2))
#
# more code
#
if number == 1:
Capital_of()
if number == 0:
Country_of()
您的if
语句需要嵌套在for
循环中,以便不断提问
我重新格式化了代码,因此if
语句嵌套在for
循环中。试试这个:
import random
from random import randrange
Country_main = {
"Australia" : 'Canberra',
'india' : 'New Delhi',
'France' : 'Paris',
'Japan' : 'Tokyo',
'China': 'Beijing',
'USA': 'Washington',
'England': 'London',
'Russia': 'Moscow',
'Germany': 'Berlin',
'Brazil': 'Brasilia',
'Bangladesh': 'Dhaka'
}
Capital_main = {
'Canberra': 'Australia',
'New Delhi': 'India',
'Paris': 'France',
'Tokyo': 'Japan',
'Beijing': 'China',
'Washington': 'USA',
'London': 'England',
'Moscow': 'Russia',
'Berlin': 'Germany',
'Brasilia': 'Brazil',
'Dhaka': 'Bangladesh'
}
def main():
num_questions = int(input('How many questions? '))
for i in range(num_questions):
number = (randrange(2))
if number == 1:
capital_of()
else:
country_of()
def capital_of():
rando = random.choice(list(Country_main.items()))
ans = input("What is the capital city of " + rando[0] + '? ')
if rando[1] in ans:
print('correct')
#Change to add value to score later
elif rando[1] not in ans:
print('wrong')
return
def country_of():
randy = random.choice(list(Capital_main.items()))
ansy = input("Which country has the capital city " + randy[0] + '? ')
if randy[1] in ansy:
print('correct')
# Change to add value to score later
elif randy[1] not in ansy:
print('wrong')
return
if __name__ == '__main__':
main()