Форум сайта python.su
Я новичок в программировании и python мой первый язык (версия 2.7) учусь я по книге Зед.А.Шоу “Легкий способ выучить python”
В книге встретилось задания создания расширенного пользовательского ввода. Я экспериментировал с кортежами и словарями, в результате чего зашел в тупик. Дело в том, что я хочу понять как проверить, то входят ли данные введенные пользователям в значения словаря. Вот мой не большой код.
slovarchik={“nap”'North','south','east','west','down','up','left','right','back'), “verbs”
'Go,stop','kill','eat'),“stopk”
'The', ‘in’,'of','from','at','it'), “suh”
'Door','bear','princess','cabinet'),“chisla”
0,1,2,3,4,5,6,7,8,9)}
first_word'nap','North')
second_word'verbs','go')
sentence=
stuff=raw_input('>')
words=stuff.split()
if stuff in slovarchik.values():
print stuff
Прикреплённый файлы: korablick.py (449 байт)
Офлайн
Я хз почему, но мой код данный сайт почему-то решил заклеить смайликами. Поэтому я прикрепил файл с кодом.
Офлайн
Это ваш код - (не “хз почему”, а потому, что при вводе надо использовать соответствующие теги)
# -*- coding: utf-8 -*- slovarchik={"nap":('North','south','east','west','down','up','left','right','back'), "verbs":('Go,stop','kill','eat'),"stopk":('The', 'in','of','from','at','it'), "suh":('Door','bear','princess','cabinet'),"chisla":(0,1,2,3,4,5,6,7,8,9)} first_word=('nap','North') second_word=('verbs','go') sentence=[first_word,second_word] stuff=raw_input('>') words=stuff.split() if stuff in slovarchik.values(): print stuff
Отредактировано passant (Март 29, 2018 11:28:59)
Офлайн
# -*- coding: utf-8 -*- slovarchik={"nap":('North','south','east','west','down','up','left','right','back'), "verbs":('Go','stop','kill','eat'),"stopk":('The', 'in','of','from','at','it'), "suh":('Door','bear','princess','cabinet'),"chisla":(0,1,2,3,4,5,6,7,8,9)} first_word=('nap','North') second_word=('verbs','Go') three_word=('stopk','in') four_word=('nap','south') five_word=('nap','east') six_word=('nap','west') seven_word=('nap','down') eight_word=('nap','up') nine_word=('nap','left') ten_word=('nap','right') eleven_word=('nap','back') twelve_word=('verbs','stop') threeteen_word=('verbs','kill') fourteen_word=('verbs','eat') fivteen_word=('stopk','The') seventeen_word=('stopk','of') eigtteen_word=('stopk','from') nineteen_word=('stopk','at') twenty_word=('stopk','it') twenty_one_word=('suh','Door') twenty_two_word=('suh','bear') twenty_three_word=('suh','princess') twenty_four_word=('suh','cabinet') sentence=[first_word,second_word] listik=[] def opening(): stuff=raw_input('>') words=stuff.split() listik2=[words] if 'North' or 'south' or 'east' or 'west' or 'down' or 'up' or 'left' or 'right' or 'back' in words: if 'North'in words: listik.append(first_word) listik[words.index('North')]=first_word elif 'south' in words: listik.append(four_word) listik[words.index('south')]=four_word elif 'east' in words: listik.append(five_word) listik[words.index('east')]=five_word elif 'west' in words: listik.append(six_word) listik[words.index('west')]=six_word elif 'down' in words: listik.append(seven_word) listik[words.index('down')]=seven_word elif 'up' in words: listik.append(eight_word) listik[words.index('up')]=eight_word elif 'left' in words: listik.append(nine_word) listik[words.index('left')]=nine_word elif 'right' in words: listik.append(ten_word) listik[words.index('right')]=ten_word elif 'back' in words: listik.append(eleven_word) listik[words.index('back')]=eleven_word return listik
Офлайн
Я хочу сделать так что бы данная функция возвращала список с кортежами даже в том случае если введено несколько слов подходящих под условия.То есть, что-бы даже если одно из условий уже было выполнено остальные тоже рассматривались. В голове есть идея как это реализовать, но боюсь она займет около 500 строк.(я подумывал вложить эти же условия в условия.И да это плохая идея, я это понимаю, но пока ничего лучше не придумал)
Офлайн