You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用if else将input()返回的str转为int或float?

解决方案

直接通过字符串方法判断输入格式,结合if-else实现类型转换,修改后的代码如下:

mylst = []
num_str = input("Enter height: ")

# 处理无小数的整数输入(厘米数)
if num_str.isdecimal():
    processed_num = int(num_str)
    mylst.append(processed_num)
# 处理带小数的合法浮点数输入(英寸数)
elif '.' in num_str and num_str.count('.') == 1 and num_str.split('.')[0].isdecimal() and num_str.split('.')[1].isdecimal():
    processed_num = float(num_str)
    mylst.append(processed_num)
# 非数字或非法格式输入,保留字符串类型
else:
    mylst.append(num_str)

print(mylst)

逻辑说明

  • 整数判断:用isdecimal()验证字符串是否为纯十进制数字,符合无小数厘米数的输入要求,验证通过后转为int类型。
  • 浮点数判断:通过多条件组合确保输入是合法带小数格式:
    1. 字符串包含且仅包含一个小数点
    2. 小数点前后的子串均为纯十进制数字
      满足条件则转为float类型。
  • 其他情况:不符合上述两种格式的输入,直接保留原字符串类型存入列表。

内容的提问来源于stack exchange,提问作者BigBad BroBot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 18:25:28