python小游戏报错!

软件和网站开发以及相关技术探讨
回复
头像
九天星
帖子: 1440
注册时间: 2007-07-14 20:45

python小游戏报错!

#1

帖子 九天星 » 2016-10-14 20:53

代码: 全选

#!/usr/bin/python
# coding: utf-8
import random
while(1):
	enter = raw_input("输入 s(开始游戏)/q(退出游戏):")
	if(enter == "q"):
		print "退出游戏"
		break
	elif(enter == "s"):
		val = random.randint(0,100)
		while(1):
			num = int(raw_input("输入(0~100)之间的数字:")
			if(num == val):
				print "你猜中了,真棒!\n 继续游戏"
				break
			elif(num > val):
				print "过大"
			else:
				print "过小"
这个小游戏在运行的时候提示第十三行语法错误,可反复核查,没找到问题在哪,请教!
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: python小游戏报错!

#2

帖子 vickycq » 2016-10-14 21:15

第 12 行括号不匹配,导致解释器认为从 13 行到末行都是第 12 行的延续。另有其它问题,详述如下

代码: 全选

$ pep8 guess.py 
guess.py:5:4: E111 indentation is not a multiple of four
guess.py:6:4: E111 indentation is not a multiple of four
guess.py:7:7: E111 indentation is not a multiple of four
guess.py:8:7: E111 indentation is not a multiple of four
guess.py:9:4: E111 indentation is not a multiple of four
guess.py:10:7: E111 indentation is not a multiple of four
guess.py:10:29: E231 missing whitespace after ','
guess.py:11:7: E111 indentation is not a multiple of four
guess.py:12:10: E111 indentation is not a multiple of four
guess.py:13:10: E128 continuation line under-indented for visual indent
guess.py:16:10: E122 continuation line missing indentation or outdented
guess.py:18:10: E122 continuation line missing indentation or outdented
guess.py:20:1: E901 TokenError: EOF in multi-line statement
参考 https://www.python.org/dev/peps/pep-0008/
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
头像
九天星
帖子: 1440
注册时间: 2007-07-14 20:45

Re: python小游戏报错!

#3

帖子 九天星 » 2016-10-14 21:26

vickycq 写了:第 12 行括号不匹配,导致解释器认为从 13 行到末行都是第 12 行的延续。另有其它问题,详述如下

代码: 全选

$ pep8 guess.py 
参考 https://www.python.org/dev/peps/pep-0008/
12行最后面少了半个括号。 :Shame :Shame :Shame

我看到你的测试报错信息也没提到括号啊,PEP8是用来测试py的么?
头像
九天星
帖子: 1440
注册时间: 2007-07-14 20:45

Re: python小游戏报错!

#4

帖子 九天星 » 2016-10-14 21:31

为何提示是13行呢?那以后的提示中如果是776行,是不是就要在775行找问题?
头像
astolia
论坛版主
帖子: 6396
注册时间: 2008-09-18 13:11

Re: python小游戏报错!

#5

帖子 astolia » 2016-10-14 22:05

九天星 写了:为何提示是13行呢?那以后的提示中如果是776行,是不是就要在775行找问题?
谁说的?从776行到第1行都有可能出问题
头像
九天星
帖子: 1440
注册时间: 2007-07-14 20:45

Re: python小游戏报错!

#6

帖子 九天星 » 2016-10-14 22:56

astolia 写了:
九天星 写了:为何提示是13行呢?那以后的提示中如果是776行,是不是就要在775行找问题?
谁说的?从776行到第1行都有可能出问题
呵呵,没有谁说,是我个人这么理解的。

你回答了我才知道我理解的不对。。。。

我知道了,下次就按你教的方法,在小于等于报错行找。。。。谢谢你的解答!好梦!
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: python小游戏报错!

#7

帖子 vickycq » 2016-10-14 23:26

九天星 写了:为何提示是13行呢?
第12行括号不匹配只会让解释器以为第12行未结束
类似案例 http://bugs.python.org/issue16917
九天星 写了:测试报错信息也没提到括号啊
pep8 仅用来检测代码是否符合 pep8 规范。python 解释器亦不具备提示“括号不匹配”的功能。
参考 https://mail.python.org/pipermail/pytho ... 34518.html
九天星 写了:PEP8是用来测试py的么?
用来检查代码是否符合 pep8 规范。建议阅读下文参考链接
参考 https://www.python.org/dev/peps/pep-0008/
九天星 写了:那以后的提示中如果是776行,是不是就要在775行找问题?
在某些情况下的确是这样。
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
回复