Python 为什么我的程序不运行秒循环?

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

我试着做一场包括击球和球的棒球比赛。 例如,如果随机数为“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_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