python基础,一篇到底
(1) 数字
1.数据类型
a=123 #整数
b=1224.56 #浮点数
c=True #布尔型
d=5+4j #复数
2.数字的删除
del a
print(a)
# name 'a' is not defined
3.数字类型转换
b=1224.56
print(int(b)) #1224
4.数学运算
加(+) 减(-) 乘(*) 除(/ 返回浮点数 // 返回整数) 取余(%) 乘方(**)
(2) 字符串
1.转义字符
2.字符串提取,切片,拼接,是否包含,格式化
var='python'
print(var[0]) #p
print(var[1:3]) #yt
print(var+'123') #python123
print('th' in var) #True
print("我是%s班的学生"%('五'))
(3) 数据结构组成
1.序列类型
字符串(String) ,列表(list), 元组(tuple) ,unicode字符串, buffer对象,xrange对象
2.映射类型
映射类型是储存了对象与对象之间的映射关系的数据结构类型,python中唯一的映射类型的数据类型是字典
3.集合类型
可变集合(set),不可变集合(frozenset)。集合中的元素不能重复出现且相对唯一,并且元素不存在排列数序
(4) 可变数据类型与不可变数据类型
可变 | 不可变 |
---|---|
列表(list),字典(dict) | 字符串(String) ,元组(tuple) |
(5) 列表
1.创建列表
list = [1,2,3,4,5,6,7,8,9]
2.列表索引
print(list[0])#1
3.列表的提取与切片
print(list[3:6])#[4,5,6]
4.列表常用函数与方法
添加
append
list = ['张三','李四','王五']
list.append('赵六')
print(list) #['张三', '李四', '王五', '赵六']
extend
list1 = [1,2,3,4]
list.extend(list1)
print(list)#['张三', '李四', '王五', '赵六', 1, 2, 3, 4]
insert
list.insert(4,'刘七')
print(list)#['张三', '李四', '王五', '赵六', '刘七', 1, 2, 3, 4]
删除
del
del list[0]
print(list)#['李四', '王五', '赵六', '刘七', 1, 2, 3, 4]
pop
list.pop(-1)
print(list)#['李四', '王五', '赵六', '刘七', 1, 2, 3]
remove
list.remove('李四')
print(list)#['王五', '赵六', '刘七', 1, 2, 3]
修改
list[3]=10
print(list)#['王五', '赵六', '刘七', 10, 2, 3]
复制
list_copy=list.copy()
print(list_copy)#['王五', '赵六', '刘七', 10, 2, 3]
列表元素位置查询
print('张三' in list)#False
5.列表其他常用操作
方法与函数 | 作用 | 实例 |
---|---|---|
+ | 合并列表 | [1,2]+[3,4] — [1, 2, 3, 4] |
* | 重复合并一个列表多次 | [‘a’,‘b’]*2 — [‘a’, ‘b’, ‘a’, ‘b’] |
len | 获得列表长度 | len([1,2,3,4]) — 4 |
max | 获得最大值 | max([1,2,3,4]) — 4 |
min | 获得最小值 | min([1,2,3,4]) — 1 |
list.count() | 统计某元素在列表中出现的次数 | [1,2,1].count(1) — 2 |
list.reverse() | 反转列表中的元素 | list = [1,2,3] list.reverse() print(list) #[3, 2, 1] |
list.sort() | 对原列表进行排序,如果reverse=True是降序,反之是升序 | list = [2,1,9,3] list.sort() print(list) list.sort(reverse=True) print(list) |
list.clear() | 清空列表 | list.clear() — [] |
(6)元组
1.创建元组
tuple = (1,2,3,4,5,6,7,8,9)
2.元组索引
print(tuple[0])#1
3.元组的提取与切片
print(tuple[3:6:1])#(4, 5, 6)
4.元组解包
tuple = (1,2,3,4)
a,b,c,d=tuple #解包
print(a,b,c,d)#1 2 3 4
constant =tuple((('r',10),3.1416))
(x,y),z=constant
print(x,y,z) # r 10 3.1416
python中有多重赋值语句,由于创建元组时可以省略圆括号,因此,元组解包可以看成多重赋值语句
t='a','b'
print(type(t)) #<class 'tuple'>
a,b,c,d=1,2,3,4 #多重赋值语句
print(a,b,c,d)
5.列表常用函数与方法
方法与函数 | 作用 | 实例 |
---|---|---|
+ | 合并元组 | (1,2)+(3,4) — (1, 2, 3, 4) |
* | 重复合并一个元组多次 | (‘a’,‘b’)*2 — (‘a’, ‘b’, ‘a’, ‘b’) |
in | 判断是否存在,存在为True,否则为Flase | ‘a’ in (2,‘a’,‘b’) — True |
len | 获得元组长度 | len((1,2,3,4) — 4 |
max | 获得最大值 | max((1,2,3,4) — 4 |
min | 获得最小值 | min((1,2,3,4)) — 1 |
tuple.count() | 统计某元素在元组中出现的次数 | (1,2,1).count(1) — 2 |
tuple.index() | 获取某元素在元组中第一次出现的位置索引 | t=(1,2,‘a’,2) t.index(2) — 1 |
sorted() | 创建对元组排序后的列表 | t=(2,1,9,3) sorted(t) — [1,2,3,9] |
del | 删除整个元组 | t=(2,1,9,3) del t — NameError: name ‘t’ is not defined |
(7)字典
1.创建字典
字典使用{}创建,里面是一系列的键值对,其中键名不可以重复,如果重复会被后面的值覆盖
dict = {'1':"空调",'2':"电视",'1':"洗衣机"}
print(dict) #{'1': '洗衣机', '2': '电视'}
还可以使用dict()创建字典,里面传入列表或元组,转换为字典类型
dict1 = dict(([1,"空调"],[2,'电视']))#元组
dict2 = dict([[1,"空调"],[2,'电视']])#列表
print(dict1) #{1: '空调', 2: '电视'}
print(dict2) #{1: '空调', 2: '电视'}
最后还可以直接向dict中传入键值
dict = dict(name="zhangsan",age=18,gender="male")
print(dict) #{'name': 'zhangsan', 'age': 18, 'gender': 'male'}
2.获取字典元素
通过键名获取
dict = dict(name="zhangsan",age=18,gender="male")
print(dict['name']) #zhangsan
通过get()方法传键名获取
dict = dict(name="zhangsan",age=18,gender="male")
print(dict.get('name'))#zhangsan
print(dict.get('zhangsan'))#None
print(dict.get('zhangsan',"没有该键"))#没有该键
3.字典常用函数和方法
添加字典元素
dict = dict(name="zhangsan", age=18, gender="male")
print(dict) #{'name': 'zhangsan', 'age': 18, 'gender': 'male'}
dict['class']='5'
print(dict) #{'name': 'zhangsan', 'age': 18, 'gender': 'male', 'class': '5'}
删除字典元素
student = dict((['name','zhangsan'],('age',20),'xy',('d',{1:2})))
print(student) #{'name': 'zhangsan', 'age': 20, 'x': 'y', 'd': {1: 2}}
del student['age'] #删除键为age的值
print(student) #{'name': 'zhangsan', 'x': 'y', 'd': {1: 2}}
student.pop('name') #删除键为name的值
print(student) #{'x': 'y', 'd': {1: 2}}
student.clear() #清空
print(student) #{}
修改元素
dict = {'name': 'zhangsan', 'age': 18}
print(dict) #{'name': 'zhangsan', 'age': 18}
dict['name']='lisi'
print(dict) #{'name': 'lisi', 'age': 18}
获取和查询所有字典信息
dict = {'name': 'zhangsan', 'age': 18, 'gender': 'male'}
print("所有键: ",dict.keys())
print("所有值: ",dict.values())
print("所有键值对: ",dict.items())
print("转换为列表: ",list(dict.values()))
if 'name'in dict:
print(dict['name'])
—OUT:—
所有键: dict_keys(['name', 'age', 'gender'])
所有值: dict_values(['zhangsan', 18, 'male'])
所有键值对: dict_items([('name', 'zhangsan'), ('age', 18), ('gender', 'male')])
转换为列表: ['zhangsan', 18, 'male']
zhangsan
(8)集合
1.创建集合
创建集合的方法是{}或set(),{}中可以是数字,字符串,元祖,()中是元组或列表
2.集合的运算
差集:s1.symmetric_difference(s2) 或 s1^s2
s1 = set('hi')
s2 = set('python')
print(s1^s2) #{'y', 't', 'p', 'o', 'i', 'n'}
交集:s1.intersection 或 s1 & s2
s1 = set('hi')
s2 = set('python')
print(s1&s2) #{'h'}
并集:s1.union(s2) 或 s1|s2
s1 = set('hi')
s2 = set('python')
print(s1|s2) #{'i', 'p', 'o', 'n', 'h', 'y', 't'}
判断s1是不是s2的子集:s1.issubset(s2) 或 s1 <= s2
s1 = set('h')
s2 = set('python')
print(s1 <= s2) #True
判断s1是不是s2的父集:s1.issuperset(s2) 或 s1>=s2
s1 = set('h')
s2 = set('python')
print(s1 <= s2) #Flase
s1中不存在s2的元素:s1.difference(s2) 或 s1- s2
s1 = set('h')
s2 = set('python')
print(s1 - s2) #set() 以s1看只有一个元素h,在s2中存在,没有不存在的元素,所以返回空
print(s2 - s1) #{'p', 't', 'y', 'o', 'n'} 以s2看,p在s1没有,结果里有p,以此类推,h存在所以结果里没有h
3.集合的常用函数与方法
函数和方法 | 作用 | 实例 |
---|---|---|
add() | 添加一个元素 | s1 = {‘a’,‘b’} s1.add(‘c’) — {‘a’, ‘c’, ‘b’} |
update() | 合并两个集合 | s1 = {‘a’,‘b’} s2 = {‘c’,‘d’} s1.update(s2) — {‘c’, ‘a’, ‘d’, ‘b’} |
pop() | 删除一个元素(当集合对象是空是,返回错误信息) | s1 = {‘a’,‘b’} s1.pop() — {‘a’} |
remove() | 删除指定的一个元素 | s1 = {‘a’,‘b’} s1.remove(‘a’) — {‘b’} |
clear() | 清空集合 | s1 = {‘a’,‘b’} s1.clear() — set() |
in | 查询元素是否存在集合中 | s1 = {‘a’,‘b’} print(‘a’ in s1) — True |
len() | 获取元素个数 | s1 = {‘a’,‘b’} print(len(s1)) — 2 |
copy() | 赋值集合 |
(9)流程控制语句
1.if条件语句
grade = float(input("Enter a grade: ")) #85
if grade>80:
print("优秀")
elif grade>60:
print("良好")
else:
print("不及格")
OUT:优秀
2.while循环控制语句
首先判断while后面表达式,如果条件为真(true
),则执行循环体内的代码块;如果条件为假(false
),则跳过循环体,直接执行 while
循环之后的代码。
sum = 0
i = 1
while i <= 10:
sum += i
i += 1
print(sum) # 输出 55
3.for循环语句
str = 'hello'
for i in str:
print(i,end=" ") #h e l l o
4.range()函数的作用
range()函数是python的内置函数,返回连续相加的整数,生成一个列表对象,通常在for循环中作为索引。
range()中有三个参数,起始值,结束值(不包含),步长(可选,默认为1)
for i in range(5):
print(i,end=" ")
#0 1 2 3 4
for j in range(1,10,2):
print(j,end=" ")
#1 3 5 7 9
str = "hello"
for i in range(5):
print(str[i],end=" ")
#h e l l o
5.break,continue,pass语句
break:终止循环语句
str = "python"
for i in str:
if(i.__eq__('o')):
break
print(i,end=' ')
#p y t h
continue:跳过当前语句,执行下一次循环
str = "python"
for i in str:
if(i.__eq__('o')):
continue
print(i,end=' ')
# p y t h n
pass:占位语句
str = "python"
for i in str:
if(i=='p'):
pass
print("找到了")
print(i,end=' ')
# 找到了
# p y t h o n
(10)函数
1.自定义函数
def fun_sum():
sum = 0
for i in range(11):
sum += i
print(sum)
fun_sum() # 55
2.设置函数参数
默认参数
def fun_sum(n):
sum = 0
for i in range(n + 1):
sum += i
print(sum)
fun_sum(10) # 55
任意数量的位置可变参数
def fun(x, *args):
print("x=", x)
print("args=", args)
fun(1, 2, 'abc')
# x= 1 args= (2, 'abc')
fun(3)
# x= 3 args= ()
任意数量的关键字可变参数
def fun(x, *args, **keys):
print("x=", x)
print("args=", args)
print("keys=", keys)
fun(1, 2, 'abc', 'def', a=1, b=2)
# x= 1
# args= (2, 'abc', 'def')
# keys= {'a': 1, 'b': 2}
3.返回函数值
def fun_sum():
sum = 0
for i in range(11):
sum += i
return sum
print("结果:",fun_sum()) #55
4.函数嵌套
def fun_average(n):
def fun_sum():
sum = 0
for i in list:
sum += i
return sum
return fun_sum()/n
list = [67,45,66,78,89,90,56]
print("%.2f"%fun_average(len(list)))
5.匿名函数
lamba 参数1[,参数2,参数3]:表达式
sum = lambda a,b: a+b
print(sum(10,20))
补充:
打印方法
var = 'python'
print(var) #python
var = 'python'
print(f'{var}') #python
var = 'python'
print("I love %s"%var) # I love python
num = 3.1415
print("%.2f"%num) #3.14
for i in range(1,5):
print(i,end=" ") #1 2 3 4
var1 ="I"
var2 = 'python'
print("{} love {}".format(var1,var2)) # I love python
pycharm实用快捷键:
向上/下移动此行:ctrl + shift + ↑/↓
快速复制此行:ctrl + d
格式化代码:ctrl + alt + L
快速打印:假如你想打印一个值,可能是变量,也可能是返回值的函数,一般打印是print(a)
或result = fun(n) print(result)
其实只需要在fun()后面.
(点)print然后回车
![image-20240620234948432](https://img-blog.csdnimg.cn/img_convert/4ed4a316606874a51751db88eeed1143.png)
![image-20240620235106481](https://img-blog.csdnimg.cn/img_convert/6d31aa716c1b9487405dddff7eae0d77.png)