Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Уроки по Python, обсуждение  (Прочитано 23973 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн madcrow

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #210 : 26 Января 2020, 17:33:21 »
(Нажмите, чтобы показать/скрыть)


там написано, выкладывать ДЗ..ну кк

по второму уроку:
a = 101
if a > 10 :
    print('Кооотики')
    if a == 89:
        print ('89 котиков')
    elif a >10 and a < 89 or a > 89 and a == 100:
        print('не правильное количксвто котиков')
    else:
        print('БОЛЬШЕ 100 КОТИКОВ')
elif a == 10:

    print('10 котиков')
else :
    print('меньше 10 котиков')
но когда пытаюсь сделать :
a = int(input('text')лезет ошибка синтаксиса:
  File "2less2.py", line 2
    if a > 10 :
              ^
SyntaxError: invalid syntax
не могу отдуплить, почему .... :-\

P.S. Отдуплился!)) :
a = int(input('Сколько Котиков? '))

if a > 10 :
    print('Кооотики')
    if a == 89:
        print ('89 котиков')
    elif a >10 and a < 89 or a > 89 and a < 100 or a > 100:
        print('не правильное количксвто котиков')
    elif a ==100:
        print('100 КОТИКОВ')
    else:
        print('БОЛЬШЕ 100 КОТИКОВ')
elif a == 10:
    print('10 котиков')
else :
    print('меньше 10 котиков')
« Последнее редактирование: 26 Января 2020, 18:02:49 от madcrow »

Оффлайн Jack Sparrow

  • Активист
  • *
  • Сообщений: 630
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #211 : 26 Января 2020, 18:06:44 »
Некоторые редакторы выделяют парные скобки, труднее ошибиться. В Питоне очень часто бывает, что если ошибка invalid syntax показана в строке, где ее, очевидно, быть не может, как, например в этом
if a > 10 :то искать нужно строкой выше.
Linux is only free if your time has no value (c) Jamie Zawinski

Оффлайн madcrow

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #212 : 26 Января 2020, 18:29:20 »
Имеется ввиду что:
a = int(input("Сколько Котиков? "))и:
a = int(input('Сколько Котиков? '))не одно и то же? :-\

Оффлайн Jack Sparrow

  • Активист
  • *
  • Сообщений: 630
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #213 : 26 Января 2020, 18:51:48 »
Имеется в виду, что в
a = int(input('text')не хватает закрывающей скобки. Поэтому и ошибка была.
Linux is only free if your time has no value (c) Jamie Zawinski

Оффлайн madcrow

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #214 : 26 Января 2020, 19:02:23 »
скобки..не кавычки же ;D
моя невнимательность. спасибо за пояснение =))

Оффлайн madcrow

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #215 : 27 Января 2020, 21:14:56 »
Господа, 2е задание 4го урока:
(Нажмите, чтобы показать/скрыть)
моё решение:
Код: (python3) [Выделить]
qw = []
l = 5
plus = 1
for i in range(l):
    t = int(input('Введите число '))
    qw.append(t + plus)
print(qw)
имеет такой вариант право на жизнь?

Оффлайн Jack Sparrow

  • Активист
  • *
  • Сообщений: 630
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #216 : 28 Января 2020, 00:01:05 »
Не имеет. По условию задачи к каждому последующему числу нужно прибавлять на единицу больше, а у вас все время прибавляется одно и то же, т.е. 1 (переменная plus). Т.е., если ввести 1,2,3,4,5, то программа выведет [2,3,4,5,6], а должно быть [2,4,6,8,10]. Скорее уж так:
qw = []
l = 5
plus = 1
for i in range(l):
    t = int(input('Введите число '))
    qw.append(t + plus)
    plus += 1
print(qw)
Выбор переменной l (эль) не рекомендуется, т.к. ее легко спутать с цифрой 1 (один).
Linux is only free if your time has no value (c) Jamie Zawinski

Оффлайн madcrow

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #217 : 28 Января 2020, 00:25:02 »
неверно понял условия, видимо...
спасибо, что бы я без Вас делал?)
plus += 1тоже что и
plus = plus + 1?)
сразу прошу понять и простить) я пытаюсь постичь новую для себя стезю)

Оффлайн Jack Sparrow

  • Активист
  • *
  • Сообщений: 630
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #218 : 28 Января 2020, 09:15:05 »
Да, увеличивает переменную на заданное число. Есть аналогичные команды, -=, *= и /=, которые уменьшают/умножают/делят переменную на заданное число.
Linux is only free if your time has no value (c) Jamie Zawinski

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #219 : 28 Января 2020, 14:33:58 »
Если есть намерение приколупиться, то в условии "вывести с помошью for", а не ввести... Ну и для списков в python стоит привыкать к абстракциям
Код: (python) [Выделить]
mylist = [i + int(input('Введите число > ')) for i in range(1, 5)]
for element in mylist :
    print(element)

Опять-же выводить используя for совсем не Ъ...
Код: (python) [Выделить]
print(*mylist, sep='\n')
« Последнее редактирование: 28 Января 2020, 14:50:47 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Jack Sparrow

  • Активист
  • *
  • Сообщений: 630
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #220 : 28 Января 2020, 15:59:02 »
Azure, человек идет по этим урокам, в которых, по словам автора, "вся магия списков" раскрывается после изучения изменения и добавления новых элементов, а также срезов. А вы тут с непонятной генерацией списков :)
Linux is only free if your time has no value (c) Jamie Zawinski

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #221 : 28 Января 2020, 18:27:18 »
вся магия списков
Ну, я ж не претендую на "магию", а то было бы на генераторе в 1 строку
Код: (python) [Выделить]
print(*((i + int(input('Введите число > '))) for i in range(1,5)), sep='\n')
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн madcrow

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #222 : 28 Января 2020, 20:35:09 »
ну это Вы уже написали что-то  совсем не понятное для меня
пока что =)

Оффлайн Jack Sparrow

  • Активист
  • *
  • Сообщений: 630
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #223 : 28 Января 2020, 23:52:41 »
Linux is only free if your time has no value (c) Jamie Zawinski

Оффлайн madcrow

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #224 : 29 Января 2020, 02:43:29 »
Это снова я))
осилил очередную задачу :coolsmiley:, представляю на ваш суд =)

(Нажмите, чтобы показать/скрыть)

translator = dict(феминизм = 'feminism', фея = 'fairy', ферментировать = 'ferment',
                  абрикос = 'apricot', абсцисса = 'abscissa', мыкать = 'knock about',
                  мыслитель = 'thinker / speculator / notionalist', собака = 'dog')

while 1:
    voc = input('Введите слово > ')
    if voc in translator:
        print( voc + ' > ' + translator[voc])
    elif voc == 'Выход':
        print("Exiting...")
        break
    else:
        voc1 = input('Введите перевод > ')
        print('Слово добавлено \nДля остановки введите "Выход"')
        translator[voc] = voc1
Хотелось бы что бы translator запоминал, что эму скормили.. но это, я понимаю, всё еще впереди) 

Изначально было вида:

r = 1
while r:
    voc = input('Введите слово > ')
    if voc in translator:
        print( voc + ' > ' + translator[voc])
    elif voc == 'Выход':
        print("Exiting...")
        r = 0

но мне захотелось сделать с помощью break :angel:, не знаю, как было бы правильнее=)
« Последнее редактирование: 29 Января 2020, 02:47:49 от madcrow »

 

Страница сгенерирована за 0.059 секунд. Запросов: 25.