#python
#python
Вопрос:
newWord = print(input('Enter a word: '))
myList = ["apple", "mango"]
def ifWordAlreadyExists(str):
for x in myList:
if x == str:
index = index(x)
query = print(input('Word ', x ,'is already in index ', index , 'are you sure you want to include it? '))
if query == 'y':
return str
else:
return 0
myList.append(ifWordAlreadyExists(newWord))
print(myList)
Вывод
Enter a word: apple
apple
['apple', 'mango', None]
Почему запрос не отображается, а новое слово не добавляется в myList?
PS. Я новичок в Python, поэтому был бы признателен, если бы кто-нибудь указал, что я делаю неправильно :))
Комментарии:
1. Вы должны изменить имя своей переменной на str, так как это буквально строковая функция. Например.
str(1)
возвращает строку"1"
2. Что вы ожидали
x == str
сделать? Кроме того, что такоеindex
? он не определен, и вы его вызываете. Функция добавляетсяNone
, потому чтоreturn
оператор не достигнут3. @Countour-Integral я хочу сравнить newWord с x и, если они равны, показать запрос
4. печать возвращает тип None
Ответ №1:
В основном print()
возвращает None
, и вам не нужно размещать input()
метод, print()
потому input()
что он также может выводить что-то на экран, но принимать ввод. Вы можете изменить код на:
myList = ["apple", "mango"]
newWord = input('Enter a word: ')
check = newWord in myList
if not check:
myList.append(newWord)
else:
print('Word', newWord ,'is already on the list are you sure you want to include it?', end=" ")
query = input().lower().startswith('y')
if query:
myList.append(newWord)
print(myList)
Вывод
Enter a word: apple
Word apple is already on the list are you sure you want to include it? yes
['apple', 'mango', 'apple']
Комментарии:
1. Вы неправильно поняли свое условие, вам следует сразу добавить слово, если
newWord not in myList
Ответ №2:
Функция print не возвращает никаких значений
Если вы хотите распечатать введенное значение, вы должны использовать print в нижней строке.
newWord = input("Word:")
print(newWord) #like this
myList = ["apple", "mango"]
def ifWordAlreadyExists(str):
for x in myList:
if x == str:
index = myList.index(x)
query = input("Word {0} is already in index {1} are you sure you want to include it:".format(str,index))
if query == 'y':
return str
else:
return 0
myList.append(ifWordAlreadyExists(newWord))
print(myList)
Ответ №3:
newWord
None
если вы используете newWord = print(input('Enter a word: '))
, так и должно быть newWord = input('Enter a word: ')
. Кроме того, вам не нужно использовать цикл for внутри функции, метод index
списка python может решить его напрямую, например
newWord = input('Enter a word: ')
myList = ["apple", "mango"]
def ifWordAlreadyExists(to_check):
try:
idx = myList.index(to_check)
query = input('%s is already in the list, are you sure you want to include it? ' % to_check)
if query == 'y': return to_check
return 0
except ValueError:
return to_check
myList.append(ifWordAlreadyExists(newWord))
print(myList)