新人学习python,问个数据类型变换的问题。

2014-02-04 14:51:08 +08:00
 vivasiva
不学计算机,没有编程经验,在看《与孩子一起学编程》,第五章习题有一题“编写一个程序询问一间长方形房间的尺寸,单位为米,然后计算覆盖整个房间需要多少地毯,并显示出来”

题目条件没设全,猜测应该是假设地毯为1米1块。

我写成:

print "This is a program for room."
print "How long is the room's width?",
a = int(raw_input())
print "How long is the room's height?",
b = int(raw_input())
M = a * b
print "The whole room needs", M, "ditan."

这个没问题。

但看书里可以把提示语写进raw_input里,所以写了第二个:

print "This is a program for ditan."
a = raw_input("How long is the room's width?"),
b = int(a)
c = raw_input("How long is the room's height?"),
d = int(c)
m = b*d
print "The whole room needs", m, "ditan."

提示 int() argument must be a string or a number, not 'tuple'

请问何解?b=int(a),这个a不是已经被赋值成一个字符串了么,怎么是tuple呢?
3318 次点击
所在节点    Python
3 条回复
yelite
2014-02-04 15:13:02 +08:00
因为在raw_input后面加了','
这样就变成了一元的tuple了
vivasiva
2014-02-04 15:49:28 +08:00
谢谢,收到答案后重新翻了教程,发现是我把print后带逗号让用户同行输入和raw_input弄混了,raw_input不能这么使用。
detailyang
2014-02-05 20:20:52 +08:00
毕竟Python是通过逗号来确定tuple, 1,即(1,)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/98967

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX