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

目录:

一、字典

二、元祖

三、字符串方法、切片

四、非空即真,非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()

#

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334997.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java hotspot 是什么_什么是HotSpot

Java是解释语言&#xff0c;但并不意味着它一定被解释执行。早期的虚拟机确实一条一条指令解释执行&#xff0c;但人们发现这样效率太低&#xff0c;不满足各种要求&#xff0c;因此出现了许多其它虚拟机&#xff0c;如JIT的虚拟机。HotSpot也是类似一种虚拟机&#xff0c;自从…

积分和人民币比率_通过比率路由到旧版和现代应用程序–通过Spring Cloud的Netflix Zuul...

积分和人民币比率从应用程序的旧版本迁移到应用程序的现代化版本时&#xff0c;一个非常常见的要求是能够将用户缓慢迁移到新应用程序。 在本文中&#xff0c;我将介绍通过Spring Cloud使用对Netflix Zuul的支持编写的这种路由层。 在继续之前&#xff0c;我必须承认&#xff0…

Java集合类原理详解

文章目录1 集合框架1.1 集合框架概述1.1.1 容器简介1.1.1 容器的分类1.2 Collection1.2.1 常用方法1.2.2 迭代器1.3 List1.3.1 概述1.3.2 常用方法1.3.3 实现原理1.4 Map1.4.1 概述1.4.2 常用方法1.4.3 Comparable 接口1.4.4 实现原理1.4.5 覆写 hashCode()1.5 Set1.5.1 概述1.…

sql安装联机丛书提示发生网络错误_速达软件:安装问题解答

问题Q&A在安装MSDE数据库时&#xff0c;出现安装程序倒退的情况解决方案&#xff1a;这是以前装过SQL Server数据库或MSDE数据库,没有卸载干净.解决办法重装操作系统。安装MSDE数据库时&#xff0c;系统出现“读取文件C:\program files\Microsoft sql sever\mssql\data\msd…

java分布式系统开发_从微服务到分布式系统-Java开发人员生存指南

java分布式系统开发感觉像是对微服务的炒作正在慢慢地落到实处&#xff0c;并且我们的行业开始意识到&#xff0c;根据微服务背后的体系结构范式无法通过仅在现有组件之上公开一些HTTP接口来轻松创建一个系统。 。 我们似乎确实同意必须进行服务优化的基础架构&#xff0c;文化…

java 调整jvm_eclipse修改jvm参数调优方法(2种)

本文介绍了eclipse修改jvm参数调优方法(2种)&#xff0c;分享给大家&#xff0c;具体如下&#xff1a;一般在不对eclipse进行相关设置的时候&#xff0c;使用eclipse总是会觉得启动好慢&#xff0c;用起来好卡&#xff0c;其实只要对eclipse的相关参数进行一些配置&#xff0c;…

python对分组进行排序_如何按排序顺序将列表中的项目分组?

由于您希望对输出进行排序&#xff0c;所以可以根据第一个元素对原始列表进行排序>>> first lambda x: x[0]>>> one_sorted sorted(one, keyfirst)然后您可以根据第一个元素使用^{}对元素进行分组&#xff0c;如下所示^{pr2}$因为您想按升序给组分配数字&a…

链表数据结构原理图/内存结构图/内存图

单项链表内存结构图&#xff08;也叫原理图&#xff09; 单项链表内存结构图

java web源代码_检测Java Web应用程序而无需修改其源代码

java web源代码与其他系统进行交互时&#xff0c;大多数Java Web应用程序都使用标准Java接口。 诸如Web页面或REST服务器之类的基于HTTP的服务是使用接口javax.servlet.Servlet来实现的。 使用JDBC接口java.sql.Statement和java.sql.Connection实现数据库交互。 这些标准几乎是…

反射与泛型 java_Java的反射 和 泛型的一个问题

aluckdog模板方法在编译过程中类型擦除&#xff1a;update(T,UpdateOperations)退化成update(Object,UpdateOperations)&#xff1b;update(Query,UpdateOperations)退化成update(Query,UpdateOperations)&#xff1b;morphia的update方法不光是一个模板方法&#xff0c;还是一…

