Как получить пользовательский ввод для нескольких аргументов в функции в Python3

#python

Вопрос:

По сути, я хочу использовать функцию input() для ввода пользователем нескольких аргументов в этой функции и возврата значения

 def object_distance(f,di):

    do = 1/((1/f)-(1/di))

    return do

odistance = input(object_distance())
print("The object distance is: {0:3.1f} cm".format(odistance))
 

Комментарии:

1. Не могли бы вы привести пример ввода-вывода?

Ответ №1:

вы можете вызывать ввод несколько раз.

 f_input = input('Enter f:')
di_input = input('Enter di:')
odistance = object_distance(f_input, di_input)
 

Ответ №2:

Вы можете ввести 2 значения одно за другим. Я также приводил входные данные к int при вызове функции.

 def object_distance(f, di):
    do = 1/((1/f)-(1/di))
    return do
    
f, di = input ('Input 2 values separated by a space').split()
odistance = object_distance(int(f) , int(di))
print("The object distance is: {0:3.1f} cm".format(odistance))
 

Выход

 Input 2 values separated by a space
7 9
The object distance is: 31.5 cm```
 

Ответ №3:

Сначала вы должны получить входные данные, а затем вызвать функцию.

 a1 = input("Enter f: ")
a2 = input("Enter di: ")

# TODO Convert the strings a1 and a2 to values of the appropriate
# type for object_distance.

distance = object_distance(a1, a2)
 

Аргумент to input -это просто строка для отображения в качестве запроса, а не функция (и, конечно, не вызов этой функции), с которой она «работает», чтобы определить, сколько аргументов необходимо.