比较两个三位数
Comparing two three-digits number
我在一个名为 'strike or ball'
的游戏中卡住了
IndexError 出来了。
这有一个非常简单的规则。
如果我输入三个类型为 'str' 的数字,它将与 'random'.
生成的另外三个数字进行比较
- 如果他们只共享一个数字并且放在同一个 space 中。例如 274、286
它只有一个 'strike'
- 即使共享一个数字并且在不同的 space,例如 274、826
它只有一个 'ball'
- 如果最后我正确地输入了三位数字,它会变成“3 击”。
("123", "472") [0, 1]
("742", "472") [1, 2]
("472", "472") [3, 0]
这是一些例子。
这是我的尝试,当然是错误的...
def get_strikes_or_ball(user_input_number, random_number):
a = str(user_input_number)
b = str(random_number)
c = [val for val in a if val in b]
i = 0
strike = 0
ball = 0
while c:
if a[i] == b[i]:
strikes = strikes + 1
elif a[i] == b[i+1]:
ball = ball + 1
elif a[i] == b[e+2]:
ball = ball + 1
result = str('strike : ', strike," ", 'ball : ', ball)
# ==================================
return result
如果我没理解错的话,您想计算 a 中有多少个数字也在 b 中处于相同位置(好球)或另一个位置(球)。如果这是正确的,那么应该这样做:
for i in range(0, 3):
if a[i] in b:
if a[i] == b[i]:
strikes = strikes + 1
else:
balls = balls + 1
我在一个名为 'strike or ball'
的游戏中卡住了IndexError 出来了。
这有一个非常简单的规则。 如果我输入三个类型为 'str' 的数字,它将与 'random'.
生成的另外三个数字进行比较- 如果他们只共享一个数字并且放在同一个 space 中。例如 274、286 它只有一个 'strike'
- 即使共享一个数字并且在不同的 space,例如 274、826 它只有一个 'ball'
- 如果最后我正确地输入了三位数字,它会变成“3 击”。
("123", "472") [0, 1]
("742", "472") [1, 2]
("472", "472") [3, 0]
这是一些例子。
这是我的尝试,当然是错误的...
def get_strikes_or_ball(user_input_number, random_number):
a = str(user_input_number)
b = str(random_number)
c = [val for val in a if val in b]
i = 0
strike = 0
ball = 0
while c:
if a[i] == b[i]:
strikes = strikes + 1
elif a[i] == b[i+1]:
ball = ball + 1
elif a[i] == b[e+2]:
ball = ball + 1
result = str('strike : ', strike," ", 'ball : ', ball)
# ==================================
return result
如果我没理解错的话,您想计算 a 中有多少个数字也在 b 中处于相同位置(好球)或另一个位置(球)。如果这是正确的,那么应该这样做:
for i in range(0, 3):
if a[i] in b:
if a[i] == b[i]:
strikes = strikes + 1
else:
balls = balls + 1