Python(2) 基础语法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/irving512/article/details/78119192

1. 模块

1.1. 从某模块导入函数

import somemodule
from somemodule import somefunction
from somemodule import somefunction, anotherfunction, yetanotherfunction
from some module import *

# 若两个模块拥有相同名称的函数
import somemodule1
import somemodule2
somemodule1.somefuntion()
somemodule2.somefuntion()

2. 赋值

# 多个赋值操作同时进行
x, y, z = 1, 2, 3
# 可以直接用作交换变量
x, y = y, x
# 本质过程,序列解包
values = y, x
x, y = values

# 链式赋值
x = y = somefuntion()

3. 条件

  • 会被看成假(False)的值:False, None, 0, "", (), [], {}
  • ==,值相等,等价于Java中的equals
  • is,同一性运算符,等价于Java中的==
  • in,成员资格运算符
  • 字符串根据字典序排列,大小写敏感
  • 序列比较
    • 比较对应元素(要求对应元素必须可比较)
    • 若序列长度不同,先比较开始的元素,若所有元素相同,则长度大的序列>长度小的序列
  • 布尔运算符:and or not,短路运算。
  • 断言:assert

4. 循环

  • rangexrange的区别:
    • range生成序列
    • xrange生成一个数
  • zip函数:
    • 把两个序列压缩在一起,返回一个元组列表。
    • 可以处理长度不同的序列,短的序列用完时停止。
  • enumerate函数:提供索引与值的key-value对。
  • 循环的else语句:在没有调用break的时候执行。
for i in range(1, 10):
    if i % 5 == 0:
        break
else:
    print('didn't find it')
  • 列表推导式:利用其他列表创建新列表
[x*x for x in range(10)]
[x*x for x in range(10) if x % 3 == 0]
[(x, y) for x in range(3) for y in range(3)]

5. 函数

5.1. 形参

  • 可以有关键字
  • 可以有默认值
  • 由于可以有关键字、有默认值,所以不需要重载(与Java相比)
  • ***形参
    • *形参用于获取任意多个参数(非关键字参数,格式为元组)
    • **形参 用于获取任意多个关键字参数(格式为字典)
    • *必须在**之前。
    • 实参列表不能任意,必须为:定义的参数,任意多的非关键字参数,任意多的关键字参数,否则报错。
    • */**还可以用在将序列/字典转换为实参。
def func(c='1'): print(c)
func(**{'c':'123'})#输出结果为123

def add(a, b): print(a+b)
add(*(1,2)) # 输出3

5.2. 作用域

# 查看当前作用域内的参数
vars()

# 查看全局作用域参数
global()

a = 1
b = 2
def func():
    a = 3
    print(a) # 局部变量覆盖全局变量
    print(global()['a']) # 调用全局变量
    print(b) # 直接调用全局变量
    global c # 在局部作用域内新建全局变量
    c = 3 

猜你喜欢

转载自blog.csdn.net/irving512/article/details/78119192