Форум сайта python.su
0
Всем привет. Я тут новенький) Подскажите пожалуйста новичку одну мелочь, с которой я столкнулся в книге M.Dawson Программируем на Python.
Ситуация такая. В данный момент изучаю раздел про индексацию строк. Там есть пример простой программки:
#Случайные буквы
#Демонстрирует индексацию строк
import random
word = “индекс”
print(“В переменной word хранится слово: ”, word, “\n”)
high = len(word)
low = -len(word)
for i in range(10):
position = random.randrange(low, high)
print("word\t", word)
input(“\nPress Enter to exit.”)
Подскажите, почему в переменную position может попасть любой индекс элемента от -6 до 5, ведь random.range() подразумевает “непопадание” большего числа?
P.S. Надеюсь, я понятно объяснил)
Результат работы программы:
В переменной word хранится слово: индекс
word е
word с
word к
word е
word с
word и
word к
word н
word е
word н
Press Enter to exit.
Отредактировано Rasmus (Март 5, 2016 12:06:50)
Офлайн
0
Если я что-то не понятно объяснил, Вы скажите. Я просто совсем новичок…прям совсем совсем
Офлайн
26
Подскажите, почему в переменную position может попасть любой индекс элемента от -6 до 5, ведь random.range() подразумевает “непопадание” большего числа?
Офлайн
253
Rasmus
P.S. Надеюсь, я понятно объяснил)
RasmusНепонятно объяснили. У вас в коде нет нигде random.range.
ведь random.range()
Офлайн
0
Программа разбивает введенное слово по элементам и выводит 10 раз случайный номер позиции и соответствующую ей букву
Офлайн
0
doza_and
Непонятно объяснили. У вас в коде нет нигде random.range.
Rasmus
for i in range(10):
position = random.randrange(low, high)
print(“word\t”, word)
Офлайн
221
Rasmus
вы не правильно написали в одном из сообщений, функции random.range не существует. Но дело не в этом. Это просто описка. Вы получаете позицию, но при этом не выводите ее. И код в тегах надо правильно оформлять - смотрите на то что вы написали выше - там явно квадратные скобки пропущены. Вот собственно что вам нужно как я понял (помните что индексация начинается с 0)
Python 3.4.1 (default, May 23 2014, 17:48:28) [GCC] on linux Type "help", "copyright", "credits" or "license" for more information. >>> word = 'индекс' >>> high = len(word) >>> low = -high >>> import random >>> for i in range(10): ... position = random.randrange(low, high) ... print("Элемент номер {} в слове {} равен {}".format(position, word, word[position])) ... Элемент номер 2 в слове индекс равен д Элемент номер 2 в слове индекс равен д Элемент номер 5 в слове индекс равен с Элемент номер 1 в слове индекс равен н Элемент номер 5 в слове индекс равен с Элемент номер -3 в слове индекс равен е Элемент номер -4 в слове индекс равен д Элемент номер 2 в слове индекс равен д Элемент номер 5 в слове индекс равен с Элемент номер 5 в слове индекс равен с
Офлайн
253
JOHN_16Нет. Это принципиально. Человек неправильно пишет имя функции, когда его тыкают в первую ошибку, он не видит разницы. Если так будет продолжаться он вообще не сможет писать программ.
функции random.range не существует. Но дело не в этом.
Отредактировано doza_and (Март 7, 2016 07:36:39)
Офлайн
0
спасибо Вам большое…Похоже я действительно немного запутался…Хотя вопрос на самом деле простой. В книге был пример программы, было написано про функцию randrange, что она отличается от randint тем, что минимальное значение входит в рандом, а максимальное - нет. В randint входят оба значения…и максимальное, и минимальное. так вот в этом примере почему-то в рандом попало максимальное значение randrange.
Офлайн