您的位置:首页 > 编程语言 > Python开发

新手Python上路 不断更新碰到的各类bug

2016-09-22 02:19 211 查看
Greetings,

最近某公司的OA强制要求C++或者Python,尼玛赤裸裸的歧视Java选手,不能忍啊,虽然说学C++这样开发语言通吃了,不过想想当年学C语言那指针蛋疼的操作,**P *&p什么的完全不知道在干什么,再加上如果写C++又得学习一遍库函数,毕竟说白都是靠着库活的,什么HashSet HashMap PriorirtQueue有哪些方法,怎么用。。当然学C++的好处是可能syntax跟Java差不多。但是还是决定搞一门脚本script语言了! P.S. matlab也是脚本语言但是嘛,工业界没人用,所以学术界用到爆的东西并不能被接纳拿出去找工作,除非是research
lab的职位还有可能。

好了,于是新手下好了PyCharm,打开设置成Android Studio一样的Darcula主题,不错不错,字号一改,嗯舒服多了。然后新建了个test.py,输入

print "Hello word!"
SyntaxError: Missing parentheses in call to 'print'


居然报错。。。卧槽,就一行代码至于吗.. 还好互联网上的blog还是很多的,这里给了一个清晰的解答:

这个消息的意思是你正在试图用python3.x来运行一个只用于python2.x版本的python脚本。

print"Hello world"

上面的语法在python3中是错误的。在python3中,你需要将helloworld加括号,正确的写法如下

print("Hello world")


第一个bug就此解决。特发一blog开创python的篇章(其实Java也就一个blog还是转的。。主要是遇到的bug都忘记记录了。。)。

9/23 UPDATE:

昨天做了前面说的某金融公司的OA,昨天强行看了一天python,然后晚上边google边做的。。最后1分钟才做完。。

不知道是不是楼主理解不对,新建二维数组Java: new int[len][len]。到了python,好像不能直接a = [[]],这样的话去访问a[row][col]会报错??我是强行把数组初始化了,有python大神指点一下嘛。。

a = [[]]
a[0][1] = 3
print(a)

a[0][1] = 3
IndexError: list assignment index out of range


1、基本方法。

lst = [1, 2, 3, 4, 5]

2、初始化连续数字。

>>> lst = [n for n in range(5, 10)]
>>> print(lst)
[5, 6, 7, 8, 9]

3、初始化n个相同值。(两种方式)

>>> lst = ['x' for n in range(5)]
>>> print(lst)
['x', 'x', 'x', 'x', 'x']
>>> lst = ['z']*5
>>> print(lst)
['z', 'z', 'z', 'z', 'z']
>>> lst = [0]*3
>>> print(lst)
[0, 0, 0]

4、Python的四种数据类型字典、集合、列表、元组,分别用花括号、中括号、小括号表示。如:

字典:dic={'a':12, 'b':34}
集合:s = {1, 2, 3, 4}
列表:li=[1, 2, 3, 3]
元组:tup=(1, 2, 3, 4)    #元组是不可更改的列表


遇到的其他bug:

字符转整数,java: char a - 'a';python int()或者ord()。前者int()还报错,说ValueError: invalid literal for int() with base 'z' 

网上搜了一下也没解决方法,还好找到了另外一个函数ord.. 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python Bug