目录:

一、字典

二、元祖

三、字符串方法、切片

四、非空即真,非0即真

五、文件

正文

一、字典

字典

d = {

'username':'xiaohei',

'id':1,

'grand':'天马座',

'addr':'北京',

'age':29

}

1、增加

d ={'username':'xiaohei','id':1,'grand':'天马座','addr':'北京','age':29}

#增:2个方法

d['money'] = 500d.setdefault('car','bmw')

print(d)

d['username'] = 123#重复key,value覆盖

d.setdefault('grand','bmw')#存在key,value无效

print(d)

2、查询

d ={'username':'xiaohei','id':1,'grand':'天马座','addr':'北京','age':29}#取值:2个方法

print(d['addr'])print(d.get('username'))print(d)#print(d['addrs']) #不存在的key报错

print(d.get('usernames')) #不存在的key返回None

print(d.get('sex','男')) #get取不存在的key返回默认值

3、删除

#删除

print(d)

d.pop('username')del d['addr']print(d)

4、其他方法

1)取出字典所有key到一个list中

取出字典所有values到一个list中

print(d.keys())#取出字典所有key到一个list中

print(d.values())#取出字典所有values到一个list中

2)向字典里更新值

d ={'username':'xiaohei','id':1,'grand':'天马座','addr':'北京','age':29}

d.update(a=1,b=2)#向字典里更新值

print(d)

3)清空clear()

d.clear()#清空

print(d)

4)判断key是否存在

users ={'fd':'123456','xzh':'45678'}

username= 'fd'

#判断key是否存在

print(username inusers.keys())print(username in users) #判断key是否存在,比keys()少一步转成list#users.has_key(username)#python2

5)取key和value值

#直接取到key和value

print("转成二维数组后取")print(d.items()) #转成二维数组

for k,v ind.items():print(k,v)print("")print("根据key取:")#性能好

for k ind:print(k,d.get(k))

练习:录入学生

users ={'fd':'1234','lhy':'456'}for i in range(3):

username= input('username:').strip()

password= input('password:').strip()

cpwd=input('cpwd:').strip()if username=='' or password=='' or cpwd=='':print("不能为空")elif password!=cpwd:print("两次输入不一致")else:

users[username]=passwordprint("注册成功")print(users)break

else:print('输入错误次数过多')

5、list字典嵌套

info ={'lgy':{'age':18,'addr':'beijing','car':['bmw','ben-z','audi'],

},'fd':{'house':{'bj':['海淀区','昌平区','朝阳区','西城区'],'sh':['静安区','闸北区']

},'money':5000}

}

#lgy买了一辆五菱宏光

#fd卖了北京昌平的房子钱增加了400 0000

info['lgy']['car'].append("五菱宏光")

info['fd']['house']['bj'].remove('昌平区')

info['fd']['money']+=4000000

print(info)

#fd在重庆江北区买了房子

#info['fd']['house']['cq']=['江北区']#info['fd']['house'].update(cq=['江北区'])

info['fd']['house'].setdefault('cq',['江北区'])print(info)

{'lgy': {'age': 18, 'addr': 'beijing', 'car': ['bmw', 'ben-z', 'audi', '五菱宏光']}, 'fd': {'house': {'bj': ['海淀区', '朝阳区', '西城区'], 'sh': ['静安区', '闸北区'], 'cq': ['江北区']}, 'money': 4005000}}

二、元祖

l = (1,2,3,4,5)

元祖是不可变的列表

元祖一旦被创建,不能改变里面的值

只有2个方法

li = ('118.24.3.40','root','123456','3306')#只有2个方法

print(li.index('root'))print(li.count('root'))

备注:只有一个元素的元祖要加逗号

t = ('abc') #只有一个元素不是元祖

m = ('abc',) #只有一个元素的元祖加逗号

print(t,type(t))print(m,type(m))

三、字符串

1、index

find

s = 'abca'

#s.index() 找字符串下标(找不到会报错)#s.find() (找不到返回-1)

