python基础语法学习笔记
2019-02-07
- 标识符:在 Python 里,标识符由字母、数字、下划线组成。在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。Python 中的标识符是区分大小写的。以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入。以双下划线开头的 __foo 代表类的私有成员,以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。Python 可以同一行显示多条语句,方法是用分号 ; 分开。
- 多行语句:Python语句中一般以新行作为语句的结束符。但是我们可以使用斜杠( \)将一行的语句分为多行显示。
- 字符串输出:
#字符串输出
str="hello world!!!"
print (str)
print(str[1:])
print(str[:2])
print(str[2:4])
print("end") - 数字(number):int,float,complex。
- 数字类型转换:int(x),float(x),complex(x),complex(x,y)。
- 字符串: str="123456" ;str='123456'。
- 格式化输出:
str="hello world!!!"
str1='17317753127'
print("我手机号码是:{0},你好世界的英文是:{1}".format(str1,str)) - 列表:列表元素可以重复,可以更改。
list=["list",'list','list']
list2=[1,2,3,3,3]
print(list,list2) 输出结果:['list', 'list', 'list'] [1, 2, 3, 3, 3] 删除列表元素:del (list[1]) - 元祖:元素不可更改,静态的。可以拼接。可以使用del语句来删除整个元组,删除后不存在定义的元祖,可以重复。
tup = ('gogo','bibi',1,2,2)
tup2 = (1,2)
tup3=tup+tup2;print (tup3)
print ("tup3:{0}".format(tup3))
del (tup3) - 字典:键值对,键不可重复,可以修改,删除。
dict={'name':'xu','phone':'17317753127','age':26}
print (dict['name'],dict['age'])
print('全部输出:',dict)
#修改字典
dict['age']=28;print(dict['age'])
#删除字典
del dict['name']
print(dict['name']) #删除字典name
dict.clear() #清空字典
del dict
print(dict) - 集合:集合(set)是一个无序的不重复元素序列,创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
a = set() #创建一个空集合
a = {'a','b','c','a'}
b = set((1,2,3,4))
print(a)#不会输出两个a,可以去重复元素。
#集合基本操作
a.add('x') # 添加元素
a.update('aa') #添加元素
a.remove('x') #移除元素,不存在会发生错误
b.discard(1) #移除元素,不存在会发生错误
a.pop() #随机删除元素 - 条件控制:if ..else..
value='123'
if value=='123':
print(value)
else:print('456') - 循环语句:while ....else for x in xx:
n=5
while n<=10:
n=n+1
print(n)
else: print('循环结束')
print(n)
for a in range(10):
print(a,end=',')
if a>=9:
print ('结束循环') - 迭代器与生成器:迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter() 和 next()。字符串,列表或元组对象都可用于创建迭代器:在 Python 中,使用了 yield 的函数被称为生成器(generator)。跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。调用一个生成器函数,返回的是一个迭代器对象。
c=set((1,2,3,4,5))
it=iter(c) #创建一个迭代器对象
for x in it:
print(x,end=',') - python 数据结构:
def trans(list): #矩阵转换函数(只适用于规则矩阵)
tran_end=[]
n=list
lenrow=n.__len__()
m=n.__iter__().__next__()
lencol=m.__len__()
print("此矩阵是{0}*{1}矩阵".format(lenrow,lencol))
print("转换前矩阵:",n)
print("····矩阵转换开始·····")
#tran_end=[[row[i] for row in n]for i in range(lencol)]
for i in range(lencol):
tran_end.append([row[i] for row in n])
print('····矩阵转换结束·····')
print("转换后矩阵:",tran_end)
trans(list1)#不规则矩阵转换
list1=[[0,2],[1],[4,5,6],[]] #4*3矩阵
def change(list):
n = list
m=[]
maxrow=n.__len__()
for row in n:
a=row.__len__()
m.append(a)
maxcol=max(m)
print(maxrow,maxcol)
# 检测每一个row ,若一个row的len<maxcol 则填充元素直至达到maxcol
new_list=[];
for row_list in n:
for i in range(maxcol):
if row_list.__len__() < maxcol:
row_list.append(0)
#print(row_list)
print(row_list)
new_list.append(row_list)
print(new_list)
new_list=[[row[i] for row in new_list] for i in range(maxcol)]
print(new_list)
change(list1)
-----拯救众生----