将变量同时用作整数和字符串(Python)

将变量同时用作整数和字符串(Python),python,Python,我想在同一语句中使用一个变量作为整数和字符串。在BASIC中,它将如下所示: cnt = 0 while cnt < 10: cnt = cnt + 1 print cnt + " + 1 = " + cnt + 1 cnt=0 当cntcnt=0 >>>当cnt

我想在同一语句中使用一个变量作为整数和字符串。在BASIC中,它将如下所示:

cnt = 0

while cnt < 10:
    cnt = cnt + 1
    print cnt + " + 1 = " + cnt + 1 
cnt=0
当cnt<10时:
cnt=cnt+1
打印cnt+“+1=“+cnt+1

我理解Python有点不同(整数必须在打印为字符串之前进行转换,但在这里使用“cnt=str(cnt)”之类的函数似乎效果不太好)。做这件事最简单的方法是什么?

没有,因为Python是


你几乎是对的;你只需要告诉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=0
>>>当cnt<10时:
...     cnt+=1
...     打印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
视为一个整数和一个字符串——它始终是一个整数

print str(cnt) + " + 1 = " + str(cnt + 1)


对于Python 2.6+,
格式
方法是构建包含其他值的字符串的首选方法:

'{0} + 1 = {1}'.format(cnt, cnt + 1)

您可以打印
int
s以及
str
ings。如果您知道完全可以自己编写
print cnt
,而无需显式地将其放入字符串中,那么您可能会对某些答案感到困惑

>>> 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
字符串格式语言非常有用且功能强大,这是您需要了解的。但是写起来很好

print cnt, "+ 1 =", cnt + 1

这在精神上更接近你的要求。Python会自动在参数之间添加空格,并在行尾添加一个换行符(若要禁止此操作,请在行尾添加另一个逗号)。

不鼓励以这种方式使用
%
运算符(可能已弃用)。Python(2.6+)较新版本的用户应该喜欢
格式
方法。然而,人们已经习惯并将继续使用3.2+。@Marcelo,我认为它还没有被弃用
.format()
在Python@agf上不起作用:我同意他们已经习惯了这一点(如果他们是在较旧的版本上,那么确实必须使用),但我们仍然应该鼓励在可行的情况下使用现代习惯用法。当你说“BASIC”时,你指的是哪种变体?有很多不同的版本。+1,但是你应该提到Python2.6+是这个版本所必需的answer@gnibbler:谢谢你的提示。完成。
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)
'{0} + 1 = {1}'.format(cnt, cnt + 1)
print cnt, "+ 1 =", cnt + 1