一、基本数据类型
整型、浮点型、布尔型内容略
1、字符串的格式化
name='python' age=27 # 打印“我是python,今年27岁了” new_str='我是'+name+',今年'+str(age)+'岁了' print(new_str) # python2的做法 new2='我是%s,今年%d岁了'%(name,age) print(new2) # python3的做法 new3='我是{},今年{}岁了'.format(name,age) print(new3) # 当大括号比较多的时候,还可以如下做法 new4='我是{name},今年{age}岁了'.format( name='aaa', age='bbb' ) print(new4) # python3.6之后 new5=f'我是{name},今年{age}岁了' print(new5)
2、空值
二、数据结构
1、列表List
1.1、列表的创建
a=[1,2,3] b=[1,'abc',2.0,['a','b','c']] print(a) print(b) print(a[0],a[1],a[2],sep='-') c=b[1:3] s='abcdef' print(c,type(c)) print(s[1:3],s[-1],type(s))
1.2、列表的基本操作
# 一、获取列表的基本信息 list1=[9,1,-4,3,7,11,3] print('list1的长度=',len(list1)) print('list1的最大值=',max(list1)) print('list1的最小值=',min(list1)) print('list1中3这个元素出现了{}次'.format(list1.count(3))) # 二、列表的改变 list2=['a','c','d'] # 列表结尾添加新元素 list2.append('e') print('list2=',list2) # 列表元素之间添加新元素 list2.insert(1,'b') print('list2=',list2) # 删除列表元素 list2.remove('b') print('list2=',list2) # 修改列表元素 list2[0]='A' print('list2=',list2) ''' 注意这里要与字符串进行区分 a='123' a[0]='a' 报错 a='abc' 只能重新赋值 ''' # 列表翻转 list3=[1,2,3] list3.reverse() print('list3=',list3) # 列表排序 list4=[9,1,-4,3,7,11,3] list4.sort() #升序 # list4.sort(reverse=True) #降序 print('list4=',list4)
1.3、列表解析
a=[1,2,3,4,5,6,7,8] b=[item*item for item in a] print(b) c=[item for item in a if item%2==0] print(c)
2、元组Tuple(不可修改)
2.1、元组的创建及访问
# 元组的创建 a=(1,2,3) b=1, print(a,type(a)) print(b,type(b)) # 元组的访问 print(a[1]) print(a[1:]) print(a[-1])
2.2、元组的方法
# 获取元组的基本信息 tuple1=[9,1,-4,3,7,11,3] print('tuple1的长度=',len(tuple1)) print('tuple1的最大值=',max(tuple1)) print('tuple1的最小值=',min(tuple1)) print('tuple1中3这个元素出现了{}次'.format(tuple1.count(3))) print(tuple1.index(7)) #查询元素7的下标
3、字典Dictionary
3.1、字典的创建及访问
# 字典创建 a={ 1:'a', 2:'b', '3':'c' } print(a) e=dict(a=1,b=2,c='a') print(e) # 字典的访问 print(e['c']) # 字典的增加、修改 e['d']=123 e['c']=3 print(e)
3.2、字典的基本操作
d={ 'Name':'Jack', 'Age':9, 'Grade':5, } print(d.get('name')) # 避免传入字典没有的key时报错 print(d.keys()) print(d.values()) print(d.items()) c=d.pop('Name') print(c) print(d) d.clear() print(d)
4、集合Set
a={'a','b','c'} t='d' in a print(t) s=[1,2,3,2,4,5,2] s1=set(s) print(s1,type(s1),list(s1)) a='1234512' s2=set(a) print(s2) s3={1,2,3,4} s3.add(5) print(s3) s3.remove(5) print(s3)
三、逻辑思维
1、if语句
a=int(input('请输入一个数字:')) if a>0: print('这是个正数') elif a==0: print('这是零') else: print('这是负数')
2、循环语句
2.1、while循环
a=5 while a>0: print(a) a=a-1 print('结束')
2.2、for循环
a='12345' b=[1,2,3,4] c=('a','b','c','d') d={1,2,3,5,9} for i in d: # d可以换成a、b、c print(i) print('------------------------------') e={1:'a',2:'b',3:'c'} for a,b in e.items(): print('{}:{}'.format(a,b)) print('------------------------------') for i in range(1,5): print(i)
2.3、break和continue
for i in range(1,5): print(i) if i%3==0: break print('------------------------------') for i in range(6): # 0~5 if i%2==0: continue print(i)
2.4、小运用
import random a=random.randint(0,100) # 产生【0,100】之间的整数(包括0和100) while True: num=int(input('请输入0-100之间的整数:')) if num==a: print('猜对了') break elif num>a: print('猜大了,请重新猜') else: print('猜小了,请重新猜')
四、函数
1、函数的定义和调用
def sum(a,b): return a+b print(sum(5,6)) print(sum([1,2],[3,4])) def max(a): if not a: return None max_value=a[0] for i in a: if i>max_value: max_value=i return max_value a=[1,4,5,2,3,8,9] print(max(a))
2、全局的作用域
基本常识略,以全局变量举例
z=1 print(z) def demo(a): global z z=z+a print(z) demo(10) print(z)
3、可变参数
def add(*args): result=0 for i in args: result+=i return result print(add(1,2,10,20))
33
4、递归
def demo(n): if n==1: return n return n*demo(n-1) print(demo(5))
120
5、类和对象
class People: def __init__(self,name,age): self.name=name self.age=age def say(self): print('Hi,my name is {},and I am {} years old.'.format(self.name,self.age)) some=People('Jack',20) print(some.name) print(some.age) some.say()
6、继承和多态
class Animal: def eat(self): print('Animal is eating') class Bird(Animal): def sing(self): print('Bird is sing') class Dog(Animal): def eat(self): print('Dog is eating') a=Animal() a.eat() b=Bird() b.sing() d=Dog() d.eat()
7、匿名函数
def test(x,y): return x+2*y f=lambda x,y:x+2*y print(test(1,2)) print(f(1,2)) def demo(x,y,f): return f(x,y) print(demo(1,2,lambda x,y:x+2*y)) def add(n): return lambda x:n+x # 高阶函数:返回一个函数 s=add(40) # 生成s这个函数 print(s(5)) print(s(-10))
8、高阶函数map、reduce、filter
a=[1,2,3,4] for item in map(lambda x:x*x,a): print(item) s=[item for item in map(lambda x:x*x,a)] print(s) from functools import reduce ss=reduce(lambda x,y:x+y,a) print(ss) sss=[item for item in filter(lambda x:x%2==1,a)] print(sss) s4=[item for item in a if item%2==1] # 列表解析同样能实现相同功能 print(s4)