Форум сайта python.su
Читаю книжку “Легкий способ выучить Пайтон 3” и делаю там упражнение на закрепление 26. Там, где нужно подправить чужой код, чтобы работал. Так вот не пойму почему вот этот исправленный код выдает ошибку. Ткните носом. Уже всю голову себе сломал.
print(“Сколько вам лет?”, end=' ‘)
age = input()
print(“Какого вы роста?”, end=’ ‘)
height = input()
print(“Сколько вы весите?”, end=’ ‘)
weight = input()
print(f“Итак, вам {age} лет, ваш рост - {height} и ваш вес - {weight}.”)
from sys import argv
script, filename = argv
txt = open(filename)
print(f“Вот ваш файл {filename}:”)
print(txt.read())
print(“Снова укажите имя файла:”)
file_again = input()
txt_again = open(file_again)
print(txt_again.read())
print(’Давайте попрактикуемся!')
print('Вы должны знать об управляющих последовательностях с символом \\, которые')
print('\n управляют переносом строк и \t отступами.')
poem = “”“
\tДля счастья
мне совсем немного надо.
Хочу тебя \n я нежно обнимать.
Хочу всегда
я быть с тобою рядом
\n\t\tи никогда не отпускать!
”“”
print(“————–”)
print(poem)
print(“————–”)
five = 10 - 2 + 3 - 6
print(f“Здесь должна быть пятерка: {five}”
def secret_formula(started):
jelly_beans = started * 500
jars = jelly_beans / 1000
crates = jars / 100
return jelly_beans, jars, crates
start_point = 10000
beans, jars, crates = secret_formula(start_point)
# помните, что это еще один способ форматирования строки
print(“Начиная с: {}”.format(start_point))
# так же, как со строкой f“”
print(f“У нас есть {beans} бобов, {jars} банок и {crates} ящиков.”)
start_point = start_point / 10
print(“Мы также можем сделать это таким образом:”)
formula = secret_formula(start_point)
# простой способ применить список к форматируемой строке
print(“У нас есть {} бобов, {} банок и {} ящиков.”.format(*formula))
people = 20
cats = 30
dogs = 15
if people < cats:
print (“Слишком много кошек! Мир обречен!”)
if people > cats:
print(“Не так много кошек! Мир спасен!”)
if people < dogs:
print(“Мир утоп в слюнях!”)
if people > dogs:
print(“Мир сухой!”)
dogs += 5
if people >= dogs:
print(“Людей больше или столько же, сколько собак.”)
if people <= dogs:
print(“Людей меньше или столько же, сколько собак.”)
if people == dogs:
print(“Людей столько же, сколько собак.”)
Офлайн
Вот файл с кодом приложу. А то что-то как-то криво на форуме он копируется.
Прикреплённый файлы:
ex26.py (2,9 KБ)
Офлайн
TransportСтрока, где {five}, незакрытая круглая скобка.
Ткните носом. Уже всю голову себе сломал.
Офлайн
py.user.nextСПАСИБО!!!! Как это я просмотрел? Не пойму только почему ошибка была на строку, где функция определяется. def …
Офлайн
TransportПотому что функция начала определяться посреди вызова другой функции и не смогла это сделать. Если просто скобку не закрыть в строке, в этом ошибки нет, так закрывающая скобка ожидается на следующих строках.
Не пойму только почему ошибка была на строку, где функция определяется
print( 'hello' )
Отредактировано py.user.next (Окт. 28, 2024 22:48:32)
Офлайн
Теперь в голове все встало на свои места. Еще раз спасибо. Действительно, получается функция пытается определиться из-под print. Но логичнее, на мой взгляд, пайтону было бы указать на отсутствие закрывающей скобки в строке с print.
Офлайн
TransportОтсутствие скобки на той же строке - не ошибка. Питон показывет тебе то место, где возникла ошибка. А возникла она где? Питон не показывает причины ошибок. Он показывет те места, где что-то произошло.
Но логичнее, на мой взгляд, пайтону было бы указать на отсутствие закрывающей скобки в строке с print.
Офлайн