Почему в Python я могу преобразовать «str» в десятичное число, но не преобразовать десятичное число в «str» в целое числPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему в Python я могу преобразовать «str» в десятичное число, но не преобразовать десятичное число в «str» в целое числ

Сообщение Anonymous »

Я создавал код Python, в первой строке ввода которого был «input()», позволяющий пользователю ввести целое число, а затем код сообщал, было ли это число четным или нечетным.
Мой код:

Код: Выделить всё

num_str = input('Whole number: ')

try:
num_int = int(num_str)
if num_int % 2 == 0:
print(f'{num_int} is an even number.')
else:
print(f'{num_int} is an odd number.')

except:
print(f'"{num_str}" is not a whole number!')
Наступает момент, когда мне нужно преобразовать тип переменной num_str, которая имеет тип «str», в тип «int». Если это преобразование привело к ошибке типа, эта ошибка будет обработана с помощью '' (например, в случае, если пользователь вводит текст или число с плавающей запятой).
Поэтому мне интересно: почему Python может преобразовать десятичное число, хранящееся в виде строки, в целое число, но не может преобразовать целое число, также как строку, в десятичное число?
Код 1: ввод целого числа

Код: Выделить всё

a = str(input('Enter a number: '))

int(a)
Выход:

Код: Выделить всё

>>>Enter a number: 15
>>>15.0
>>>
Код 2: ввод десятичного числа

Код: Выделить всё

a = str(input('Enter a number: '))
print(int(a))
Выход:

Код: Выделить всё

>>>Enter a number: 15.5
>>>Traceback (most recent call last):

File "C:/Users/Arthur Fleming/OneDrive/Área de Trabalho/test2.py", line 2, in 

print(int(a))

ValueError: invalid literal for int() with base 10: '15.5'
Смотрите, я не конвертирую тип float в int или наоборот. И да, на самом деле пытаюсь преобразовать десятичное число, которое является строкой, в целое число!

Подробнее здесь: https://stackoverflow.com/questions/786 ... l-in-a-str
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»