码迷,mamicode.com
首页 > 编程语言 > 详细

Python 文件

时间:2018-04-10 13:36:09      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:过多   文件中   abc   tab   输出   定义变量   下标   也会   交集   

一、非空即真,非0即真
(1)非空即真,非0即真
非空即真 :不为空的话就是true,是空的话就是false
非0即真:只要不是0就是true,是0 就是false
print(1>2)
print(2==2)
print(‘a‘.islower())

非空即真
name = input(‘输入你的姓名:‘).strip()
# 之前的做法
# if name ==‘‘:
# print(‘输入不能为空‘)
#现在可以这么写
if name :
print("输入正确")
else:
print(‘输入不能为空‘)

布尔类型
True false
print(bool(‘‘))

a = [] #list也可以判断 false
d= {}# 字典也可以判断 false
c = 0# false int型
f = tuple() # false
e = ‘‘# 字符串 fasle

# 在python中定义变量
a = b =c =0 # 定义了 a b c三个变量 且变量都为0

(2)交换两个变量的值
a =1 b=2 想让 a 和b值互换
正常的写法,引入变量
a =1
b =2
c=0
c= b
b =a
a= c
print(a,b)
在python 中课这么写 交换两个变量的值python底层帮你引入了一个第三房变量进行互换
a=1
b=2
b,a=a,b
print(a,b)
不引入第三方变量,互换的方式,利用运算的方法
a=1
b=2
a=a+b #3
b=a-b#1
a=a-b#2

二、字符串方法
a = ‘ 字 符 串 \n\n\n\n‘
# \n 换行符
# c =a.strip()# 默认去掉两边的空格和换行符
# c =a.lstrip()# 默认去掉左边的空格
c=a.replace()# 默认去掉右边的空格
print(‘c....‘,c)
print(‘a...‘,a,‘hhhhhh‘)
words=‘today is a wonderfulday‘
print(words.strip(‘today‘)) #如果strip方法指定一个值话,那么会去掉这两个值
print(words.count(‘a‘))# 统计字符串出现的次数
print(words.index(‘is‘)) # 找下标,如果元素找不到的话,会报错
# print(words.index(‘z‘))
print(words.find(‘z‘))# 如果元素找不到的话,返回-1
#index和find的区别:index找不到的话会报错,-1
print(words.replace(‘day‘,‘DAY‘)) #替换字符串
print(words.isdigit()) # 判断字符串是否为纯数字
print(words.startswith(‘http‘))#判断是否以某个字符串开头
print(words.endswith(‘.jpg‘))#判断是否以某个字符串结尾
print(words.upper())#变成大写的
print(words.lower())#变成小写的
a = ‘dafdafd‘
print(a.islower())#是否是小写字母
print(a.isupper())#是否是大写字母
print(a.isalpha())#是否是汉字或者字母
print(a.isalnum())#是否是汉字或者字母或者数字,他是只要有字母或者有数字就返回true,只要没有特殊字符就返回true
print(a.title())#判断是否是一个标题,是不是标题的表示的首字母是不是大写,如果大写就返回true
‘‘.join(‘‘) #join 连接字符串
list 不能强制转换成 字符串 ,例如下 会转换成 sl = ‘[‘a‘, ‘d‘, ‘g‘, ‘j‘, ‘s‘]‘
s = [‘a‘,‘d‘,‘g‘,‘j‘,‘s‘]
sl=str(s)
print(sl)
输入 sl = ‘[‘a‘, ‘d‘, ‘g‘, ‘j‘, ‘s‘]‘
利用 join,join的作用1、将list转换成字符串 2、通过某个字符串把list里面的每个元素连接起来
d=[‘ddfad‘,‘ffasf‘,‘ffafd‘]
res = ‘‘.join(d) # 连接字符串
print(res)
输出 ddfadffasfffafd

import string
print(string.ascii_lowercase) # 所有的小写字母
输出abcdefghijklmnopqrstuvwxyz
print(string.ascii_uppercase) #所有的大写字母
输出ABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.digits)# 所有的数字
输出0123456789
print(string.ascii_letters)#所有的大写字母和小写字母
输出abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.punctuation)#所有的特殊字符,全是英文的字符
输出!"#$%&‘()*+,-./:;<=>?@[\]^_`{|}~

join 只要是可以循环,join都能帮你连接起来(只要包含元素的)
res = ‘,‘.join(string.ascii_uppercase)
print(res)
输入A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z

