01初始变化量

在Python里,一个表达式中的名字在它被赋值之前是没法使用的。这是有意而为的:这样能避免一些输入失误,同时也能避免默认究竟应该是什么类型的问题(0,None,””,[],?)。记住把计数器初始化为0,列表初始化为[],以此类推。

02从第一列开始

确保把顶层的,未嵌套的代码放在最左边第一列开始。这包括在模块文件中未嵌套的代码,以及在交互提示符中未嵌套的代码。Python使用缩进的办法来区分嵌套的代码段,因此在你代码左边的空格意味着嵌套的代码块。除了缩进以外,空格通常是被忽略掉的。

03缩进一致

在同一个代码块中避免讲tab和空格混用来缩进,除非你知道运行你的代码的系统是怎么处理tab的。否则的话,在你的编辑器里看起来是tab的缩进也许Python看起来就会被视作是一些空格。保险起见,在每个代码块中全都是用tab或者全都是用空格来缩进;用多少由你决定。

04在函数调用时使用括号

无论一个函数是否需要参数,你必须要加一对括号来调用它。即,使用function(),而不是function。Python的函数简单来说是具有特殊功能(调用)的对象,而调用是用括号来触发的。像所有的对象一样,他们也可以被赋值给变量,并且间接的使用他们:x=function:x()。

在Python的培训中,这样的错误常常在文件的操作中出现。通常会看到新手用file.close来关闭一个问题,而不是用file.close()。因为在Python中引用一个函数而不调用它是合法的,因此不使用括号的操作(file.close)无声的成功了,但是并没有关闭这个文件!

05在Import时不要
使用表达式或路径

在系统的命令行里使用文件夹路径或者文件的扩展名,但不要在import语句中使用。即,使用import mod,而不是import mod.py,或者import dir/mod.py。

在实际情况中,这大概是初学者常犯的第二大错误了。因为模块会有除了.py以为的其他的后缀(例如,.pyc),强制写上某个后缀不仅是不合语法的,也没有什么意义。

和系统有关的目录路径的格式是从你的模块搜索路径的设置里来的,而不是import语句。你可以在文件名里使用点来指向包的子目录(例如,import dir1.dir2.mod),但是最左边的目录必须得通过模块搜索路径能够找到,并且没有在import中没有其他路径格式。

不正确的语句import mod.py被Python认为是要记在一个包,它先加载一个模块mod,然后试图通过在一个叫做mod的目录里去找到叫做py的模块,最后可能什么也找不到而报出一系列费解的错误信息。

06不要在Python中写C代码

以下是给不熟悉Python的C程序员的一些备忘贴士:

在if和while中条件测试时,不用输入括号(例如,if (X==1):)。如果你喜欢的话,加上括号也无妨,只是在这里是完全多余的。

不要用分号来结束你的语句。从技术上讲这在Python里是合法的,但是这毫无用处,除非你要把很多语句放在同一行里(例如,x=1; y=2; z=3)。

