集合
会保留下来唯一的元素
tang=[123,123,456,789]
tang=set(tang)
tang
{123,456,789}
tang=set()
type tang
set
tang=set([123,123,456,456,798])
tang
{123,456,789}
tang={1,1,1,3,4}
tang
{1,3,4}
集合的操作
a={1,2,3,4}
b={2,3,4,5}
a.union(b)
{1,2,3,4,5}
b.union(a)
{1,2,3,4,5}
a|b
{1,2,3,4,5}
a.intersection(b)
{2,3,4}
b.intersection(a)
{2,3,4}
a&b
{2,3,4}
a.difference(b)
{1}
b.difference(a)
{5}
a-b
{1}
b-a
{5}
a={1,2,3,4,5,6}
b={2,3,4}
b.issubset(a)
//True
a.issubset(b)
//False
b<=a
//True
b>a
False
a<=a
//True
a<a
//False
a={1,2,3}
a.add(4)
a
//{1,2,3,4}
a.update([4,5,6])
a
//{1,2,3,4,5,6}
a.remove(1)
a
//{2,3,4,5,6}
a.pop()
a
//{3,4,5,6}
赋值机制
tang=100
yudi=tang
id(tang)
//263811812688
id(yudi)
//2683811812688
tang is yudi
//True
yudi=123456
id(yudi)
//2683811812976
tang is yudi
//False
tang=1000
yudi=1000
id(tang)
//2683811813008
id(yudi)
//2683811812912
tang=1
yudi=1
id(tang)
//1932198384
id(yudi)
//1932198384
判断结构
tang=100
if tang>50:
print ('OK')
//OK
tang=100
if tang>200:
print('200')
elif tang<100:
print('100')
else:
print('100-200')
tang=[123,456,789]
if 123 in tang:
print('ok')
//ok`
tang=['tang':123,'yudi':456]
if 'tang' in tang:
print('OK')
//OK
循环结构
tang=0
while tang<100:
print(tang)
tang+=1
tangs=set(['tang','yu','di'])
while tangs:
tang=tangs.pop()
print(tang)
//yu
//di
//tang
tangs=set([‘tang’,‘yu’,‘di’])
for name in tangs:
print(name)
//yu
//di
//tang
for name in tangs:
print(name)
//yu
//di
//tang
tang=100
for i in range(10):
print(i)
//0
//1
//2
//3
//4
//5
//6
//7
//8
//9
tang=[123,435,1234,53245,1124,1234]
for i in range(3):
peinr (tang[i])
//123
//435
//1234
tang=[123,435,1234,513245,11243,1234,534,246]
for i in range(len(tang)):
print(tang[i])
//123
//435
//1234
//513245
//11243
//534
//246
tang=[10,11,12,13,14,15]
for i in range:
if i%2==0:
print(i)
else:
continue
print(i)
//10
//10
//12
//12
//14
//14
函数
def print_value():
print('a=',a)
print_value()
//a=10
def add_ab(a,b):
print(a+b)//return (a+b)
add_ab(3,5)
//8
tang=add_ab(a=3,b=5)
tang
//8
def add_number(a,*args):
for i in args:
a+=i
return a
add_number(1,2,3,4)
//10
def add_number2(a,**kwargs):
for arg,value in kwargs.item():
print(arg,value)
add_number(1,2,3)
y 3
x 2
def add_number(a,*args):
b=0
for i in args:
a+=i
b+=a
return a,b
a,b=add_number(1,2,3)
print(a,b)
//6 9
python的包
%%writefile tang.py
tang_v=10
def tang_add(tang_list):
tang_sum=0
for i in range(len(tang_list)):
tang_sum+=tang_list
return tang_sum
tang_list=[1,2,3,4,5]
print (tang_add(tang_list))
//Writing tang.py
%run tang.py
//15
import tang
//15
import tang
第二次导入的时候因为前面已经执行过了,所以不再执行了
print(tang.tang_V)
//10
tang.tang_V=100
tang.tang_V
//100
tang_list=[10,11,12]
tang.tang_add(tang_list)
//33
import tang as tg
tg.tang_V
//100
tg.tang_add(tang_list)
//33
from tang import tang_V,tang_add
tang_V
//100
tang_add(tang_list)
//33
from tang import *
tang_V
//100
tang_add(tang_list)
//15
import os
os.remove(‘tang.py’)
os.path.abspath(’.’)
异常处理模块
import math
for i in range(10):
try:
input_number=input(‘write a number’)
if input_number==‘q’:
break;
result=1/math.log(float(input_number))
print(result)
except ValueError:
#print(‘ValueError:input must>0’)
break
except ZeroDivisionError:
print(‘ValueError:input must>0’)
except Exception:
print(‘ubknow error’)
class TangError(ValueError):
pass
cur_list=['tang','yu''di']
while Ture:
cur_input=input()
if cur_input not in cur_list:
raise TangError('Invalid input:%s'%cur_input)
try:
print('hello')
finally:
print('finally')
//hello
//finally
try:
1/0
except:
print('==0')
finally:
print('finally')
//==0
//finally
文件操作
txt=open(‘tang.txt’)
txt=open(’./data/tang/txt’)
tet_read=txt.read()
print (txt_read)
lines=txt.readlines()
print(lines)
for line in lines:
print(‘cur_line:’,line)
txt.close()
txt.open('tang_write.txt,‘w’)
txt.write(‘jintiantianqibucuo’)
txt.write(‘tang yu di’)
txt.close()
txt=open('tang_write.txt','w')
for i in range(100):
txt.write(str(i)+'\n')
txt.close()
txt2=open('tang_write.txt','r')
print(txt2.read())
open之后必须要.close
txt=open(‘tang_write.txt’,‘w’)
try:
for i in range(100):
10/(i-50)
txt.write(str(i)+’\n)
except Exception:
print(‘error:’,i)
finally:
txt.close()
with open(‘tang_write.txt’,‘w’) as f:
f.write(‘jin tian tian qi bu cuo’)
类:面向对象
class people:
#所有实例都会共享
number=100
#构造函数,初始化方法,当创建一个类的时候也,首先会调用它
def init(self,name,age):
self.name=name;
self.age=age;
def display(self):
print(‘number=:’,people.number)
def display_name(self):
print (self.name)
//people.doc
'帮助信息:XXXXXX‘
p1=people(‘tangyudi’,30)
p2=people(‘phthon’,40)
p1.name
//‘tangyudi’
p2.name
//‘python’
p1.display()
//number=:100
p2.name=‘hello’
//‘hello’
del p2.name
hasattr(p1,‘name’)
//True
hassattr(p1,‘sex’)
//False
getattr(p1,‘name’)
//‘tangyudi’
setattr(p1,‘name’,‘yudiTang’)
getattr(p1,‘name’)
// ‘tudiTang’
delattr(p1,‘name’)
类的属性操作
print(people._doc_)
print(peoplr._name_)
print(people._module_)
print(people._bases_)
print(people._dict_)
class Parent:#定义了一个父类
number=100
def _init_(self):
print('调用父类构造函数’)
def parentM (self):
print('调用父类方法‘)
def setAttr(self,attr):
Parent.parentAttr=attr
def getAttr(self):
print('父类属性:’,Parent.parentAttr)
def newM(self):
print('父类要被重写的方法‘)
class child (Parent):#d定义子类
def _init_(self):
print('调用子类构造函数‘)
def childM(self):
print('调用子类方法’)
def newM(self):
print("子类把他给改掉了’)
c=child()
c.childM()
c.parentM()
c.setAttr(100)
c.getAttr()
c.newM()
//调用子类构造函数
//调用子类方法
//调用父类方法
//父类属性:100
```