ravecool
А зачем вы функцию объявили? Без нее же тоже работает. Или для будущего, чтобы можно было вызвать не тратя время на написание этого блока кода?
Если вот это всё взять, скопировать в буфер и вставить в консоль
def f():
s = []
slova = {'один': 'два', 'три': 'четыре', 'пять': 'шесть'}
for x in range(5):
inputWord = input('Введи предложение: ')
s.append(inputWord)
print(s)
for key in slova:
for i in range(len(s)):
s[i] = s[i].replace(key, slova[key])
print(s)
f()
то оно сразу сработает и будет ожидать ввода предложений.
Если же вот это всё взять, скопировать в буфер и вставить в консоль
s = []
slova = {'один': 'два', 'три': 'четыре', 'пять': 'шесть'}
for x in range(5):
inputWord = input('Введи предложение: ')
s.append(inputWord)
print(s)
for key in slova:
for i in range(len(s)):
s[i] = s[i].replace(key, slova[key])
print(s)
то оно на строке ввода предложений начнёт ждать ввода предложений и туда в качестве предложений начнут вводиться следующие строки кода.
Так что придётся для этого создавать файл сначала, потом копировать этот код туда и потом запускать этот файл.
Так что при первом копировании получается
>>> def f():
... s = []
... slova = {'один': 'два', 'три': 'четыре', 'пять': 'шесть'}
...
... for x in range(5):
... inputWord = input('Введи предложение: ')
... s.append(inputWord)
...
... print(s)
...
... for key in slova:
... for i in range(len(s)):
... s[i] = s[i].replace(key, slova[key])
...
... print(s)
...
>>> f()
Введи предложение: один
Введи предложение: два
Введи предложение: три
Введи предложение: четыре
Введи предложение: пять
['один', 'два', 'три', 'четыре', 'пять']
['два', 'два', 'четыре', 'четыре', 'шесть']
>>>
А при втором копировании получается
>>> s = []
>>> slova = {'один': 'два', 'три': 'четыре', 'пять': 'шесть'}
>>>
>>> for x in range(5):
... inputWord = input('Введи предложение: ')
... s.append(inputWord)
...
Введи предложение: print(s)
Введи предложение:
Введи предложение: for key in slova:
Введи предложение: for i in range(len(s)):
Введи предложение: s[i] = s[i].replace(key, slova[key])
>>>
>>> print(s)
['print(s)', '', 'for key in slova:', ' for i in range(len(s)):', ' s[i] = s[i].replace(key, slova[key])']
>>>
То есть для этого кода надо файл создавать, так как просто открыть консоль питона, скопировать этот код в консоль питона и закрыть потом консоль питона без создания файла не получится.
ravecool
Или для будущего, чтобы можно было вызвать не тратя время на написание этого блока кода?
Функция всегда сначала записывается вся, определяется целиком, а вызывается уже после полного определения, когда в определении функции уже записано всё тело функции.
ravecool
Так мне до туда ещё далеко)
Функции придётся всегда делать в итоге, потому что это создаёт пространства имён, которые принадлежат функциям. Локальные пространства имён в функциях дают повторять одни и те же имена во всём коде в целом без пересечений и наложений этих имён друг на друга.
Пример
>>> def f1(x):
... return x * x
...
>>> def f2(x):
... return 2 * x + 1
...
>>> def f3(x):
... return 'Hello ' + x
...
>>> def f4(x):
... s = 0.0
... for i in range(5):
... print(i * x)
... s += i + x
... return s
...
>>> def f5(x):
... x.add(1+2j)
... return x
...
>>> f1(4)
16
>>>
>>> f2(5)
11
>>>
>>> f3('John')
'Hello John'
>>>
>>> f4(123.456)
0.0
123.456
246.912
370.368
493.824
627.28
>>>
>>> f5({1, None, 3})
{1, None, 3, (1+2j)}
>>>
То есть благодаря функциям тебе не нужно сидеть и выдумывать имена для разных ситуаций и операций. Здесь одно и то же имя x используется в разных функциях по-разному и для разных операций.