不要在while循环的条件测试中嵌入赋值语句(例如,while ((x=next() != NULL))。在Python中,需要表达式的地方不能出现语句,并且赋值语句不是一个表达式。

07在打开文件的调用不使用模块搜索路径

当你在Python中调用open()来访问一个外部的文件时,Python不会使用模块搜索路径来定位这个目标文件。它会使用你提供的绝对路径,或者假定这个文件是在当前工作目录中。模块搜索路径仅仅为模块加载服务的。

08不同的类型
对应的方法也不同

列表的方法是不能用在字符串上的,反之亦然。通常情况下,方法的调用是和数据类型有关的,但是内部函数通常在很多类型上都可以使用。举个例子来说,列表的reverse方法仅仅对列表有用,但是len函数对任何具有长度的对象都适用。

09不能直接改变
不可变数据类型

记住你没法直接的改变一个不可变的对象(例如,元组,字符串):

T=(1,2,3)

T[2]=4 #错误

用切片,联接等构建一个新的对象,并根据需求将原来变量的值赋给它。因为Python会自动回收没有用的内存,因此这没有看起来那么浪费:

T=T[:2]+(4,)

#没问题了,T变成了(1, 2, 4)

10使用简单的for循环
而不是while或range

当你要从左到右遍历一个有序的对象的所有元素时,用简单的for循环(例如,for x in seq:)相比于基于while-或者range-的计数循环而言会更容易写,通常运行起来也更快。

除非你一定需要,尽量避免在一个for循环里使用range:让Python来替你解决标号的问题。在下面的例子中三个循环结构都没有问题,但是第一个通常来说更好;在Python里,简单至上。

S="lumberjack"

for c in S:print c #最简单

for i in range(len(S)):print S[i] #太多了

i=0 #太多了

while i

i+=1

↓↓↓↓点击,查看更多新闻

python里unexpected eof while parsing_使用Python编程时的10个注意事项相关推荐

  1. python里row是什么意思_row python

    1.python脚本中经常第一句出现#!/usr/bin/env python或#!/usr/bin/python.这句话的意义下面解释: 脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用 ...

  2. python里load什么意思_【python】json中load和loads区别

    相同点 dump 和 dumps 都实现了序列化 load 和 loads 都实现反序列化 变量从内存中变成可存储或传输的过程称之为序列化 序列化是将对象状态转化为可保存或可传输格式的过程. 变量内容 ...

  3. set在python里是什么意思_set在python里的含义和用法

    set在python里是什么意思? set是一组数,无序,内容又不能重复,通过调用set()方法创建: >>> s = set(['A', 'B', 'C']) 对于访问一个set的 ...

  4. 在python里是什么意思_在Python中$是什么意思?

    相关课程推荐 Python全栈+人工智能VIP课程,手把手带领大家从零基础学习Python语言.网络爬虫.数据分析以及人工智能应用开发.结合实际项目案例,由浅入深.全面系统地培养大家的独立开发能力,以 ...

  5. python语言的两种注释方法_python编程时添加中文注释的方法

    python编程时添加中文注释的方法 发布时间:2020-08-24 17:09:52 来源:亿速云 阅读:77 作者:小新 这篇文章主要介绍python编程时添加中文注释的方法,文中介绍的非常详细, ...

  6. python里的π怎么调用_用python计算圆周率π

    用python计算圆周率π 一.要求 1.要起义能计算到圆周率后面越多位越好. 2.用进度条显示计算的进度,能给出越多种进度条越好. 3.要求给出圆周率π的具体公式或者算法说明. 二.算法 1.马青公 ...

  7. append在python里是什么意思_append在python里是什么意思

    网上有很多对这两个函数的区别讲解,但我觉得都讲的不是很清楚,记忆不深刻.这样解释清楚且容易记住. list.append(object) 向列表中添加一个对象object list.extend(se ...

  8. python里str什么意思_str在python中是什么意思

    左堂膏药(一盒10贴) 颈肩腰腿关节疼痛怎么办?我推荐你用[左堂膏药]一贴止痛,减少复发,哪疼贴那里,左堂黑膏药,传承中医疗法! 左堂膏药适用范围: 适于用四肢关节(网球肘.腱鞘炎.关节炎.足跟炎.膝 ...

  9. python里面的dict和set

    python里面的dict和set dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速 ...

最新文章

  1. linux集群无密码访问,Linux服务器集群通过SSH无密码登录
  2. JavaWeb基础之JdbcUtils工具类2.0
  3. 设置VMware随系统开机自动启动并引导虚拟机操作系统
  4. 我的未来规划最新版本
  5. Nginx HTTP User_agent
  6. Linux运维工程师的十个基本技能点
  7. 关于VCP(Virtual Com Port)拓展的调试经历(一)
  8. iOS一次定位解决方案(基于高德iOS SDK)
  9. web前端之HTML
  10. HTML 去调table表单里面td之间的间距
  11. fedora9光盘挂载
  12. python卡方拟合性检验_卡方分布、卡方独立性检验和拟合性检验理论及其python实现...
  13. php strpos 性能,PHP中的stristr(),strstr(),strpos()速度比較
  14. linux 进程堆管理,对Linux堆内存释放的总结
  15. 美通企业日报 | 无锡国际生命科学创新园开园;本特勒与恒大汽车博世实现合作...
  16. SSRF漏洞之常见Bypass篇
  17. springcloud+fastdfs在docker中设置防盗链
  18. linux 修改百度网盘界面 字体大小
  19. (六)python网络爬虫(理论+实战)——常见数据格式及解析方法
  20. Android9.0 Launcher启动Activity详解(一)

热门文章

  1. 题目1251:序列分割(DFS+剪枝)
  2. Activity的切换动画
  3. MOCTF-火眼金睛
  4. 虚拟机网络设置方法——转载
  5. 四.Android adb命令(持续更新...)
  6. C# 获取字符串长度 获取字符串字节长度
  7. 移动端给img加上max-width:100%
  8. C++ string(转)
  9. 图的数组(邻接矩阵)存储结构
  10. C# 3.0 New Language Features (Part 1)