首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python float函数会自动识别数字吗?

Python float函数会自动识别数字吗?
EN

Stack Overflow用户
提问于 2021-01-20 10:22:11
回答 2查看 55关注 0票数 1

所以这里有一个简单的问题输入:第一行包含一个整数,N,学生数量。接下来的2N行描述了每一位学生。第一行包含一个学生的名字。第二行包含他们的成绩。和代码:

代码语言:javascript
运行
复制
l = []
second_lowest_names = []
scores = set()

for _ in range(int(input())):
    name = input()
    score = float(input())
    l.append([name, score])
    scores.add(score)
        
second_lowest = sorted(scores)[1]

for name, score in l:
    if score == second_lowest:
        second_lowest_names.append(name)

for name in sorted(second_lowest_names):
    print(name, end='\n')

我只是有点搞不懂为什么float()函数只接受数字而不接受姓名作为输入,这是一个示例输入

代码语言:javascript
运行
复制
5
Harry
37.21
Berry
37.21
Tina
37.2
Akriti
41
Harsh
39
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-20 11:25:02

在您的循环中,调用input()两次。每次都会得到一行输入,因此对应于学生的两个值都会在循环的一次传递中读取:

代码语言:javascript
运行
复制
for _ in range(int(input())):
    name = input()              # get the name
    score = float(input())      # get the score, and convert it to a number

只有第二个输入行(代表学生的分数)被传递给float。如果将学生的名字(来自前一行)传递给float,则会得到一个异常,除非该学生有一个非常非常规的名字(如'Nan''Inf')。

票数 1
EN

Stack Overflow用户

发布于 2021-01-20 14:57:05

你知道float是做什么的吗?它是floating point number的缩写,是一种在小数点后可以有小数部分的计算机中表示数字的方法。每当您调用input()时,python总是接收您键入的字符串,这意味着一个字符序列。

字符串在计算机中不像浮点数那样具有直接的数字意义。对于计算机来说,字符串"41“并不是您或我会立即将其解释为有意义的数字。对于计算机来说,它只是两个字符的顺序,第一个字符恰好是"4“字符,第二个字符恰好是"1”字符--不多也不少。python中的引号表示字符串。如果你计算"41"+"1“,你会得到"411”。你甚至可以计算"41“+ "hello”得到"41hello“。这些都是字符串。

调用float("41")获取字符串并尝试将其计算为浮点数,计算机将其解释为实际数字,而不是简单的字符序列。正如您所预期的那样,两个浮点值的总和为42.0。

因为一个学生的名字并不是用来表示数字的,所以您不应该尝试对它调用float(),因为这样做没有任何意义。Float很可能无法生成数字解释,除非名称是少数几个特殊字符串之一,如"nan“(不是数字)或"inf”(无穷大)。如果名字恰好是这些字符串中的一个,你无论如何都不会想要这样的翻译。

这就是为什么在数字实体上而不是在代码中的名称上调用float。

除了float()之外,另一个类似的东西是int(),它是整数的缩写。浮点数和整型数都是实际的数字表示形式。本质上的区别是,整数被限制为整数(正、负或零),而浮点值在小数点后可以有小数。它们是在计算机中表示数字的不同方式,每种方式都适用于不同的情况。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65802200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档