print("找字符串下标")print(s.index('a'))print(s.find('a'))print(s.index('a',2)) #从第二个开始找,

print(s.index('a',0,10)) #找前10个,

print(s.find('a',2))

2、s.strip() 去空格

#s.strip() 去空格

print("去空格、换行符或指定字符串")

s= 'abca,'

print(s.strip())print(s.rstrip()) #去右边空格

print(s.lstrip())#去左边空格

print(s.strip(','))

s= 'abcad你好\n'

print(s)print(s.strip()) #去换行符

print(s)

3、s.replace()替换

print("替换replace")

s= 'abcasffsfds'

print(s.replace('a','A'))#把小a用大A代替

#敏感词打码

word_list= ['傻逼','傻b','煞比','sb']

content= input("请输入")for word inword_list:

content= content.replace(word,'**')print(content)

4、lower() upper()  大写、小写转换

s = 'ABCabc'

print(s.lower())print(s.upper())

5、zfill()  补0

#s.zfill() 补0

s='1'

if len(s)<3:if len(s)==1:

s='00'+selif len(s)==2:

s='0'+selse:

s='0'

print(s)print(s.zfill(5))

6、

# s.isdigit() 判断是否输入为纯数字,自然数

# s.endswith() 以...结尾

# s.startswith()以...开头

s='1.23'

print(s.isdigit())print(s.endswith('.py'))print(s.startswith('1.'))

7、center() 使用字符使内容居中

#s.center()

print('欢迎登陆'.center(50,'1')) #用1字符凑够50个字符,输入内容居中

8、title() 将字符串变每个单词首字母大写

print('my car'.title())

9、isspace()   判断输入的字符串中是全是空格

#s.isspace()

print(' '.isspace())#判断输入的字符串中是全是空格

10、 s.isupper() s.islower()  判断是否全为大写/小写

#s.isupper() 判断是否全为大写#s.islower() 判断是否全为小写

print('my car'.islower())

11、capitalize() 首字母大写

#capitalize()

print('my car'.capitalize()) #首字母大写

12、s.split()分割字符串

入参空默认按着空格和换行符分割字符串

s='''aa

bb

cc

dd'''

print(s.split())

s= 'aaa,bbb,ccc,ddd'

print(s.split(','))print(s.split('z')) #没有该分割符,则把所有字符串放到一个list中

13、s.join() 连接list里的每个元素的

l = ['aa','bb','cc','dd']

s=' '.join(l)print(l)print(type(l)) #将原来的list变为字符串

14、切片

切片是list范围取值的一种方式

importstringprint(string.ascii_lowercase) #所有小写

print(string.ascii_uppercase)print(string.digits) #所有数字

print(string.ascii_letters) #所有字母

print(string.punctuation) #所有符号

list切片

l=['a','b','c','d','e','f','g','h','i']print(l[0:2])#切片,从0开始到第二个2结束 顾头不顾尾

print(l[2:])#从第二个开始到末尾

print(l[:3])#取到前3个

print(l[:])#取所有元素

print(l[0:9:2])#第三个参数:步长 0,0+2,2+2,4+2,6+2#l=['a','b','c','d','e','f','g','h','i']#0 1 2 3 4 5 6 7 8

步长为负数

print(l[::-1])#如果步长为负数,取值从右往左开始取,同时,开始和结束下标也要写成负数#l=['a','b','c','d','e','f','g','h','i']#-9 -8 -7 -6 -5 -4 -2 -2 -1#i--f

print(l[-1:-4:-1])

字符串切片

s='abcdef'

print(s[::-1]) #只要有下标的都可以,包括list字符串元祖

15、list与循环语句

#print(list(range(1,5))) #[1, 2, 3, 4]

#0 1 2 3 4 5 6 7 8 9 10

l = [0, 1, 2, 2, 3, 4, 5, 6, 7, 8, 9]for i inl:if i%2 ==0:

l.remove(i)print(l) #循环删除会导致下标错乱[1, 2, 3, 5, 7, 9]

#修改为

