石头剪刀布游戏,语句最后的一个else会出现说是应为语句 这是为啥呀然后咋改也不行 这是怎么回事
```python
import random
print("*************欢迎来到猜拳游戏*****************")
user=int(input("请输入你所要出的拳,1拳头2剪刀3布\n"))
if user >=1 and user <=3:
print("您出的拳为{}".format(user))
a = random.randint(1, 3)
print("电脑出的为{}".format(a))
if user == a:
print("您与电脑达成平局")
elif((user == 1 and a==2)
or(user == 2 and a==3)
or(user == 3 and a==1)):
print("电脑不服气要和您再来一把!")
else:
print("不要气馁,胜败乃兵家常事")
else
print("请输入符合规则的1-3内的数")

```
修改缩进,加上漏掉的冒号后代码
#!/sur/bin/nve python
# coding: utf-8
import random
print("*************欢迎来到猜拳游戏*****************")
user=int(input("请输入你所要出的拳,1拳头2剪刀3布\n"))
if user >=1 and user <=3:
print("您出的拳为{}".format(user))
a = random.randint(1, 3)
print("电脑出的为{}".format(a))
if user == a:
print("您与电脑达成平局")
elif((user == 1 and a==2) or (user == 2 and a==3) or (user == 3 and a==1)):
print("电脑不服气要和您再来一把!")
else:
print("不要气馁,胜败乃兵家常事")
else:
print("请输入符合规则的1-3内的数")
代码
#!/sur/bin/nve python
# coding: utf-8
import random
print(f"\n{' 欢迎来到猜拳游戏 ':*^33}")
user=int(input(f"\n{'1. 拳头 2. 剪刀 3. 布':^36}\n{'':~^41}\n{'请您出拳:':>14}"))
user_s = '拳头' if user == 1 else '剪刀' if user == 2 else '布'
if user >=1 and user <=3:
print("\n您出的拳为“{}”".format(user_s))
a = random.randint(1, 3)
a_s = '拳头' if a == 1 else '剪刀' if a == 2 else '布'
print("电脑出的为“{}”".format(a_s))
if user == a:
print(f"\n{'':~^41}\n{'您与电脑打成平局。':^32}")
elif (user == 1 and a==2) or (user == 2 and a==3) or (user == 3 and a==1):
print(f"\n{'您赢了!':^37}\n{'':~^41}\n{'电脑不服气要和您再来一把!':^28}")
else:
print(f"\n{'您输了!':^37}\n{'':~^41}\n{'不要气馁,胜败乃兵家常事。':^28}")
else:
print("请输入符合规则的1-3内的数")
代码
#!/sur/bin/nve python
# coding: utf-8
import random
clear = '\033[2J' # 清屏控制字符串,清除终端可见屏幕字符。
while True:
print(f"{clear}\n\n{' 欢迎来到猜拳游戏 ':*^33}")
user = input(f"\n{'1. 拳头 2. 剪刀 3. 布':^36}\n{'':~^41}\n{'(直接回车退出程序)':^33}\n\n{'请您出拳:':>14}")
if not user:
print(f"{clear}\n\n{' 欢迎下次再玩猜拳游戏 ':*^31}\n")
break
user = int(user)
user_s = '拳头' if user == 1 else '剪刀' if user == 2 else '布'
if user >=1 and user <=3:
print(f"\n\n{'':>8}{'':.^22}\n\n{'':>12}您出的拳为“{user_s}”")
a = random.randint(1, 3)
a_s = '拳头' if a == 1 else '剪刀' if a == 2 else '布'
print(f"{'':>12}电脑出的为“{a_s}”\n\n{'':>8}{'':.^22}\n")
if user == a:
print(f"\n{'':~^41}\n{'您与电脑打成平局。':^32}")
elif ((user == 1 and a==2)
or (user == 2 and a==3)
or (user == 3 and a==1)):
print(f"\n{'您赢了!':^37}\n{'':~^41}\n{'电脑不服气要和您再来一把!':^28}")
else:
print(f"\n{'您输了!':^37}\n{'':~^41}\n{'不要气馁,胜败乃兵家常事。':^28}")
else:
print(f"\n{'':~^41}\n{'请输入1-3内的数字。':^33}")
input(f"\n{' 任意键继续…… ':~^35}")
代码
#!/sur/bin/nve python
# coding: utf-8
import random
def play():
clear = '\033[2J' # 清屏控制字符串,清除终端可见屏幕字符。
print(f"{clear}\n\n{' 欢迎来到猜拳游戏 ':*^33}")
user = input(f"\n{'1. 拳头 2. 剪刀 3. 布':^36}\n{'':~^41}\n{'(直接回车退出程序)':^33}\n\n{'请您出拳:':>14}")
if not user:
print(f"{clear}\n\n{' 欢迎下次再玩猜拳游戏 ':*^31}\n")
return
user = int(user)
user_s = '拳头' if user == 1 else '剪刀' if user == 2 else '布'
if user >=1 and user <=3:
print(f"\n\n{'':>8}{'':.^22}\n\n{'':>12}您出的拳为“{user_s}”")
a = random.randint(1, 3)
a_s = '拳头' if a == 1 else '剪刀' if a == 2 else '布'
print(f"{'':>12}电脑出的为“{a_s}”\n\n{'':>8}{'':.^22}\n")
if user == a:
print(f"\n{'':~^41}\n{'您与电脑打成平局。':^32}")
elif ((user == 1 and a==2)
or (user == 2 and a==3)
or (user == 3 and a==1)):
print(f"\n{'您赢了!':^37}\n{'':~^41}\n{'电脑不服气要和您再来一把!':^28}")
else:
print(f"\n{'您输了!':^37}\n{'':~^41}\n{'不要气馁,胜败乃兵家常事。':^28}")
else:
print(f"\n{'':~^41}\n{'请输入1-3内的数字。':^33}")
input(f"\n{' 任意键继续…… ':~^35}")
play() # 函数自调用实现循环。
if __name__ == '__main__':
play()
猜拳游戏过程的那一段 应比前一个if 往后缩进一级,然后最后一个else 里的print语句也要往后缩进一级。
修改如下:
参考链接:
import random
print("*************欢迎来到猜拳游戏*****************")
user=int(input("请输入你所要出的拳,1拳头2剪刀3布\n"))
if user >=1 and user <=3:
# https://blog.csdn.net/YunxiaoYuji1/article/details/130648822
# 进行猜拳游戏的过程,放到if里面,往后缩进一级
print("您出的拳为{}".format(user))
a = random.randint(1, 3)
print("电脑出的为{}".format(a))
if user == a:
print("您与电脑达成平局")
elif((user == 1 and a==2)
or(user == 2 and a==3)
or(user == 3 and a==1)):
print("电脑不服气要和您再来一把!")
else:
print("不要气馁,胜败乃兵家常事")
else:
# 这个print语句放在else分支下,也要往后缩进一级
print("请输入符合规则的1-3内的数")
【以下回答由 GPT 生成】
解决方案:
根据你提供的代码和问题描述,这里有两个问题导致语法错误:
正确的代码应该是:
print("*************欢迎来到猜拳游戏*****************")
input()
函数返回的是字符串类型。然而,你在第3行将其直接转换为整数类型,但如果用户输入的是非数字,则会引发ValueError
。为了避免这个问题,你可以先检查用户输入是否为数字并在转换前进行验证。正确的代码应该是:
user_input = input("请输入你所要出的拳,1拳头2剪刀3布\n")
if user_input.isdigit():
user = int(user_input)
# 以下是原始代码
print("您出的拳为{}".format(user))
# ... 省略其他代码 ...
else:
print("请输入符合规则的数")
这样修改后的代码应该会解决你遇到的语法错误。请注意,我只修改了与语法错误相关的部分。如果你仍遇到其他问题,请随时提问。
【相关推荐】
#!/sur/bin/nve python
# coding: utf-8
import random
print("*************欢迎来到猜拳游戏*****************")
user=int(input("请输入你所要出的拳,1拳头2剪刀3布\n"))
if user >=1 and user <=3:
print("您出的拳为{}".format(user))
a = random.randint(1, 3)
print("电脑出的为{}".format(a))
if user == a:
print("您与电脑达成平局")
elif((user == 1 and a==2) or (user == 2 and a==3) or (user == 3 and a==1)):
print("电脑不服气要和您再来一把!")
else:
print("不要气馁,胜败乃兵家常事")
else:
print("请输入符合规则的1-3内的数")