python中可以player=player==1?2:1
时间: 2023-10-05 11:11:49 浏览: 64
这种语法在Python中是不合法的,因为Python中没有三元运算符(?:)。相反,可以使用类似的if-else语句来实现相同的功能:
```python
player = 1
player = 2 if player == 1 else 1
print(player)
# 输出2
```
这里我们使用了if-else语句来检查player是否等于1,如果是则将player赋值为2,否则将其赋值为1。
相关问题
import random def run(): cpu_score = 0 player_score = 0 while True: choices = ["石头", "布", "剪刀"] computer = random.choice(choices) player = input("石头,剪刀或布?") # 判断电脑与游戏者的选择 if player == computer: print('电脑输出了:{}'.format(computer)) print("打平了!") elif player == "石头": if computer == "布": print('电脑输出了:{}'.format(computer)) print("你输了...") cpu_score += 1 else: print('电脑输出了:{}'.format(computer)) print("你赢了!") player_score += 1 elif player == "布": if computer == "剪刀": print('电脑输出了:{}'.format(computer)) print("你输了...") cpu_score += 1 else: print('电脑输出了:{}'.format(computer)) print("你赢了!") player_score += 1 elif player == "剪刀": if computer == "石头": print('电脑输出了:{}'.format(computer)) print("你输了...") cpu_score += 1 else: print('电脑输出了:{}'.format(computer)) print("你赢了!") player_score += 1 elif player == '2': print("最终得分:") print(f"电脑得分:{cpu_score}") print(f"你的得分:{player_score}") f=open('scroe.txt',"w") f.write(str(player_score)) f.close() break else: print("输入错误,请检查你的输入") if name == 'main': m = input("开始游戏请输入:1\n结束游戏请输入:2\n") run(). 这个代码还存在一些问题,请你帮我改一下
在你的代码中,存在以下问题:
1. `if name == 'main':` 这个判断条件可能不正确,应该是 `if __name__ == '__main__':`。
2. `run().` 这句代码不应该有括号,应该写成 `run()`。
3. 在游戏结束后,你将得分写入文件的代码没有必要放在 while 循环中。应该在游戏结束后将得分写入文件。
下面是修改后的代码:
```python
import random
def run():
cpu_score = 0
player_score = 0
while True:
choices = ["石头", "布", "剪刀"]
computer = random.choice(choices)
player = input("石头,剪刀或布?")
if player == computer:
print('电脑输出了:{}'.format(computer))
print("打平了!")
elif player == "石头":
if computer == "布":
print('电脑输出了:{}'.format(computer))
print("你输了...")
cpu_score += 1
else:
print('电脑输出了:{}'.format(computer))
print("你赢了!")
player_score += 1
elif player == "布":
if computer == "剪刀":
print('电脑输出了:{}'.format(computer))
print("你输了...")
cpu_score += 1
else:
print('电脑输出了:{}'.format(computer))
print("你赢了!")
player_score += 1
elif player == "剪刀":
if computer == "石头":
print('电脑输出了:{}'.format(computer))
print("你输了...")
cpu_score += 1
else:
print('电脑输出了:{}'.format(computer))
print("你赢了!")
player_score += 1
elif player == '2':
print("最终得分:")
print(f"电脑得分:{cpu_score}")
print(f"你的得分:{player_score}")
with open('score.txt', 'w') as f:
f.write(str(player_score))
break
else:
print("输入错误,请检查你的输入")
if __name__ == '__main__':
m = input("开始游戏请输入:1\n结束游戏请输入:2\n")
run()
```
另外,你需要注意代码的缩进,因为 Python 是通过缩进来区分代码块的。我修改的代码中已经对缩进进行了修正。
player1 = sorted(cards[:14], key=lambda x: card_value[x])这段代码的作用是什么?可以具体解释一下吗?
这段代码的作用是将列表 `cards` 中前14个元素按照它们的牌面大小(由 `card_value` 字典给出)进行排序,并将排序后的结果赋值给变量 `player1`。
具体地说,这里使用了 Python 内置的 `sorted` 函数,它可以对列表进行排序。`key` 参数指定了排序的依据,这里使用了一个 lambda 函数,它接受列表中的每个元素 `x`,并返回 `card_value[x]`,即这个元素对应的牌面大小。这样,`sorted` 函数会根据这个返回值进行排序,从而得到一个按照牌面大小升序排列的列表。最后使用切片操作 `[:14]` 取出前14个元素,也就是玩家1的牌。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)