Найти - Пользователи
Полная версия: Не ясен принцип работы конкретной функции
Начало » Центр помощи » Не ясен принцип работы конкретной функции
1
Ashurbanipal
Всем привет!

Вот уже неделя как я начал учить прогрммирование. Учусь по учебнику “Invent with Python, 2nd edition”.
Вопрос такой:

По сути, сам принцип функций ясен. Но столкнся с такой вот штукой когда писал программу “Hangman”.




words = 'ant baboon badger bat bear beaver camel cat clam bublik cobra cougar coyote crow deer dog donkey duck eagle ferret fox frog goat goose hawk lion lizard llama mole monkey moose mouse mule newt otter owl panda parrot pigeon python rabbit ram rat raven rhino salmon seal shark sheep skunk sloth snake spider stork swan tiger toad trout turkey turtle weasel whale wolf wombat zebra'.split()
def getRandomWord(wordList):
    # This function returns a random string from the passed list of strings.
     wordIndex = random.randint(0, len(wordList) - 1)
     return wordList[wordIndex]


Вроде ясно - фунция должна обращаться к words и брать оттуда рандомное значение. Но каким образом это происходит, если в самой функции words не указана?

Прогрмма списана один в один с учебника.
Я провёл эксперимент:
В фунции def getRandomWord(wordList) заменил все wordlList на words. В этом случае программа опять работает.
Тогда в чём же разница? Что в оригинальном в варианте указывает функции words?

Заранее спасибо
JOHN_16
Ashurbanipal
1) код нужно на форумах вставлять в теги CODE. Смотрите в окне где печатаете сообщение.
2) читать читать и читать книги - абсолютно отсутствует понимание.
import random
words = 'ant baboon badger bat bear beaver camel cat clam bublik cobra cougar coyote crow deer dog donkey duck eagle ferret fox frog goat goose hawk lion lizard llama mole monkey moose mouse mule newt otter owl panda parrot pigeon python rabbit ram rat raven rhino salmon seal shark sheep skunk sloth snake spider stork swan tiger toad trout turkey turtle weasel whale wolf wombat zebra'.split()
def getRandomWord(wordList):
    # This function returns a random string from the passed list of strings.
    wordIndex = random.randint(0, len(wordList) - 1)
    return wordList[wordIndex]
print getRandomWord(words)
Переменаая words передается в функцию getRandomWords, Потому что при определении функции вы указали что она ожидает получить 1 обязательный аргумент, который будет внутри функции связан с именем wordList. Т.е. внутри вашей функции к переданному аргументу надо будет обращаться по этому имени.

Ashurbanipal
JOHN_16, исправил теги. Спасибо. Книги читать буду и много, т.к. надо по работе. Книги читать вообще хорошо. Но некоторую литературу понять новичкам сложно и они бегут на форумы к более опытным за помощью. Повторюсь - читать буду и много. Но всё-таки хотелось бы получить ответ по моей теме.
py.user.next
Там надо кортеж или список слов передавать.

>>> import random
>>> 
>>> def get_random_word(word_list):
...     """Get random string from the passed list."""
...     word_index = random.randint(0, len(word_list) - 1)
...     return word_list[word_index]
... 
>>> words = 'a b c'
>>> 
>>> get_random_word(words.split())
'a'
>>> get_random_word(['111', '222', '333'])
'333'
>>>

Ashurbanipal
Вроде ясно - фунция должна обращаться к words
Функция никак не связана с words, а words никак не связана с функцией.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB