为什么 gcode == code 或 code1 或 code2 或 code3 不能在任何地方工作?
Why wouldn't gcode == code or code1 or code2 or code3 work anywhere?
这是计算机科学的作业class。有没有办法让它工作,或者更有效地做到这一点?该程序的目标是让用户猜测所有四个数字(不必按顺序),告诉他们是否正确并显示尝试次数。赋值要求至少包含一个带参数的函数和一个列表。
import random
# Sets tries and isCorrect to 0- not broken
tries = 0
isCorrect = 0
# Generates 4 random numbers- not broken
for i in range(4):
code = random.randint(1, 9)
code1 = random.randint(1, 9)
code2 = random.randint(1, 9)
code3 = random.randint(1, 9)
# Prints the random numbers for now- not broken
print(code)
print(code1)
print(code2)
print(code3)
# Guess = If the guess variables are equal to the code it tells you you're right
def guess(a, b, c, d):
global isCorrect
if a == code or code1 or code2 or code3 and b == code or code1 or code2 or code3 and c == code or code1 or code2 or code3 and d == code or code1 or code2 or code3:
print("You got it correct!")
else:
print("You got it wrong.")
return(a, b, c, d)
# While isCorrect is still 0 it prompts you to guess again, if it's correct it sets isCorrect to one
while isCorrect == 0:
gcode = int(input("Input your first guess: "))
gcode1 = int(input("Input your second guess: "))
gcode2 = int(input("Input your third guess: "))
gcode3 = int(input("Input your fourth guess: "))
guess(gcode, gcode1, gcode2, gcode3)
tries = tries + 1
#print("You got it wrong.")
if gcode == code or code1 or code2 or code3 and gcode1 == code or code1 or code2 or code3 and gcode2 == code or code1 or code2 or code3 and gcode3 == code or code1 or code2 or code3:
isCorrect = 1
# Makes it so the plural matches amount of tries
if tries != 1:
print("It took you", tries, "tries.")
else:
print("It took you", tries, "try.")
你的if语句是错误的。这不是在 python 中使用 or
的方式。
这是正确的方法:
if gcode == code or gcode == code1 or gcode == code2 or gcode == code3 and ...
按照你写的方式,它以 code1(或 code2、3、..)作为表达式并检查它们是否为真。这不是你想要的。
当然,这是一种混乱的编码方式。一个更好的方法是将代码放在一个列表中,将 gcode 放在另一个列表中,然后在 for 循环中检查它们。
我想你必须马上交作业所以我的帮助:-)我还添加了列表的使用。
这是工作代码,但请仔细检查。
import random
# Sets tries and isCorrect to 0- not broken
tries = 0
isFalse = True # use boolean variable to make it more clear - 0 would be an integer
# Create a list in which you store the 4 random values
# Initialize the empty list, so it is defined in the for loop
random_values_list = []
# Generates 4 random numbers- not broken
for i in range(4):
# append 4 times a random value to the list
random_values_list.append(random.randint(1, 9))
# sort the list here is important, later we check the sorted input against this list
random_values_list.sort()
# Prints the random numbers
print(random_values_list)
# Guess = If the guess variables are equal to the code it tells you you're right
def check_guess(input_guesses_list, random_values_list):
print(input_guesses_list)
print(random_values_list)
# now you can simply check if the lists are the same
if input_guesses_list == random_values_list:
print("You got it correct!")
# return false to break the while loop, because the user got it right
return False
else:
print("You got it wrong.")
# return true to keep the while loop alive
return True
# Save the inputs also in a list
input_guesses_list = []
# While isCorrect is still 0 it prompts you to guess again, if it's correct it sets isCorrect to one
while isFalse:
input_guesses_list.append(int(input("Input your first guess: ")))
input_guesses_list.append(int(input("Input your second guess: ")))
input_guesses_list.append(int(input("Input your third guess: ")))
input_guesses_list.append(int(input("Input your fourth guess: ")))
# also sort this list
input_guesses_list.sort()
isFalse = check_guess(input_guesses_list, random_values_list)
tries += 1
# important: reset the list with the guesses!
input_guesses_list = []
# Makes it so the plural matches amount of tries
if tries != 1:
print("It took you", tries, "tries.")
else:
print("It took you", tries, "try.")
这是计算机科学的作业class。有没有办法让它工作,或者更有效地做到这一点?该程序的目标是让用户猜测所有四个数字(不必按顺序),告诉他们是否正确并显示尝试次数。赋值要求至少包含一个带参数的函数和一个列表。
import random
# Sets tries and isCorrect to 0- not broken
tries = 0
isCorrect = 0
# Generates 4 random numbers- not broken
for i in range(4):
code = random.randint(1, 9)
code1 = random.randint(1, 9)
code2 = random.randint(1, 9)
code3 = random.randint(1, 9)
# Prints the random numbers for now- not broken
print(code)
print(code1)
print(code2)
print(code3)
# Guess = If the guess variables are equal to the code it tells you you're right
def guess(a, b, c, d):
global isCorrect
if a == code or code1 or code2 or code3 and b == code or code1 or code2 or code3 and c == code or code1 or code2 or code3 and d == code or code1 or code2 or code3:
print("You got it correct!")
else:
print("You got it wrong.")
return(a, b, c, d)
# While isCorrect is still 0 it prompts you to guess again, if it's correct it sets isCorrect to one
while isCorrect == 0:
gcode = int(input("Input your first guess: "))
gcode1 = int(input("Input your second guess: "))
gcode2 = int(input("Input your third guess: "))
gcode3 = int(input("Input your fourth guess: "))
guess(gcode, gcode1, gcode2, gcode3)
tries = tries + 1
#print("You got it wrong.")
if gcode == code or code1 or code2 or code3 and gcode1 == code or code1 or code2 or code3 and gcode2 == code or code1 or code2 or code3 and gcode3 == code or code1 or code2 or code3:
isCorrect = 1
# Makes it so the plural matches amount of tries
if tries != 1:
print("It took you", tries, "tries.")
else:
print("It took you", tries, "try.")
你的if语句是错误的。这不是在 python 中使用 or
的方式。
这是正确的方法:
if gcode == code or gcode == code1 or gcode == code2 or gcode == code3 and ...
按照你写的方式,它以 code1(或 code2、3、..)作为表达式并检查它们是否为真。这不是你想要的。
当然,这是一种混乱的编码方式。一个更好的方法是将代码放在一个列表中,将 gcode 放在另一个列表中,然后在 for 循环中检查它们。
我想你必须马上交作业所以我的帮助:-)我还添加了列表的使用。
这是工作代码,但请仔细检查。
import random
# Sets tries and isCorrect to 0- not broken
tries = 0
isFalse = True # use boolean variable to make it more clear - 0 would be an integer
# Create a list in which you store the 4 random values
# Initialize the empty list, so it is defined in the for loop
random_values_list = []
# Generates 4 random numbers- not broken
for i in range(4):
# append 4 times a random value to the list
random_values_list.append(random.randint(1, 9))
# sort the list here is important, later we check the sorted input against this list
random_values_list.sort()
# Prints the random numbers
print(random_values_list)
# Guess = If the guess variables are equal to the code it tells you you're right
def check_guess(input_guesses_list, random_values_list):
print(input_guesses_list)
print(random_values_list)
# now you can simply check if the lists are the same
if input_guesses_list == random_values_list:
print("You got it correct!")
# return false to break the while loop, because the user got it right
return False
else:
print("You got it wrong.")
# return true to keep the while loop alive
return True
# Save the inputs also in a list
input_guesses_list = []
# While isCorrect is still 0 it prompts you to guess again, if it's correct it sets isCorrect to one
while isFalse:
input_guesses_list.append(int(input("Input your first guess: ")))
input_guesses_list.append(int(input("Input your second guess: ")))
input_guesses_list.append(int(input("Input your third guess: ")))
input_guesses_list.append(int(input("Input your fourth guess: ")))
# also sort this list
input_guesses_list.sort()
isFalse = check_guess(input_guesses_list, random_values_list)
tries += 1
# important: reset the list with the guesses!
input_guesses_list = []
# Makes it so the plural matches amount of tries
if tries != 1:
print("It took you", tries, "tries.")
else:
print("It took you", tries, "try.")