吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 576|回复: 13
收起左侧

[求助] Python中关于str转浮点数的问题

[复制链接]
teddymvs 发表于 2024-3-24 22:27
        初学者求助,在一个判断输入数字为正负0的作业中,遇到了输入的内容为字符串类型,不能直接判断大小。
        随后我用float转化了一下就可以了。能够判断出是正负0了。
[Python] 纯文本查看 复制代码
num = input("请输入一个数字!:")
num = float(num)

if num > 0:
    print("这是一个正数")
elif num < 0:
    print("这是一个负数")
else:
    print("这是零")

        但是float并没有达到我想要的效果,我想在输出中显示输入的内容。
例如:1. 输入 '6.0' 输出 '6.0 是正数'
         2. 输入 '6.000' 输出 '6.000 是正数'
        如何解决这个精度问题呢,而且是根据输入变化的这种。
        感谢!

免费评分

参与人数 1热心值 +1 收起 理由
whxn + 1 你可以使用Python里面的f-string来达到你想要的效果

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Arcticlyc 发表于 2024-3-24 23:22
傻孩子,你 float 后用一个新变量报存,输出的时候用输入的 str 不就行啦

免费评分

参与人数 2吾爱币 +2 热心值 +1 收起 理由
BlackCaesar + 1 + 1 我很赞同!
kittylang + 1 我很赞同!

查看全部评分

HackYike 发表于 2024-3-24 23:34
你这都不确定输入的是什么东西,怎么就敢直接强行转换了?这里要加判断或try一下,要保持原样就直接格式化输出
[Python] 纯文本查看 复制代码
num = input("请输入一个数字:")
try:
    n = float(num)
    if n > 0:
        print(f"{num}是正数")
    elif n == 0:
        print(f"{num}是0")
    else:
        print(f"{num}是负数")
except:
    print("输入错误")
怀中猫 发表于 2024-3-24 23:34
[Python] 纯文本查看 复制代码
num = input("请输入一个数字!:")

# 直接使用字符串进行比较,而不是转换为浮点数
if num > '0':
    print(f"{num} 是正数")
elif num < '0':
    print(f"{num} 是负数")
else:
    print("这是零")
YuYu798 发表于 2024-3-24 23:41
用两个变量接收
[Python] 纯文本查看 复制代码
while True:
    num_in = input("请输入一个数字!:")
    num = float(num_in)
    if num > 0:
        print(f"{num_in} 这是一个正数")
    elif num < 0:
        print(f"{num_in} 这是一个负数")
    else:
        print("这是零")


0.png
 楼主| teddymvs 发表于 2024-3-24 23:56
HackYike 发表于 2024-3-24 23:34
你这都不确定输入的是什么东西,怎么就敢直接强行转换了?这里要加判断或try一下,要保持原样就直接格式化 ...

谢谢!目前是学校非计算机专业,刚刚学到这里。
 楼主| teddymvs 发表于 2024-3-24 23:57
怀中猫 发表于 2024-3-24 23:34
[mw_shl_code=python,true]num = input("请输入一个数字!:")

# 直接使用字符串进行比较,而不是转换为 ...

学到了,字符串也能比较大小?

点评

按字符比较的,不符合直觉。 [md]``` >>> '1' > '2' False >>> '1' > '20' False >>> '100' > '20' False >>> '300' > '20' True ```[/md]  详情 回复 发表于 2024-3-25 07:44
 楼主| teddymvs 发表于 2024-3-24 23:59
YuYu798 发表于 2024-3-24 23:41
用两个变量接收
[mw_shl_code=python,true]while True:
    num_in = input("请输入一个数字!:")

学到了,感谢!
whxn 发表于 2024-3-25 01:02
你可以使用 python 里面的 f-string来达到你想要的效果
爱飞的猫 发表于 2024-3-25 07:44
本帖最后由 爱飞的猫 于 2024-3-25 07:46 编辑
teddymvs 发表于 2024-3-24 23:57
学到了,字符串也能比较大小?

按字符比较的,不符合直觉。

>>> '1' > '2'
False
>>> '2' > '10'
True
>>> '10' > '20'
False
>>> '100' > '20'
False
>>> '300' > '20'
True
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 16:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表