Python 为什么我的程序不运行秒循环?
我试着做一场包括击球和球的棒球比赛。 例如,如果随机数为“835”,用户输入数为“853”,则击数应为1,球数应为2。 此功能仅用于计算击数和球数。 但程序不会运行第二个for循环来计算球数。 所以我不会数球Python 为什么我的程序不运行秒循环?,python,for-loop,Python,For Loop,我试着做一场包括击球和球的棒球比赛。 例如,如果随机数为“835”,用户输入数为“853”,则击数应为1,球数应为2。 此功能仅用于计算击数和球数。 但程序不会运行第二个for循环来计算球数。 所以我不会数球 def get_strikes_or_ball(user_input_number, random_number): random_number_list = list(random_number) print("random_number_list: ", random
def get_strikes_or_ball(user_input_number, random_number):
random_number_list = list(random_number)
print("random_number_list: ", random_number_list)
user_input_number_list = list(user_input_number)
print("user_input_number_list: ", user_input_number_list)
strike_count = 0
for i in range(0, 3):
print("first for")
if random_number_list[i] == user_input_number_list[i]:
strike_count += 1
print("start")
ball_count = 0
for i in range(2, -1):
print("second for")
for k in range(1, 3):
if random_number_list[i] == user_input_number_list[i-k]:
ball_count += 1
print("st, ball: ", strike_count, ball_count)
result = [strike_count, ball_count]
# ==================================
return result
范围
范围(2,-1)
为空。如果您想获得反转范围[-1,2)
可以使用反转(范围(-1,2))
Python的range函数接受3个参数,其中两个是可选的。Start、stop和step。Start和step是可选的。Start的默认值是0,step的默认值是1。如果您想向负方向单步执行,则需要为step传递-1。将范围(2,-1)
替换为范围(2,-1,-1)
应该可以解决您的问题,这将比使用reversed()函数更有效。在for循环参数中,python中有三个参数(start、stop(排除的数字)、step)必须强制定义循环中的停止,如果您不指定它,它将获得第三个参数作为第二个参数,如果您必须递减循环的值,那么您必须将步骤设置为-1,它每次递减为值-1
def get_strikes_or_ball(user_input_number, random_number):
random_number_list = list(random_number)
print("random_number_list: ", random_number_list)
user_input_number_list = list(user_input_number)
print("user_input_number_list: ", user_input_number_list)
strike_count = 0
for i in range(0, 3):
print("first for")
if random_number_list[i] == user_input_number_list[i]:
strike_count += 1
print("start")
ball_count = 0
for i in range(2, -1,-1):
print("second for")
for k in range(1, 3):
if random_number_list[i] == user_input_number_list[i-k]:
ball_count += 1
print("st, ball: ", strike_count, ball_count)
result = [strike_count, ball_count]
# ==================================
return result
尝试打印
[x代表范围(2,-1)中的x]
您也可以使用代表范围(2,-1,-1)中的i