如何使包含一个数字不同部分的两个变量显示为同一个数字?

2024-09-28 22:31:36 发布

您现在位置:Python中文网/ 问答频道 /正文

with open("player1Cards.txt","r") as h:
for row in h:
  p1= []
  p1.append(row[0])
  p1numbers= []
  p1numbers.append(row[1])
  p1number10=[]
  p1number10.append(row[2])

对于我的代码,我需要比较两个数字,看看哪个更大。较大的数字将获胜,我的数字从1到10不等。 数字显示为R1或R10,R代表红色(玩家名称)。 p1追加了“R”,以便我以后可以使用它。 p1numbers追加列表中的下一行,即第一位数字。 (我对Player2也做了同样的操作,使用了p2和p2编号等) 我的问题是1和10都显示为1,因为我只能附加第一个数字。 这就是我创建p1number10的原因,因为当我比较R10和R1时,我会写

if p1>p2:
  print("Player 1 wins!")
else:
  print("Player 2 wins!")

但是R10和R1是一样的,比较1,但我不能写p1numbers+p1number10,因为它们都是整数。我也不能将两行附加到同一个变量。你知道怎么解决这个问题吗?请帮忙


Tags: with数字openrowplayerprintp2r1
1条回答
网友
1楼 · 发布于 2024-09-28 22:31:36

如果我理解正确,您希望比较以一个字符开头的两个字符串,然后是一个数字,如"R1""R2""R10"

我将去掉第一个字符,转换为整数,然后比较:

p1 = "R1"
p2 = "R2"
print(int(p1[1:])) # 1
print(int(p2[1:])) # 2
print(int(p1[1:]) < int(p2[1:])) # True

我在这里使用的语法糖称为数组索引(它也适用于字符串)。它的语法与range(start, stop, step)相同,只是字段之间用冒号而不是逗号分隔。
因此,"R1"[1:]获取字符串"R1"并提取第一个字符后面的所有内容

相关问题 更多 >