Python基础

main函数

python在执行文件时,是直接从上往下执行,没有main函数,但每个文件有一个内置属性__name__,当python直接执行该文件时,属性值为__main__,当文件作为模块引入时,属性值为模块的名称,所以经常会有以下写法:

if __name__ == "__main__":
    # execute only if run as a script
    main()

命令行参数

导入模块:import sys

获取命令行参数:sys.argv

结束程序

sys.exit()

变量与作用域

当变量在Module(模块)、Class(类)、def(函数)中定义时,会有作用域的概念,示例1:

def func():
    var = 100 
    print(var)  # 100
    
func()
print(var)      # NameError: name 'var' is not defined

当变量在if-elif-else、for-else、while、try-except\try-finally等语句块中不会产成作用域,示例2:

if True:
    var = 100
    print(var)  # 100
    
print(var)      # 100

搜索变量名的优先级:局部作用域 > 嵌套作用域 > 全局作用域 > 内置作用域,示例3:

var = 100

def func():
    print(var)  # UnboundLocalError: local variable 'var' referenced before assignment
                # Python在当前作用域搜索var,由于函数中存在var,但此时尚未赋值,故报错。
    var = 300   # 如果没有 var = 300 这句代码,上述语句将会引用全局变量var,则不会报错。
    
func()
print(var)

全局变量的使用,全局作用域的作用范围仅限于单个模块文件内,示例4:

global var     # 声明全局变量
var = 100      # 给全局变量赋值

def func():
    global var # 再次声明,表示这里使用的是全局变量
    print(var) # 100
    var = 300
    
func()
print(var)     # 300

操作符

需要注意的操作符:

from __future__ import division  # 使python2除法取得小数

print(2 ** 3)       # 指数运算  结果为 8
print(18 // 10)     # 除法取整  结果为 1
print(18 / 10)      # 除法操作  在python2中会自动取整,结果为 1,python3中,结果为 1.8
                    # 如果使python2与python3结果一致,需要导入上面的模块

可用于字符串的操作符:

print("Ali" + "ce") # 连接操作  结果为 "Alice"
print("Alice" * 5)  # 复制操作  结果为 "AliceAliceAliceAliceAlice"

输入与输出

myName = input()        # python3
# myName = raw_input()  # python2
print('It is good to meet you, ' + myName)

注意:python2 中输入函数为 raw_input

for循环与range函数

# 循环 5 次,i 的值分别为 0, 1, 2, 3, 4
for i in range(5):
    print("i = " + str(i))

range 函数可以接受三个参数,分别为起始值,上限值(不包含),步长(默认为1):

# 循环 5 次,i 的值分别为 0, 2, 4, 6, 8
for i in range(0, 10, 2):
    print("i = " + str(i))

导入模块

import moduleName
from moduleName import funcName

函数的定义与调用

def hello(name):
    print("Hello " + name)
    
hello('Alice')

None值

其他编程语言可能称这个值为 null、nil、undefined

异常处理

try:
    print(5/0)
except ZeroDivisionError:
    print("You can't divide by zero!")
posted @ 2019-06-11 11:56  zhouzl  阅读(154)  评论(0编辑  收藏  举报