2015-10-16 3 views
-7

Например, если я хочу, чтобы иметь вход строки, как «утка», и мне нужно функцию прописать:Как заставить функцию работать без параметров?

d
у
с
к

, но без параметров - как это сделать?

def spell(): 
    '''Returns every character in a word or phrase''' 
    print(input('Enter a word: ')) 
    for n in range(len(n)): 
     print(n) 

Я пытался сделать вышеприведенный код будет работать, но у меня были проблемы, потому что все, что я пытался запрос сообщение об ошибке, что должен был сделать с переменными быть неопределенным. Как мне изменить код?

+0

'для п в RAN ge (len (raw_input ('Enter a word:'))) ' –

+0

@zero Добавление тега python-3.x было хорошим, но вам не нужно было добавлять строку« Я сейчас использую Python 3 ». Сам тег достаточно. – skrrgwasme

ответ

1

Вы делали что-то не так.

def spell(): 
    '''Returns every character in a word or phrase''' 
    word = raw_input('Enter a word: ') 
    for i in word: 
     print(i) 

Если вы используете Python3, вам придется изменить raw_input к input, поскольку input не существует в Python3 и работает как raw_input.

+0

Он/она использует python 3, ваш код не будет работать. –

+0

Откуда вы знаете, что это Python 3? :) – rofls

+0

На самом деле «но у меня были проблемы, потому что все, что я попробовал, вызвало сообщение об ошибке, которое связано с неопределенными переменными» напоминает мне об ошибке, возникающей при использовании 'input', без цитирования ваших строк в Python2;) – rofls

2

Другой метод, использующий str.join -

def spell(): 
    '''Returns every character in a word or phrase''' 
    print('\n'.join(input('Enter a word: '))) 
1

Ваша проблема здесь:

for n in range(len(n)) 

Проблема конкретно в том, что, на данный момент n не был назначен, поэтому в то время как он действует как итератор (for n) не соответствует части инструкции len(n).

Разрешение будет первым убедитесь, что вы присваиваете что-то к этой переменной, или использовать итератор действительного объекта, например:

def spell(): 
    '''Returns every character in a word or phrase''' 
    n = input('Enter a word: ') # assign the input to 'n' 
    for n in range(len(n)): 
     print(n) 

(я бы, вероятно, использовать разные имена переменных , как и с тем же именем для итератора и ваш вклад потенциально запутанным)

Или вы могли бы сделать:

def spell(): 
    print [n for n in range(len(input('Enter a word: ')))] 
    """ 
    *for python 2.x: 
     print [n for n in range(len(raw_input('Enter a word: ')))] 
    *to return a list of the letters, do: 
     return [n for n in range(len(raw_input('Enter a word: ')))] 
    """ 
+0

Он/она использует python 3, ваш код не будет работать. –

+1

@JavierBuzzi как вы можете сказать, что OP использует python 3? –

+0

он использовал 'input()' вместо 'raw_input()' и 'print()' вместо 'print 'stuff here'' –