我正在为beginers做一个python练习,遇到了一个与.join()相关的问题
问题是要构建一个计算输入数字平方根的程序,我知道了如何进行操作,但是我得到的输出与任务中给出的格式不同 程序的输出应为: 18,22,24 然而,我的是这样的:[18,22,24] 这是给出的一个示例答案:我正在为beginers做一个python练习,遇到了一个与.join()相关的问题,python,python-3.x,Python,Python 3.x,问题是要构建一个计算输入数字平方根的程序,我知道了如何进行操作,但是我得到的输出与任务中给出的格式不同 程序的输出应为: 18,22,24 然而,我的是这样的:[18,22,24] 这是给出的一个示例答案: from math import * C,H = 50,30 def calc(D): D = int(D) return str(int(sqrt((2*C*D)/H))) D = input().split(',') D = list(map(calc,D)) pr
from math import *
C,H = 50,30
def calc(D):
D = int(D)
return str(int(sqrt((2*C*D)/H)))
D = input().split(',')
D = list(map(calc,D))
print(",".join(D))
我认为.join()是一个字符串方法,这里的D似乎是一个列表,join方法可以工作
我的答案是:
import math
c=50
h=30
list_d = input('enter').split(',')
list_q = []
for d in list_d:
d = float(d)
q = round(math.sqrt((2*c*d)/h))
list_q.append(q)
print(''.join(list_q))
不知何故,我无法在我的列表上使用join方法,我得到了一个错误,上面写着:
打印(“”.加入(列表)
TypeError:序列项0:应为str实例,找到int
这让人困惑
多亏有人能解释一下 问题不在于正在调用的
join
字符串,也不在于列表本身,而在于列表中的值str.join
希望它的参数是字符串列表,但您正在传递一个整数列表。它不会为你改变它们
幸运的是,您可以很容易地修复这个问题。不要将
q
附加到列表中,而是附加str(q)
。您也可以看到在示例函数中调用了str
您需要将数据类型更改为str,而不是int或float。该示例使用map:list(map(calc,D))
因此没有整数。请注意,随附的答案返回str(int(…)
,而您只返回round(math.sqrt(…)
。另外,你还使用了'.join(…)
,应该是,'.join
。你们真是帮了大忙!!!!