1.copy.copy() 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。子对象(数组)修改,也会修改
2.copy.deepcopy() 深拷贝 拷贝对象及其子对象(原始对象)
目录
1.定义:变量用来临时存储运行中所需的数据
2.命名规则:
(1)标识符必须由数字、字母和下划线组成,数字不能开头
(2)标识符区分大小写
(3)变量名一般小写加下划线,不能和关键字冲突
3.类型:
integer(整数) float(浮点数) string(字符串)
不需指定类型,根据赋值来推断变量类型
4.字符串和数字的运算规则
(1)数字和数字之间可以进行所有运算
(2)数字和字符串之间只能乘法
(3)字符串和字符串之间可以进行加法
1.优缺点
优点:减少代码冗余,减少维护量;功能的封装,降低学习成本,提升开发速度
缺点:函数定义不回自动执行,函数需要调用才能执行
2.位置参数和关键字参数
位置参数:按照从左往右的顺序传递叫做位置参数
关键字参数:按照形参名字传递叫做关键字参数
位置参数一定要在关键字参数的前面
my_add(100,200,300,num4=10)
3.return关键字
(1)函数执行到return,会马上终止函数执行
(2)函数中可出现多个return,但是有且只有一个return会被执行
(3)return 单独使用,等价于 return None
4.默认参数
注意:如果一个函数设置了默认参数,那么该位置之后的所有参数都必须设置默认参数
5.按ctrl+q可查看函数功能说明
1.字符串一旦定义,不允许修改
2.字符串容器中的元素都是字符类型的
my_str='hello'
# 1.while循环方式遍历
i=0
while i<5:
print(my_str[i], end = ' ')
i+=1
print()
# 2.for循环方式遍历
for v in my_str:
print(v, end = ' ')
str='远看泰山黑乎乎,上头细来下头粗,茹把泰山倒过来,下头细来上头粗,茹'
# replace 并不会替换原本的字符串, 替换完之后返回一个新的字符串
# 未加参数,所有的‘茹’变为‘如’
new_str=str.replace('茹',‘如’)
# 加了参数,第一个‘茹’变为‘如’
new_str=str.replace('茹',‘如’,1)
# 方法一:find函数
# 1.找到字符串中‘@’位置
# 2.获得字符串中的字串
# 3.如果找到,返回第一次出现的位置;如果未找到,返回-1
user_email='lt@com.cn'
position=user_email.find('@')
if position==-1:
print('邮箱不合法')
else:
username=user_email[:position]
houzhui=user_email[position+1:]
# 方法二:split函数
user_email='lt@com.cn'
result=user_email.split('@')
print('用户名:',result[0])
print('邮箱后缀:',result[1])
user_email='lt@com.cn'
# 切片语法,左闭右开
print(user_email[0:4])
# 起始值不写表示从0开始
print(user_email[:4])
# 结束值不写表示到最后
print(user_email[0:])
# 步长(可为负数:表示从右到左)
print(user_email[0:8:2])
# 字符串逆序
print(user_email[::-1])
username=input('请输入你要注册的用户名')
# strip 函数默认去除字符串两侧的空格
new_username=username.strip()
# isalpha 判断字符串所有元素是否为字母
if new_username.isalpha:
print('注册成功')
else:
print('注册失败')
优点:
1.根据索引查找元素效率高
2.尾部插入和删除元素效率较高
缺点:
1.在制定位置插入和删除元素,会造成数据元素的移动,效率较低
2.根据关键字查找数据,效率较低
my_list=[10,20,30,40]
# while遍历
index=0
while index<len(my_list):
print(my_list[index])
index+=1
# for 遍历
for v in my_list
print(v)
my_list=[[10,20,30],[100,200,300],[1000,2000,3000]]
# while遍历
i=0
while i<len(my_list):
j=0
while j<len(my_list[i])
print(my_list[i][j])
j+=1
i+=1
# for 遍历
for i in my_list
for j in i
print(j)
# 创建空列表
my_list=[]
# append 在尾部插入元素
my_list.append(10)
my_list.append(20)
my_list.append(30)
# insert 在指定位置插入元素
my_list.insert(0,100)
# pop 根据位置删除 默认删除最后一个,若指定了位置,则删除该位置元素
my_list.pop()
my_list.pop(1)
# remove 移除 根据值删除
my_list.remove(20)
# clear 清空 清除
my_list.clear()
# 产生随机列表
import random
my_list=[]
i=0
while i<10:
random_number=random.randint(1,100)
my_list.append(random_number)
i+=1
# 升序排序
my_list.sort()
# 降序排序
my_list.sort(reverse=True)
#逆序
my_list.reverse()
# 查找到值为 old_value 的位置
pos=my_list.index(old_value)
# 将列表 my_list2 的所有元素追加到列表 my_list 的尾部
my_list.extend(my_list2)
1.元组一旦创建无法修改
2.元组中只有一个元素时,须在尾部额外添加一个逗号
3.元组比列表更省空间
4.元组是序列式容器,支持索引、切片
5.元组从语法层面限制数据的意外修改
my_tuple=(10,20,30)
# 遍历
for v in my_tuple
print(v)
# 查询
pos=my_tuple.index(2)
# 切片
print(my_tuple[1:])
1.字典的键不能重复,值可以重复
2.字典是非序列式容器,不支持索引,也不支持切片
3.字典的查找效率较高,但是比较占内存,字典以空间换时间
# 获得字典的值
my_dict={'name':'obama','age':19,'gender':'男',101:100}
# 使用中括号访问字典中的元素:如果不存在会报错,程序中止
print(my_dict['name'])
# 使用 get 方法,如果 key 不存在默认返回 None,也可以指定默认返回值
print(my_dict.get['age', '我是默认值'])
# 添加和修改元素
my_dict={'name':'obama','age':19,'gender':'男',101:100}
# 如果 key 不存在是新增元素
my_dict['score']=99
# 如果 key 存在就是修改元素
my_dict['name']='trump'
my_dict={'name':'obama','age':19,'gender':'男',101:100}
# del
del my_dict['name']
# 清空字典
my_dict.clear()
# del 不但能够删除字典中的某个键值对
# 还能删除变量
a=10
del a
# 删除列表中的元素
my_list=[1,2,3]
del my_list[1]
my_dict={'name':'obama','age':19,'gender':'男',101:100}
# 默认只能遍历出来键
for v in my_dict
print(v)
# keys 方法可以获得所有的键列表
key_list=my_dict.keys()
# values 方法可以获得所有的值列表
value_list=my_dict.values()
# items 方法可以获得所有的键值对列表,每一个键值对都是一个元组
# 1.for循环遍历
value_value_list=my_dict.items()
for key_value in value_value_list
print('key:',key_value[0],'value:',key_value[1])
# 2.while循环遍历
my_list=list(my_dict.items())
i=0
while i<len(my_list)
print('key:',my_list[i][0],'value:',my_list[i][1])
i+=1
文件的作用就是计算机存储数据
1.文件打开方式分两种: 文本模式 二进制模式
r w a rb wb ab
2.打开文件用的文本模式,会进行换行符的转换
程序:hello world\n
-> windows hello world\r\n
-> mac hello world\r
-> linux hello world\n
3.打开文件用的二进制模式,不会进行换行符的转换
4.文件本质上都是以二进制的方式存储在磁盘上
# 读方式打开文件 r
f=open('a.txt','r')
content=f.read()
f.close()
# 写方式打开文件 w
# w 模式默认覆盖文件中的数据
# w 模式如果文件不存在,则会创建文件
f=open('a.txt','w')
f.write('hello world')
f.close()
# 追加方式打开文件 a
f=open('a.txt','a')
f.write('hello world')
f.close()
# 1.write 函数用法
f=open('a.txt','w')
# write 函数一次写一行
f.write('hello world')
# writelines 一次可以写多行,参数是一个列表,列表的每个元素都是一行数据
lines=['aaa\n','bbb\n','ccc\n']
f.writelines(lines)
f.close()
# 2.读操作
f=open('a.txt','r')
# read 没有制定参数,则读取文件中的所有数据
# read 指定参数,则读取参数指定个数的数据
content=f.read()
# 一次读取一行
content=f.readline()
# 一次读取所有行
content=f.readlines()
f.close()
# 1.输入要拷贝的文件名
old_file_name=('请输入你要拷贝的文件名:')
# 2.读取要拷贝的文件内容
new_file_name=old_file_name+'.bk'
# 3.打开新的文件
f_old=open(old_file_name,'rb')
f_new=open(new_file_name,'wb')
# 4.将老文件内容写到新文件
f_old_cotent=f_old.read()
f_new.write(f_old_cotent)
# 5.关闭新老文件
f_old.close()
f_new.close()
import os
# 文件重命名
os.rename('hello.txt','aaa.txt')
# 文件删除
os.remove('aaa.txt')
# 创建和删除目录
os.mkdir('路径')
os.rmdir('路径')
# 获得指定目录下的文件列表
content=os.listdir()
# 获得和设置工作目录
cwd=os.getcwd()
os.chdir('修改后的工作目录')
本文地址:https://blog.csdn.net/weixin_43871837/article/details/107083880
如对本文有疑问, 点击进行留言回复!!
第二章 如何利用Python读取Oracle表数据和表头转化为字典类型
荐 Python基础知识(一):变量与赋值、运算符、数据类型及位运算
python漫画爬虫:我不做人了,b站!爬取辉夜大小姐等漫画
【LeeCode 中等 数学 python3】剑指 Offer 43. 1~n整数中1出现的次数
网友评论