文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
基础
动态语言 vs 静态语言
动态语言:变量本身类型不固定的语言;
静态语言:在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。
python解释器常见种类
- CPython:Python官方的解释器,它是用C语言开发的,是目前使用最广泛的解释器。
- IPython:基于CPython之上的一个交互式解释器,交互方式上有所增强,代码的执行上和CPython是完全一样的。
- Jython:运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
- PyPy:它的目标是执行速度。采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
如何退出解释器提示符
- 使用函数
exit()
- Linux下按
Ctrl+D
- Window下按
Ctrl+Z
再按Enter
语言特点
- 大小写敏感的
#!/usr/bin/python3
这行告诉Linux系统应该运行哪个解释器。- 默认所有的字符串的编码是 Unicode
- 按照约定俗成的管理,应该始终坚持使用 4 个空格的缩进。
获得帮助
- help(函数名),例如
help(print)
- help('操作符名字'),例如
help('return')
按q键退出帮助。
注释
以#开头的为注释。
例如:
#this is a note
print('hello python') #this is a note
逻辑行和物理行
- 行连接,使用反斜杠\来续行
s = 'hello \ world'
- 使用分号可以将多个逻辑行写在一个物理行
a = 5; print(a)
单语句块
如果你的语句块只包含一个语句,那么你可以在条件语句或循环语句的同一行指明它。
if True: print('yes')
pass语句
表示一个空的语句块
del语句
- 删除变量(删除之后将无法再使用该变量)
a, mylist, mydict = 100, [1,2,3], {'a':1, 'b':2} del a del mylist del mydict
- 删除列表元素
del mylist[0] #删除列表指定元素 del mylist[0:1] #删除列表切片 del mylist[:] #删除整个列表
- 删除字典的一个键值对
del mydict['a']
“三元”操作(Conditional expressions)
语法:x if Condition else y
说明:如果Condition为真,表达式的值为x, 否则为y。
举例:
ret = 1 if False else 0 #ret的值为0
with语句
基本语法:
with EXPRESSION [as VARIABLE]:
DO_SOMETHING
基本思想是with对表达式所求值的对象必须有一个__enter__()
方法,一个__exit__()
方法。
步骤分解:
1)首先对 EXPRESSION
语句求值,求值后得到一个对象;
2)对象的__enter__()
方法被调用,这个方法的返回值将被赋值给as后面的VARIABLE变量;
3)执行代码块DO_SOMETHING
;
4)对象的 __exit__()
方法被调用;
对异常的处理:
1)如果__enter__
成功执行,则__exit__
总是会被调用;
2)如果在对VARIABLE
变量赋值的时候发生错误,它将和错误发生在DO_SOMETHING
一样对待;
3)如果在执行DO_SOMETHING
代码块发生异常,它的type,value,traceback
将会作为参数传给__exit__
;否则,将传三个None作为参数;
4)如果执行__exit__
时形参中检测到异常,执行完后,返回值为False则异常将再次抛出;返回值为True,则异常被认为已经处理;
例1:
class My:
def __init__(self):
print('init...')
def __enter__(self):
print('enter...')
return '123'
def __exit__(self, exc_type, exc_value, traceback): #__exit__方法的形参中描述了异常信息
print('exit...')
with My() as var:
print(var)
执行结果为:
init...
enter...
123
exit...
例2:
with open("myfile.txt") as f:
for line in f:
print(line, end="")
在执行完后,文件 f 就会被自动关闭。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论