l = [0, 1, 2, 2, 3, 4, 5, 6, 7, 8, 9]

l2=[0, 1, 2, 2, 3, 4, 5, 6, 7, 8, 9]for i inl2:if i%2 ==0:

l.remove(i)print(l)

为什么不能直接给l2赋值l

#浅拷贝/深拷贝

l = [0, 1, 2, 2, 3, 4, 5, 6, 7, 8, 9]

l2=l#浅拷贝

print(id(l))print(id(l2))#/深拷贝

importcopy

l= [0, 1, 2, 2, 3, 4, 5, 6, 7, 8, 9]

l2=copy.deepcopy(l)print(id(l))print(id(l2))

#以下虽然内存地址不是同一个但也是浅拷贝

l = [1,2,3,[1,2,3]]

l3=l.copy() #嵌套的也会随l改变而变化

l4=copy.copy(l)

l5=l[:]

l[-1].append('abc')print(l)print(l3)print(l4)print(l5)

四、非空即真 非0即真

#非空即真,非0即真

#None {} () [] ''

username=input("username:")

password=input('password:')if username.strip(): #不为空 if not username.strip(): #为空

print('你输入的不为空')else:print('username不能为空')

d={'a':1}ifd:print("真,d不为空")

五、文件

1、只读

f = open('a.txt','r') #三种模式 w r a(附加模式) 默认读模式#f = open('a.txt','r',encoding='utf-8') #有中文

result = f.read() #字符串

print(result)

f.close()

2、文件中有中文

f.readlines()、f.readline()

f = open('a.txt','r',encoding='utf-8') #有中文

result = f.readlines() #列表

f.seek(0)

result2= f.readline() #一行

print(result)print("result2:"+result2)

f.close()

3、只写

#w只写

f = open('a.txt','w',encoding='utf-8')

f.write('nihao') #只能是字符串

names =['\nfd','lhy','wq']

new_name='\n'.join(names)

f.writelines(new_name)#可以循环写,只能是string类型

f.close()

#备注:#写整数型需要转化成字符型写入

numbers=[1,2,3,4,5,6]for index inrange(len(numbers)):

numbers[index]=str(numbers[index])print(numbers)

4、附加模式

#附加模式

f = open('a.txt','a',encoding='utf-8')#result = f.read() 不能读

names =['fd','lhy','wq']

f.writelines(names)

f.close()

5、读写

#r+ w+ a+ 三种模式#r+读写模式#r r+打开不存在的文件都会报错

f = open('a.txt','r+',encoding='utf-8')

result=f.read()print(result)

names=['fd','lhy','wq']

f.writelines(names)print("readlines",f.readlines()) #有文件指针读完后指针已经到最后,不能读第二次

f.close()

6、a+

a+模式默认总最后附加写,如何写在文件开头

方法1:先a+打开再w打开重新写

#写在开头

f = open('a.txt','a+',encoding='utf-8')

f.seek(0)

result=f.read()

new_content= 'ksitou'+result

f.close()

f= open('a.txt','w',encoding='utf-8')

f.write(new_content)

f.close()

方法2

f.truncate()#清空文件内容

f = open('a.txt','a+',encoding='utf-8')

f.seek(0)

result=f.read()

f.seek(0)

new_result= result.upper()#将原文件内容改为大写

f.truncate()#清空文件内容

f.write(new_result)

f.close()

#

