[Intern][2019.03.28]Python 采坑合集
Python 采坑合集
太久不写python,已经忘记以前学习的时候遇到了那些坑坑洼洼的地方了,开个帖子来记录一下,以供日后查阅
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
0x01
字符串的单双引号问题:
Python不是JS,也不是Shell,单双引号在执行上没有任何差别。只不过字符串包含单(双)引号的手,包裹字符串的引号需要是双(单)引号。
0x02
含参数的脚本调用:
python filename.py arg1 arg2 ag3 ==> sys.argv # sys.argv == ["filename.py", "arg1", "arg2", "arg3" ]
0x03
"IndentationError: unindent does not match any outer indentation level" :
很有可能因为你在一行代码的缩进里面混着用了空格和tab -- 建议写代码之前把编辑器的tab缩进替换成四个空格,这样就永远不会出现“混着用空格tab”的问题了。
当然还有可能是你没对齐代码,比如本来用四个空格的缩进表示代码块,你有一部分代码块用的三个空格,也会报这个错。
0x04
"NameError: name 'n' is not defined":
针对input函数,这是一个Python2.7的报错。习惯了python3.x之后,我们不知道python2.x使用的 input() 函数和3.x使用的有所不同。
**2.7**
有两种 获取标准输入 的函数,他们分别是 "input()" 和 "raw_input()", 后者行为方式和现在使用的 input 函数相似,接受的所有内容均视为字符串,而前者则需要输入的时候符合编程规则,如下图所示
可以看出两种函数对不同输入的支持程度是不同的。
0x05
“SyntaxError: invalid character in identifier”:
他会具体给你标出来那里引发的这个问题,如下所示:
1 def test(user): 2 ^ 3 SyntaxError: invalid character in identifier
你需要回到代码看看它标记出来的那个字符,你是不是用成了中文字符,这个问题尤其常见在冒号的使用上!