join 的作用
1、它把一个list变成了字符串
2、通过某个字符串把list里面的每个元素连接起来
3、只要是可以循环的,join都可以帮你连起来
l=[‘zhang‘,‘liu‘,‘liang‘]
res = ‘,‘.join(string.ascii_lowercase) #1、它把一个list变成了字符串
2、通过某个字符串把list里面的每个元素连接起来
3、只要是可以循环的,join都可以帮你连起来

split的作用
根据某个字符串来分割字符串 ,返回list(将字符串转换成list)
格式:‘‘.split()
例如‘‘.split(‘,‘)以,分割,就不存在,以谁分割谁就不存在,什么都不写的话,以空格分割
如果所填写分割内容不存在,返回成一个list

如果有人给了你一个文件 例如 zhangsan ,lisi ,wangwu ,zhaoliu 怎么循环插入到数据库中
names = ‘zhangsan ,lisi ,wangwu ,zhaoliu‘
names_list=names.split(‘,‘)#根据某个字符串来分割字符串 ,返回list(将字符串转换成list)
print(names_list)
输出 [‘zhangsan ‘, ‘lisi ‘, ‘wangwu ‘, ‘zhaoliu‘]
一个字符串可以直接进行类型转换
name=‘afdafdf‘
print(list(name))

占位符 格式化
使用方法一,缺点是使用过多会出现问题
name=‘afdafdf‘
sex=‘男‘
age=‘18‘
words = ‘insert into user VALUE ("%s","%s","%s")‘%(name,sex,age)
print(words)
输出insert into user VALUE ("afdafdf","男","18")
方法二 format的使用
name=‘afdafdf‘
sex=‘男‘
age=‘18‘
words = ‘insert into user VALUE ({name},{sex},{age})‘
sql=words.format(age=age,name=name,sex=sex)
print(sql)
输出insert into user VALUE (afdafdf,男,18)

print(‘*‘.center(20))
print(‘fdafdfdafd‘.center(20,‘*‘)) #定义一个长度为20 的字符,字符居中显示如果不够的话,两边以*号补齐
输出*****fdafdfdafd*****

三 拷贝
循环删除list里面的数据的话,结果会不正确,例如以下所示
a = [1.1,2,3,4,5,6,8]
0 1 2 3 4 5 6 7 第一次坐标
[1,2,3,4,5,6,8] 第二次list
0 1 2 3 4 5 6 第二次的下标 从1 开始,所有结合第二次list 所以结果会出现一个1 例如[1,,2, 4, 6, 8]
for i in a :
if i%2!=0: #删除 除于2 的结果不等于0
a.remove(i)
print(a)
输出[1,,2, 4, 6, 8]

如果你想正确的删除list里面的数据的话,怎么办?例如 需要重新定义一个相同的list数据
循环a1 不删除里面的数据,每次循环获取a1的坐标不变,所以对应的坐标对应的元素不变
a = [1.1,2,3,4,5,6,8]
a1 = [1.1,2,3,4,5,6,8]
for i in a1 :
if i%2!=0: #删除 除于2 的结果不等于0
a.remove(i)
print(a)
输出[2, 4, 6, 8]


import copy
浅拷贝 例如: a1=a
深拷贝 例如:a1=copy.deepcopy(a) 会重新定义一个内存空间
浅拷贝和深拷贝的区别就是深拷贝会重新开辟一个内存空间
a = [1.1,2,3,4,5,6,8]
a1 = copy.deepcopy(a)
for i in a1 :
if i%2!=0: #删除 除于2 的结果不等于0
a.remove(i)
print(a)
print(id(a))
print(id(a1))
输出[2, 4, 6, 8]
输出36867510472
输出36867510664
浅拷贝如果修改其中一个值的话,另外一个值也会发生变化
a = [1.1,2,3,4,5,6,8]
a1 = a
a1.append(‘fdafdsfdsafds‘)
print(a)
输出 [1.1, 2, 3, 4, 5, 6, 8, ‘fdafdsfdsafds‘]

四、 集合
常见的数据类型 int float list dict tuple srt
set集合的特点 天生去重
空集合的定义 set() 普通的集合定义{}
集合和字典的区别 : 字典的格式key和value组合 例如{a:123},而集合是{1,2,4}
s=set() #空集合
s2 = set(‘fafdsafsafdsafds‘)
print(s2)
输出{‘a‘, ‘s‘, ‘d‘, ‘f‘}

d = {1,23,4,5,7,8,34,5,2,3,46}
d2 = set(‘fafdsafsafdsafds‘)
d1 = {1,23,4,2,3,12}

交集 :就是两个集合相同的地方
方法一
print(d & d2)
输出 set() 为什么取的值为空,是因为d和s2的类型不一样,一个是 int 一个string,
取交际时所取集合的类型要一致
方法二intersection
print(d.intersection(d2))

