一、基本变量类型
Python中有如下数据类型:
Numbers(数值)、String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)、Set(集合)、bool(布尔)
- Numbers(数值)
Python中支持四种数值类型:int、long、float、complex- int:有符号整型
在python3中int类型的长度理论上是无限的只要内存装得下 - long:长整型
- float:浮点型
python变量赋值前不需要声明,如b = 2.23,自动能识别b是float类型 - complex:复数
复数分为实部和虚部,如1+2j中【1】就是实部,【2j】为虚部,在python3中即使虚部只是一个j也需要加上系数如:1+1j
- int:有符号整型
- String(字符串)
- 字符串可以使用单引号、双引号和三引号来赋值如
– a = ‘str’
– b = “str”
– c = ‘’‘str’‘’
双引号和单引号没有区别,三引号的内容可以换行,一般用于含有段落的字符内容 - 字符串切片
– str = ‘Hello’
– a = str[0:2]表示截取str字符串中0-2位置的信息,包含0但不包含2:“He”
– 省略前面则表示从0开始:str[:2];省略后面则表示到结束:str[2:] - 其他常见操作
– 字符串拼接:使用+拼接字符串:‘a’+‘b’
– print(str * 2)表示输出str两次 - 转译字符:转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\表示的字符就是
– 如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r’‘表示’‘内部的字符串默认不转义,如:print(r’\\t\') - 转码:(b’xxx’表示bytes类型)
– ‘ABC’.encode(‘ascii’) -> b’ABC’
– ‘中文’.encode(‘utf-8’) -> b’\xe4\xb8\xad\xe6\x96\x87’
- 字符串可以使用单引号、双引号和三引号来赋值如
- List(列表)
- 列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。
列表用[ ]标识,如:li = [ ‘Hello’, 786 , 2.23, ‘john’, 70.2 ] - 列表切片和字符串切片操作一样
- 列表新增
– list.append(obj) - 列表删除
– list.remove(obj) - 列表修改
– list.insert(index, obj) - 列表查询
– list.count(obj) - 列表排序
– list.sort([func])
- 列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。
- Tuple(元组)
– 元组是另一个数据类型,类似于List(列表),元组使用()来标识:tup1 = (‘physics’, ‘chemistry’, 1997, 2000)
– 元组中只有一个元素时,需要在元素后面添加逗号,例如:tup1 = (50,)
– 元组中的元素不能增删改
– 元组常见操作:
len(tuple) :计算元组元素个数。
max(tuple): 返回元组中元素最大值。
min(tuple) :返回元组中元素最小值。
tuple(seq) :将列表转换为元组。
- Dictionary(字典)
– 字典是一种无序存储结构,包括关键字(key)和关键字对应的值(value)。字典的格式为:dict = {key:value}
– 字典访问:dict[‘name’]
– 字典修改:dict['name] = ‘abc’
– 字典删除:- del dict[‘name’]; # 删除键是’name’的条目
- dict.clear(); # 清空词典所有条目
- del dict ; # 删除词典
– 字典内置方法: - len(dict) 计算字典元素个数,即键的总数。
- str(dict) 输出字典可打印的字符串表示。
- type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。
- dict.clear() 删除字典内所有元素
- dict.copy() 返回一个字典的浅复制
- dict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
- dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
- dict.has_key(key) 如果键在字典dict里返回true,否则返回false
- dict.items() 以列表返回可遍历的(键, 值) 元组数组
- dict.keys() 以列表返回一个字典所有的键
- dict.setdefault(key, default=None) 和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
- dict.update(dict2) 把字典dict2的键/值对更新到dict里
- dict.values() 以列表返回字典中的所有值
- Set(集合)
– 集合(set)和字典(dict)类似,也是一组key的集合,但不存储value,创建方式:s = set([1, 2, 3]);set是有序不重复的
– set常用方法- s.add(key)
- s.remove(key)
- bool(布尔)
– 在Python中,None、任何数值类型中的0、空字符串""、空元组()、空列表[]、空字典{}都被当作False,还有自定义类型,如果实现了__nonzero__()或__len__()方法且方法返回0或False,则其实例也被当作False,其他对象均为True
– PS:False和True的首字母是大写
- None
– 表示该值是一个空对象,空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
二、条件和循环语句
条件
- if
if a > 10:
todo
- if…else
if a > 10:
todo
else:
todo
- if…elif …else
if a > 10:
todo
elif a<-10:
todo
else:
todo
循环
- while
while n < 101:
sum = sum + n
n = n + 1
- for … in …
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
- continue, break和pass
– 循环里如果我们想终止本次循环,可以使用continue
– 如果想终止整个循环,则使用break
– Python里使用pass表示空语句,即啥也不做
三、函数
函数定义
- 函数代码块以def关键词开头,后接函数标识符名称和圆括号()。
- 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号起始,并且缩进。
- Return[expression]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None
def functionname( parameters ): "注释。。。" todo... return [expression]
函数调用
- 定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构
#定义函数 def printme( str ): "打印任何传入的字符串" print(str); return; # 调用函数 printme("我要调用用户自定义函数!"); printme("再次调用同一函数");
参数
- 必选参数:fun(name, age)
必选参数也称位置参数。必选参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。必须传入对应参数,否则会出现语法错误 - 默认参数:fun(name=‘yjc’, age=18)
调用函数时,默认参数的值如果没有传入,则被认为是默认值
可变参数
- 可变参数:fun(*args)
顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。
关键字参数
- 关键字参数:fun(name, age, **kw)
关键字参数允许我们在传入必选参数外,还可以接受关键字参数kw
实际上,关键字参数kw是个dict,如果我们已经准备好了dict,只需要在前面加**就可以转换为参数传入def person(name, age, **kw): "关键字参数让我们保证能接收到name和age这两个参数,但是,如果提供更多的参数,我们也能收到" print('name:', name, 'age:', age, 'other:', kw)
param = {'gender': 'M', 'job': 'Engineer'} >>> person('Adam', 45, **param) name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
- 命名关键字参数:fun(name, age, *, city)
如果要限制关键字参数的名字,就可以用命名关键字参数,例如,只接收city和job作为关键字参数。这种方式定义的函数如下:def person(name, age, *, city, job): print(name, age, city, job) # 调用: person('yjc', 22, city='Beijing', job='IT')
返回值
- Python里函数可以返回多个值:
#其实这只是一种假象,返回值是一个tuple! #但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple, #按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便 def updPoint(x, y): x+=5 y+=10 return x,y x,y = updPoint(1,2) print(x,y)