跳到主要内容

Python3 基础语法

标识符

  • 第一个字符必须是字母表中字母或下划线 \_
  • 标识符的其他的部分由字母、数字和下划线组成。
  • 标识符对大小写敏感。

在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也是允许的了。

python 保留字

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

import 与 from...import

在 python 用 import 或者 from...import 来导入相应的模块。

将整个模块(somemodule)导入,格式为: import somemodule

从某个模块中导入某个函数,格式为: from somemodule import somefunction

从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc

将某个模块中的全部函数导入,格式为: from somemodule import *

import sys
print('================Python import mode==========================')
print ('命令行参数为:')
for i in sys.argv:
print (i)
print ('\n python 路径为',sys.path)
from sys import argv,path  #  导入特定的成员

print('================python from import===================================')
print('path:',path) # 因为已经导入path成员,所以此处引用时不需要加sys.path

isinstance 和 type

在 Python 中,isinstancetype 都可以用来检查对象的类型,但它们有以下区别:

1. **isinstance**:

  • 检查对象是否是指定类或其子类的实例。
  • 支持继承关系。
  • 语法:isinstance(obj, class_or_tuple)
  • 如果传入一个元组,则可以检查多个类型。

示例

class Animal:
pass

class Dog(Animal):
pass

d = Dog()

print(isinstance(d, Dog)) # True
print(isinstance(d, Animal)) # True (因为 Dog 是 Animal 的子类)
print(isinstance(d, (Dog, str))) # True

2. **type**:

  • 严格比较对象的类型,不考虑继承关系
  • 返回对象的实际类型。
  • 语法:type(obj)

示例

print(type(d) == Dog)     # True
print(type(d) == Animal) # False (因为 d 的实际类型是 Dog,不是 Animal)

使用场景对比:

  • **isinstance**** 更灵活**:推荐在检查类型时使用,因为它考虑继承关系,适合多态场景。
  • **type**** 更严格**:适合需要精确匹配类型的场景。

总结:

  • 优先使用 isinstance,除非你明确需要判断一个对象的具体类型,而不允许继承。