Как в Python вводить токенизированные данные, например, в C++?

В C++ я могу вводить такие данные:

cin >> a >> b >> c;

И a может быть int, b может быть float, а c может быть любым ... Как мне сделать то же самое в питон?

input() и raw_input(), как я их использую, похоже, не дают желаемых результатов.

Можете ли вы лучше описать то, что «нежелательно» в результатах, которые вы получаете от raw_input ()? Это звучит именно так, как вам здесь нужно.

Glyph 21.09.2008 21:01
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
1
1 858
3

Ответы 3

Обычно вы не должны использовать input() в производственном коде. Если вам нужен int, а затем float, попробуйте следующее:

>>> line = raw_input().split()
>>> a = int(line[0])
>>> b = float(line[1])
>>> c = " ".join(line[2:])

Все зависит от того, чего именно вы пытаетесь достичь, но помните, что удобочитаемость имеет значение. Непонятные однострочные фразы могут показаться крутыми, но с учетом ремонтопригодности постарайтесь выбрать что-нибудь дельное :)

(P.S .: Не забудьте проверить наличие ошибок с помощью try: ... except (ValueError, IndexError):)

В зависимости от того, что вы делаете, что-то вроде модуля Getopt может быть полезно, но только в определенных ситуациях, и я не уверен, применимо ли это к вам.

Поскольку C++ cin читает из sys.stdin, вы часто будете делать что-то вроде следующего.

import sys
tokens= sys.stdin.read().split()
try:
   a= int(token[0])
   b= float(token[1])
except ValueError, e:
   print e # handle the invalid input

Другие вопросы по теме