我想在同一个语句中使用变量作为整数和字符串。在BASIC中,它看起来像这样:
cnt = 0
while cnt < 10:
cnt = cnt + 1
print cnt + " + 1 = " + cnt + 1
我理解它与Python有点不同(在将它们打印为字符串之前必须转换整数,但是这里使用诸如“cnt = str(cnt)”之类的函数似乎不能很好地工作)。这样做的简单方法是什么?
答案 0 :(得分:6)
没有一个,因为Python是strongly typed。
print '%d + 1 = %d' % (cnt, cnt + 1)
答案 1 :(得分:5)
对于Python 2.6+,format
方法是构建包含其他值的字符串的首选方法:
'{0} + 1 = {1}'.format(cnt, cnt + 1)
答案 2 :(得分:3)
你几乎是对的;你只需要准确地告诉Python何时创建一个字符串。
>>> cnt = 0
>>> while cnt < 10:
... cnt += 1
... print str(cnt) + " + 1 = " + str(cnt + 1)
...
1 + 1 = 2
2 + 1 = 3
3 + 1 = 4
4 + 1 = 5
5 + 1 = 6
6 + 1 = 7
7 + 1 = 8
8 + 1 = 9
9 + 1 = 10
10 + 1 = 11
严格来说,你并没有将cnt
视为整数和字符串 - 它总是一个整数。
答案 3 :(得分:1)
print str(cnt) + " + 1 = " + str(cnt + 1)
或
print "%d + 1 = %d" % (cnt, cnt+1)
答案 4 :(得分:1)
cnt = 0
while cnt < 10:
print str(cnt) + " + 1 = " + str(cnt + 1)
cnt = cnt + 1
或
for cnt in range(10):
print str(cnt) + " + 1 = " + str(cnt + 1)
或
for cnt in range(10):
print "%d + 1 = %d".format(cnt, cnt + 1)
答案 5 :(得分:1)
您可以打印int
以及str
。如果你知道很可能自己编写print cnt
而没有明确地将它放入字符串中,你可能会对某些答案感到困惑。
字符串格式化语言非常有用且功能强大,您需要了解它。但是编写
是完全没问题的print cnt, "+ 1 =", cnt + 1
这与你提出的要求更接近。 Python会自动在参数之间添加空格,并在行尾添加换行符(为了抑制它,最后添加另一个逗号)。