并集: 是把两个集合合并在一起,去重
方法一 |
print(d2 | d)
方法二
print(d2.union(d1))

差集 :去掉 a2中 和a1相同的元素
a1 = {1,2,3}
a2 = {1,3,4,5,6}
方法一
print( a2 - a1)
方法二
print(a2.difference(a1))

对称差集: 去掉两个集合中都有的元素
a1 = {1,2,3}
a2 = {1,3,4,5,6}
方法一
print( a1 ^ a2)
方法二
print(a2.symmetric_difference(a1))

a2.add(‘adsad‘) #添加元素
a1.pop()# 随机删除一个
a1.remove(‘adsad‘)# 指定删除那个
a1.update({1,2,3})# 把另外一个集合加进去
print(a1,a2)
输出 {1, 2, 3} {1, 3, 4, 5, 6, ‘adsad‘}

五、 文件读写
utf-8 文件中如果有中文,需要添加 encoding=‘utf-8‘
打开文件 #python 2 里面file()打开文件

文件打开的集中方式 : 读模式、写模式、追加模式 默认的是读模式
f=open(‘zhuce.txt‘,encoding=‘utf-8‘) # 打开文件
print(f.read()) #读取文件
print(f.readline())#读取一行文件
print(f.readlines()) #是把文件的每一行放在一个list里面
f.write(‘dasfd按时发大水‘)#写入

读模式f=open(‘zhuce.txt‘,‘r‘,encoding=‘utf-8‘) r 读写模式 r+
1、不能写 提示:io.UnsupportedOperation: not writable
2、打开不存在的文件会报错 提示: No such file or directory: ‘zhucef.txt‘
f=open(‘zhucef.txt‘,‘r‘,encoding=‘utf-8‘)
print(f)

读写模式 r+
模式只要沾上r模式不存在就会报错
可以写文件
f=open(‘zhuce.txt‘,‘r+‘,encoding=‘utf-8‘)
f.write(‘dasfd按时发ddd大水‘)#写入
print(f.read())

写模式 f=open(‘zhuce.txt‘,‘w‘,encoding=‘utf-8‘) w 写读模式 w+
文件不存在的话,会帮你创建新文件
如果文件存在,会修改文件里面的内容,清空之前的文件内容
写模式的话不能读,提示:io.UnsupportedOperation: not readable
f=open(‘zhucefdaf.txt‘,‘w‘,encoding=‘utf-8‘) # 打开文件
f.write(‘fadfdsfds‘)
f=open(‘zhuce.txt‘,‘w‘,encoding=‘utf-8‘)
f.write(‘fasfdsfadsf‘)
print(f.read())
写读模式 w+
只要沾上w都会清空之前的内容
f=open(‘zhucefdaf.txt‘,‘w+‘,encoding=‘utf-8‘) # 打开文件
f.write(‘fadfdsfds‘)
print(f.read())

追加模式 f=open(‘zhuce.txt‘,‘a‘,encoding=‘utf-8‘) a 追加读模式 a+
在文件末尾追加内容
如果打开文件不存在,会帮你创建文件
如果文件存在,会在里面追加内容
不能读文件
f=open(‘zhucefdaf1.txt‘,‘a‘,encoding=‘utf-8‘) # 打开文件
f.write(‘fadfdsfdsfafdfaf发发呆达到‘)
f=open(‘zhuce.txt‘,‘w‘,encoding=‘utf-8‘)
f.write(‘fasfdsfadsf‘)
print(f.read())
追加读模式 a+
无法读取文件
f=open(‘zhucefdaf1.txt‘,‘a+‘,encoding=‘utf-8‘) # 打开文件
f.write(‘fadfdsfdsfafdfaf发发呆达到‘)
print(f.read())

文件指针:用来记录文件读取的位置
f = open(‘zhuce.txt‘,encoding=‘utf-8‘)
连着用两次读文件,最后一次读取的文件为空
print(‘read‘,f.read())
print(‘readline‘,f.readline())
输出 readline dasfd按时发ddd大水
a模式默认文件指针在末尾
f = open(‘zhuce.txt‘,‘a+‘,encoding=‘utf-8‘)
f.seek(0)#移动文件指针到最前面,移动完文件指针后只能读,写的话还是在文件末尾写seek 不能指定到行,指定到字符坐标
print(f.read())
f.write(‘fdafd嘎达‘)
输出dasfd按时发ddd大水fdafd嘎达fdafd嘎达

Python 文件

标签:过多   文件中   abc   tab   输出   定义变量   下标   也会   交集   

原文地址:https://www.cnblogs.com/zhbright/p/8778129.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!