1, В своем коде в этой части в условии 'if' вы сравниваете строку с целым числом, чтобы условие стало ложным и не учитывалось 'NumberOfA'
for x in args:
if x == int(A):
NumberOfA += 1
for y in args:
if y == int(B):
NumberOfB += 1
listAB=[NumberOfA, NumberOfB]
вывод:
Enter the value of N A B with white space in between 1 1 1
Enter the values on the faces of the cube seperated by commas 1,1,1,1,1
[0, 0]
The probability of the chef winning is 0.0
>>>
2, вы передаете одну строку в качестве ввода для * args , чтобы передать несколько аргументов, вы должны преобразовать ввод в виде списка lvar = var.split (',') , а затем, используя * lvar в вызове функции {NA, NB = input_for_faces (* lvar)}, передаст несколько аргументов один за другим изсписок
s = вход («Введите значение NAB с пробелом между ними») N, A, B = список (s.split ())
def input_for_faces(*args):
NumberOfA=0
NumberOfB=0
for x in args:
if x == A:
NumberOfA += 1
for y in args:
if y == B:
NumberOfB += 1
listAB=[NumberOfA, NumberOfB]
return listAB
# ***
var=input("Enter the values on the faces of the cube seperated by commas ")
lvar=var.split(',')
NA, NB=input_for_faces(*lvar)
print(input_for_faces(*lvar))
# ***
print("The probability of the chef winning is "+str((int(NA)/int(N)*(int(NB)/int(N)))))
вывод:
Enter the value of N A B with white space in between 1 1 1
Enter the values on the faces of the cube seperated by commas 1,1,1,1,1
[5, 5]
The probability of the chef winning is 25.0