Найти - Пользователи
Полная версия: У меня вопрос глючит ли интерпретатор в Python 3?
Начало » Python для новичков » У меня вопрос глючит ли интерпретатор в Python 3?
1 2
simple+Dima
Вобщем суть такова я сейчас разбираюсь в самом начале всего этого, поэтому отталкиваюсь от того что интерпретатор указывает мне все ошибки и не дает сделать лишнего но щас я чет ваще не понял, что как и почему:
когда вбиваем этот код
 i=2
t=0
while i<=128:
    tn=t+1
    print(tn)
    t=tn
    i=i*2
print(tn)

Получаем столбик 1,2,3,4,5,6,7,7

когда вот этот
i=2
t=0
while i<=128:
    tn=t+1
    t=tn
    i=i*2
print(tn)
то получаем 7

и тут понеслась
i=2
t=0
while i==128:
    tn=t+1
    print(tn)
    t=tn
    i=i*2
print(tn)
Пишет ошибку
NameError: name ‘tn’ is not defined и указывает на последнюю строчку , окей мы ее убераем
i=2
t=0
while i==128:
    tn=t+1
    print(tn)
    t=tn
    i=i*2
тогда он просто прогоняет и нечего не пишет, но ведь по логике должен

но если мы сделаем как то вот так
i=2
t=0
while i<=128:
    tn=t+1
    t=tn
    i=i*2
print(tn)
i=2
t=0
while i==128:
    tn=t+1
    print(tn)
    t=tn
    i=i*2
print(tn)
i=2
t=0
while i==128:
    tn=t+1
    print(tn)
    t=tn
    i=i*2
он просто напишет две семерки.
Так вот у меня вопрос так должно быть, или я нетак пишу, или там блямбу надо сверху какуюнить большую писать или я незнаю)) но чет это меня в ступор жесткий загнало((((((, я эти блоки по разному пописал и чет кракозябра получаеться
Пишу в PyScripter 3.3 и проверяю в IDLE
4kpt_II
1. Оберните код в теги.
2. Вы понимаете, что значит эти два символа “==”?
3. Просмотрел Ваш файл. Все верно работает…
simple+Dima
4kpt_II
1. Оберните код в теги.2. Вы понимаете, что значит эти два символа “==”?3. Просмотрел Ваш файл. Все верно работает…


== ну это символ вроде равенства, если написано n==100
значит (n) приравнивается к 100 но не присваивается, вроде как так.
может я не понимаю сути как думает компьютер?
я вроде как понял почему там три семерки так как в самом начеле мы приходим к тому что tn=7 вот он и повторяет где я прошу выводить это значение. а

а вот при этом коде он просто не выводит tn и пишет
NameError: name ‘tn’ is not defined. -Это значит что он не может найти значение tn??
i=2
t=0
while i==128:
    tn=t+1
    t=tn
    i=i*2
print(tn)
но не могу понять почему?????
Budulianin
simple+Dima
но не могу понять почему?????
Это сигнал, чтобы пойти и открыть книгу Mark Lutz/Марк Лутц - Изучаем Python, 4-е издание
А то всё сваливаешь на интерпретатор и пишешь “У меня вопрос глючит ли интерпретатор в Python 3?”

while цикл ни разу не выполняется, поэтому при выполнении функции print, выходит такая ошибка, т.к. tn ешё не определён
4kpt_II
Budulianin
Простите. Но я бы не советовал 4 издание. Мне оно показалось не очень. Вот 3 это шедевр. Я вообще считаю его библией питона.

simple+Dima
По Вашему вопросу. В цикле while будет выполняться внутренний код только тогда, когда условие верное. Например

while true:
    print("ups")

Будет работать бесконечно. Так как условия после слова while всегда является истиной.
Теперь смотрим на Ваш код

i=2
t=0
while i==128:
    tn=t+1
    t=tn
    i=i*2
print(tn)

У Вас i=2 на первом шаге. А цикл запускается только тогда, когда i будет равно 128, о чем красноречиво свидетельствует надпись i == 128 (только кода i равно 128 равенство будет иметь логическое значение True). Так что цикл никогда выполнен не будет, и print(tn) вызовет ошибку из-за того, что создание этой переменной происходит в цикле…

P.S. А Лутца все-та почитать нужно
Budulianin
4kpt_II
Budulianin
Простите. Но я бы не советовал 4 издание. Мне оно показалось не очень. Вот 3 это шедевр. Я вообще считаю его библией питона.

Мне оно показалось очень, но я не видел 3е издание. Оно сильно отличается от 4 ?
Надо посмотреть.
4kpt_II
Гляньте. Не поленитесь. Настолько доступно и красиво еще о питоне никто и никогда не писал. Я был просто в поросячем восторге. Проглотил его за 2 дня.
Budulianin
Сравнил содержание. В 4м намного больше глав. В 3м про классы намного меньше написано. Посмотрел некоторые главы, всё слово в слово написано, только изменения с учётом версии Python
4kpt_II
Budulianin
Не буду ничего доказывать, но это беглый осмотр. В 4 очень много сносок на то, что это для 2.Х, а это для 3.Х. Я считаю это лишним для начального понимания. Должна быть четкая линия. Так новичку легче запомнить и проще понять. А так он вроде понял, как нужно, но путается. В итоге, если не очень получается в результате постоянной путаницы, это вызывает нарекания к языку. А насчет обрезанности классов. Мое мнение в этом случае другое. На самом деле 3 издание достаточно пересыщено классами. Можно было и проще… На начальном уровне не нужно сильно в этом вопросе усердствовать

P.S. Я читаю питон и по опыту общения со студентами могу сказать, что каша в голове после 4 издания получается нехилая. Хотя, возможно, это только мой личный опыт…
Budulianin
4kpt_II
это беглый осмотр.
Да, это беглый осмотр.

4kpt_II
На начальном уровне не нужно сильно в этом вопросе усердствовать
Можно просто и не всё сразу читать.

4kpt_II
P.S. Я читаю питон и по опыту общения со студентами могу сказать, что каша в голове после 4 издания получается нехилая.
Начинал знакомиться с Python по 4му изданию, когда ещё был на 3 курсе. Никакой каши в голове не было, по-моему. :)
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