迭代器原理图

原理图&#xff1a; Iterator<String> it Collection.iterator();it 是集合Collection的视图&#xff0c;迭代器其实就是视图&#xff08;类似数据库的 view&#xff09;&#xff0c;可以理解为一张单列多行的表&#xff0c;如下图所示&#xff1a; 有人理解成单行多…

neo4j python 算法_图论与图学习(二):图算法

选自towardsdatascience作者&#xff1a;Mal Fabien机器之心编译参与&#xff1a;熊猫图(graph)近来正逐渐变成机器学习的一大核心领域&#xff0c;比如你可以通过预测潜在的连接来理解社交网络的结构、检测欺诈、理解汽车租赁服务的消费者行为或进行实时推荐。近日&#xff0c…

cobol和java_现代化历险:策略+将COBOL转换为Java的示例

cobol和java在Keyhole Software&#xff0c;我们在很大程度上是一家现代化公司。 我们有一些顾问&#xff0c;专门研究将旧的代码迁移到新的&#xff0c;翻新的残旧代码库&#xff0c;并为大多数已经被供应商锁定的企业设计更光明的未来。 作为这些经验的一个有趣的副作用&…

c# mysql sdr_C#结合数据库实现验证识别ID卡内容的方法

本文所述实例为C#结合数据库&#xff0c;来验证所识别的ID卡内容&#xff0c;通过本实例代码&#xff0c;用户可以轻松实现对ID卡会员信息的验证。该实例代码可实现读取数据库&#xff0c;进而逐步实现数据库连接&#xff0c;数据库读取&#xff0c;ID卡读取&#xff0c;ID卡信…

递归算法 流程图_什么是算法?如何学习算法?算法入门的学习路径

什么是算法&#xff1f;有一个很著名的公式 “程序数据结构算法”。曾经跟朋友吃饭的时候我问他什么是算法&#xff0c;他说算法嘛&#xff0c;就是一套方法&#xff0c;需要的时候拿过来&#xff0c;套用就可以&#xff0c;我吐槽他&#xff0c;他说的是小学数学题的算法&…

java webmethod 参数_java详解Spring接收web请求参数的方式

本篇文章给大家带来的内容是java详解Spring接收web请求参数的方式 。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你们有所帮助。1 查询参数请求格式&#xff1a;url?参数1值1&参数2值2...同时适用于GET和POST方式spring处理查询参数的方法又…

envoy重试_具有Envoy代理的微服务模式,第二部分:超时和重试

envoy重试该博客是系列文章的一部分&#xff0c;该系列文章更深入地介绍了Envoy Proxy和Istio.io &#xff0c;以及它如何实现一种更优雅的连接和管理微服务的方式。 跟随我christianposta &#xff0c;紧跟这些博客文章的发布。 什么是Envoy代理 &#xff0c;它如何工作&…

python中字符串格式化的形式_Python中format函数字符串格式化入门

格式化在程序开发中非常常见&#xff0c;大家肯定不陌生&#xff0c;Python中也存在多重格式化方式&#xff0c;format函数就是其中一种。函数原型format(value[, format_spec])参数意义value&#xff1a; 需要被格式化的字符串format_spec&#xff1a; 格式化的格式函数定义与…

Java的超类/基类Object

文章目录简介主要方法equals简介 所有的类都继承了 Object&#xff0c;即 Object 是所有类的父类&#xff0c;所以所有的 Java 类都继承了 Object 的所有方法。 比如你写一个类如下&#xff1a; public class Question { ... }实际上这个类是继承自 Object 的&#xff0c;默…

网络研讨室_即将举行的网络研讨会:调试生产中Java的5种最佳实践

网络研讨室您的团队是否花费超过10&#xff05;的时间在生产中调试Java&#xff1f; 将新代码部署到生产中是一项艰巨的任务。 在您的本地环境中起作用的东西在生产中的作用并不相同&#xff0c;您可以通过用户来了解。 不理想吧&#xff1f; 生产中的调试是一个关键要素&…