python判断字符串在元祖_Python基础(2)——字典、元祖、字符串方法、非空即真、文件...相关推荐

  1. python的序列包括字符串列表和什么_Python基础:03序列:字符串、列表和元组

    一:序列 1:连接操作符(+) 这个操作符允许把一个序列和另一个相同类型的序列做连接,生成新的序列.语法如下:sequence1 + sequence2 该表达式的结果是一个包含sequence1和s ...

  2. python3中字符串编码常见种类_Python基础篇—标准数据类型—String字符串编码问题...

    我要开始写String编码问题了...脑壳疼.. 在String字符串的第一篇末尾有留一个坑,就是关于中文字符串编码.整个编码的故事说起来都是很费劲的,我也只能把我所知道的梳理整理一下,在日常敲码过程 ...

  3. python判断两个数是否相等_python比较两浮点数是否相等的方法

    python如何比较两个浮点数是否相等? float 类型不能比较相等或不等,但可以比较>,<,>=,<= 用==从语法上说没错,但是本来应该相等的两个浮点数由于计算机内部表示 ...

  4. Python 非空即真、列表生成式、三元表达式 day3

    一.非空即真: Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false 布尔型,False表示False,其他为True 整数和浮点数,0表示False,其他为 ...

  5. 零基础带你学习MySQL—not null 非空(二十四)

    零基础带你学习MySQL-not null 非空(二十四)

  6. 判断是否包含大写字符_Python最常用的数据类型中字符串基础函数使用知识点讲解...

    字符串是 pthon 中最常用的数据类型.我们可以使用单引号.双引号或者三对单双引号来创建字符串. 创建字符串很简单,只要为变量分配一个值即可. Python 的字符串有什么内建函数可以使用? len ...

  7. python 字符串 数字_Python基础教程:数字、字符串

    Python 数字 Python 数字数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变数字数据类型得值,将重新分配内存空间. 以下实例在变量赋值时数字对象将被创建: var1 = 1 ...

  8. python输入序列语句_Python基础教程(一) - 序列:字符串、列表和元组

    这一章我们主要研究这样一些类型,他们的成员是有序排列的,并且可以通过下标偏移量访问的,这类Python类型统称为序列,包括字符串.列表和元组. 序列类型操作符 成员关系操作符(in.not in):成 ...

  9. python定义一个字符串后怎么修改_python基础--字符串操作详解

    数字类型 整型 1.作用:对自然界的事务的数量进行计数或描述 2.定义方式(python和现实) 直接定义:a=2 强制类型转换:b='222' # b是字符串 int(b) # 强制转换成整形数字 ...

最新文章

  1. 【golang程序包推荐分享】go-ini、viper、godoc
  2. 大牛激辩:AI 该像婴儿一样生来就懂事,还是该从零学习?
  3. 网站SEO优化如何才能避免被搜索引擎惩罚?
  4. ZedBoard学习(5)-ZedBoard和System Generator
  5. mysql 变量is null 和 not exists区别
  6. ubuntu下使用crontab定时器
  7. 萌新资源 | 3D基础——渲染基本原理介绍
  8. sql server累计求和函数_SQL基础--SQL高级功能
  9. 2017.8.17 陌上花开 思考记录
  10. CitrixVDI新版动手实验手册
  11. 找到所需的产品或服务
  12. android自动计步_Android计步模块(类似微信运动)
  13. unix linux_在Unix桌面环境中创建独特的Linux体验
  14. Java Web学习网站
  15. 外贸老鸟帮新人点评、修改的5个开发信案例
  16. 连接数据库,写了一个登录注册界面
  17. 前端项目如何向一个后端项目传递数组?(批量删除如何传参)
  18. python Pygame库介绍和使用,基本游戏开发
  19. 动态ip导致的Discuz!Database Error解决方法
  20. php 缓冲区溢出漏洞,在Linux 容器中对php-fpm缓冲区溢出漏洞的复现分析 ( CVE-2019-11043 )...

热门文章

  1. jmc线程转储_使线程转储智能化
  2. spring javaee_开发人员对Spring vs JavaEE的看法
  3. 基于价值链的流程框架分类_基于价值的类
  4. input发送a.jax_Java EE 7 / JAX-RS 2.0 – REST上的CORS
  5. 用普罗米修斯和格拉法纳乐器来刺豪猪
  6. ajax异步监控_监控整页(非AJAX),需要通知
  7. apache jmeter_Apache Server和JMeter调试
  8. 使用JShell的Java 9 Streams API
  9. ssh 看apache_使用Apache KeyedObjectPool的ssh连接池
  10. 人工智能的概念和知识构架_概念验证:玩! 构架