Уведомления

Группа в Telegram: @pythonsu

#1 Март 5, 2015 21:41:53

Ashurbanipal
Зарегистрирован: 2015-03-05
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Не ясен принцип работы конкретной функции

Всем привет!

Вот уже неделя как я начал учить прогрммирование. Учусь по учебнику “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?

Заранее спасибо

Отредактировано Ashurbanipal (Март 5, 2015 23:04:39)

Офлайн

#2 Март 5, 2015 22:57:22

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Не ясен принцип работы конкретной функции

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. Т.е. внутри вашей функции к переданному аргументу надо будет обращаться по этому имени.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Март 5, 2015 23:13:22

Ashurbanipal
Зарегистрирован: 2015-03-05
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Не ясен принцип работы конкретной функции

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

Офлайн

#4 Март 6, 2015 02:22:11

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

Не ясен принцип работы конкретной функции

Там надо кортеж или список слов передавать.

>>> 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 никак не связана с функцией.



Отредактировано py.user.next (Март 6, 2015 02:25:21)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version