Блог пользователя Vadvirus

Автор Vadvirus, 11 лет назад, По-русски

Как считать неизвестное количество чисел (числа могут быть записаны как в одну строку, так и в несколько) на питоне(3.1.2).

  • Проголосовать: нравится
  • -28
  • Проголосовать: не нравится

»
11 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится -10 Проголосовать: не нравится

    Это для версии 3.3.0, а меня интересует версия 3.1.2

»
11 лет назад, # |
  Проголосовать: нравится +9 Проголосовать: не нравится

Если они в одну строку, то

[int(x) for x in input().split()]

сделает дело. Если в несколько — ну что ж, можно как минимум читать input-ом строки пока не вылетит исключение.

Проблема-то конкретно в чём? Или в том что читать/гуглить неохота и в тюториалы тоже соваться лень?

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится -8 Проголосовать: не нравится

    Уже второй день гуглю, так и ничего не нашёл. Прочесть нада неизвестное количество строк и неизвестное количество символов. Как это зделать?

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Функцией readlines, например.

    • »
      »
      »
      11 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +8 Проголосовать: не нравится

      По-моему, так удобнее всего

      f = open('your.file.name', 'r');
      
      for ln in f:
          # do something
          # ln имеет символ \n в конце
      
      • »
        »
        »
        »
        11 лет назад, # ^ |
          Проголосовать: нравится +3 Проголосовать: не нравится

        Если я правильно понял зачем автору, то там нужно читать с консоли.

        • »
          »
          »
          »
          »
          11 лет назад, # ^ |
          Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

          Тогда какая логика в том, что чисел неизвестное число? Да и если надо заслать в проверяющую систему, чтобы читалось с stdin, то в форе просто можно вместо f написать sys.stdin

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Я вам всё написал вроде, а вы опять спрашиваете "как зделать", да ещё и в личку спамите!

      Единственное что остаётся посоветовать — бросайте вы это программирование. Лучше что ли идите водочки выпейте.

      • »
        »
        »
        »
        11 лет назад, # ^ |
          Проголосовать: нравится -8 Проголосовать: не нравится

        Если в несколько — ну что ж, можно как минимум читать input-ом строки пока не вылетит исключение. Наведите пример пожалуйста, ато несовсем понятно

        • »
          »
          »
          »
          »
          11 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          Имелось ввиду вот так

          while True:
              ln = ''
              try:
                  ln = input()
              except:
                  break
              # что-то делаем со строкой
          

          Но по-моему, это некрасиво и лучше писать вот так:

          for ln in f:
              ...