day02_雷神_字符串、列表、字典
1.字符串
1.1 字符串相加
s1 = " ale x "
s2 = " sb "
print(s1 + s2) #识别空格
print(s1.strip() + s2.strip())
ale x sb
ale xsb
1.2 字符串相乘
s1 = "alex "
print(s1 * 5)
alex alex alex alex alex
note:str*int
1.3 字符串索引、切片
字符串索引,从0开始,空格也会输出
s = "chun tian lai le "
print(s[0],type(s[0]))
print(s[4],type(s[4]))
print(s[-1],s[-2]) -1是最后一个元素
字符串切片[起始索引:结束索引+1:步长],顾首不顾尾,所以结束索引+1
s = "chuntianlaile"
print(s[::2])
print(s[::-1])
cutalie
elialnaitnuhc
1.4 字符串常用方法
1.4.1 **capitalize 首字母大写其余字母小写
s = 'alexWUsir'
s1 = s.capitalize()
print(s1)
Alexwusir
1.4.2 **swapcase 大小写翻转
s = 'alexWUsir'
s2 = s.swapcase()
print(s2)
ALEXwuSIR
1.4.3 *title 非字母隔开的每个单词的首字母大写
s = 'alex wusir*taibai2ritian'
s3 = s.title()
print(s3)
Alex Wusir*Taibai2Ritian
1.4.4 **center 设置总长度,并居中
s = 'alex wusir*taibai2ritian'
s4 = s.center(30,)
s4 = s.center(50,'*')
print(s4)
*************alex wusir*taibai2ritian*************
1.4.5 *** upper() lower() 全部大写、全部小写
验证码忽略大小写
code = 'AwEqr'
username= input('请输入用户名:')
your_code = input('请输入验证码:')
if username == 'alex' and your_code.upper() == code.upper():
print('验证成功')
1.4.6 ***startswith endswith
s = 'alexWUsir'
s6 = s.startswith('a')
print(s6)
True
s7 = s.startswith('alex')
True
s8 = s.startswith('WU', 4,) 选择索引位置开始
True
1.4.7*** strip()、lstrip(),rstrip() 默认去除字符串前后的空格,换行符,制表符;去除的元素可自定制。
ss = 'abclaonanhaiq'
ss1 = ss.strip('abqc')
print(ss1)
laonanhai 首尾都删除,没有匹配到abqc中的任何一个,就停止。
username = input('>>>').strip()
password = input('>>>').strip()
if username == '老男孩' and password == '123':
print('登录成功')
1.4.8*** replace
s = 'alex 分甘共苦老地方 alex 风刀霜剑卡乐芙'
s8 = s.replace('alex', 'SB')
s9 = s.replace('alex', 'SB',1) 1是次数,替换一次。2 就是两个alex都替换了。
print(s9)
SB 分甘共苦老地方 alex 风刀霜剑卡乐芙
1.4.9 ***split() 分隔 str ---> list
s = " www.cctv.com,www.cntv.com,www.news.cn \t"
s1 = s.strip().split(',')
print(s1)
['www.cctv.com', 'www.cntv.com', 'www.news.cn']
l1 = s1.split() 默认以空格分隔
s1 = s.strip().split(',',1) 数字是分割次数,分割1次
1.4.10***join list---> str
li = ['www.cctv.com', 'www.cntv.com','www.news.cn']
a = '... '.join(li)
print(a)
www.cctv.com... www.cntv.com... www.news.cn
1.4.11***find index 通过元素找索引
find找不到会返回-1
index找不到会报错
s = 'alexwausir'
s11 = s.find('ex')
2
s = "123456789123456789123456789"
a = s.find("9",1,10)
print(a) 查找索引1开始到10之间的第一个出现的字符串9,后边重复的不算。
1.4.12***format
第一种用法
s = "我叫{},今年{},爱好{}"
s12 = s.format('太白', '25', '女')
print(s12)
第二种用法
s1 = "我叫{0},今年{1},爱好{2},我依然叫{0}"
s13 = s1.format('太白', '25', '女')
print(s13) 复用
第三种用法
s3 = "我叫{name},今年{age},爱好{hobby}"
s14 = s3.format(age=25,hobby='girl',name='太白')
print(s14) 乱序
公共方法
s = "aabbccdd"
print(len(s)) 长度
print(s.count("a")) 元素“a”出现的次数
8
2
is系列
name = '123'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成
print(name.isdigit()) #字符串只由数字组成
True
False
True
int、str、bool转换
int --> str
s = 123
print(s,type(s))
s1 = str(s) 或者s1 = str(123)
print(s1,type(s1))
str --> int
s = "123"
print(s,type(s))
s1 = int(s)
print(s1,type(s1))
int --> bool
0是False,非0是True
bool --> int
True是1,False是0
str--> bool
空是False,非空是True,空格也是True
str ---> list
split
list --> str
join
格式化输出
利用三引号,实现表格形式
print("""
欢迎登陆{}
{}{}{}
{} {} {}
""".format("1","2","3","4","2","3","4"))
and or not
1,前后都是比较运算
优先级:() > not > and > or
print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8)
2,前后都是数字
0 是False 非0 都是True
2 列表
2.1 取值
2.1.1 按照索引取值
按照索引取值,取出来的元素保持其原有的任何属性(与元素本身的数据类型一致)
2.1.2 按照切片取值
按照切片取值,取出来的是小列表
li = ["alex", "wusie","hou","22","33"]
l1 = li[::2]
print(l1)
['alex', 'hou', '33']
2.2 增
append() 最后追加
l = ['WuSir', 'alex', 'OldBoy', 'barry']
l.append([1, 2, 3])
print(l)
['WuSir', 'alex', 'OldBoy', 'barry', [1, 2, 3]]
insert 根据索引插入
l = ['WuSir', 'alex', 'OldBoy', 'barry']
l.insert(1, '葫芦')
print(l)
['WuSir', '葫芦', 'alex', 'OldBoy', 'barry
extend 将可迭代对象按最小元素添加
l.extend([1, '2122', 56])
print(l)
['WuSir', 'alex', 'OldBoy', 'barry', 1, '2122', 56]
2.3 删
pop 按照索引删除
l = ['WuSir', 'alex', 'OldBoy', 'barry']
print(l.pop(0))
print(l)
WuSir pop有返回值
['alex', 'OldBoy', 'barry']
remove 按照元素删除
l = ['WuSir', 'alex', 'OldBoy', 'barry']
l.remove("alex")
print(l)
clear 清空列表
l.clear()
print(l)
del 删除列表;按照索引删除,按照切片删除
del l
print(l)
del l[1]
print(l)
del l[:3]
print(l)
l = [11, 22, 33, 44, 55]
del l[1::2]
print(l)
[11, 33, 55]
2.4 改
按照索引改
l = ['WuSir', 'alex', 'OldBoy', 'barry']
l[0] = "houbinglei"
print(l)
按照切片去改,改的是那一片区域,有点类似extend,将新的最小元素插入。理解最小元素。
l = ['WuSir', 'alex', 'OldBoy', 'barry']
l[:2] = ["01","02","123",456,[123,456]]
print(l)
['01', '02', '123', 456, [123, 456], 'OldBoy', 'barry']
2.5 查
按照索引、切片、切片+不长查
for 循环遍历查
for i in l:
print(i)
2.6 列表其他方法
print(len(l)) 总个数
print(l.count('WuSir')) 某个元素出现的次数
l1 = [1, 9, 8, 4, 3, 2, 6,]
l1.sort() 正序排序
print(l1)
l1.sort(reverse=True) #倒叙排序
print(l1)
l1.reverse() 翻转
print(l1)
2.7 列表的嵌套
l1 = [1, 2, 'alex', ['WuSir', 'taibai', 99], 6]
l1[-2][0] = l1[-2][0].upper()
l1[-2][-1] = str(l1[-2][-1] + 1)
print(l1)
[1, 2, 'alex', ['WUSIR', 'taibai', '100'], 6]
2.8 元组(tuple)和range
元祖。只读的列表
tu1 = (1, 2, [1, 3,], 4)
tu1[2].append(666)
print(tu1)
只是不能修改元祖的最小元素。
tu = (1, 2, 33, 'alex')
print(tu[:-1])
(1, 2, 33) -1是不能取到alex,切片不顾尾
range,一种数字组成的特殊列表
for i in range(1,10,2):
print(i)
默认从0开始,不顾尾,2是步长
列表增删改查,3424
3 字典
3.1 增
根据key增加
dic['hobby'] = 'old_girl' 无责增加,有责修改。
dic['name'] = 'alex'
print(dic)
setdefault()方法增加
默认没有添加,有的话不修改,默认值是None
dic = {
'name': '老男孩',
'age': 10000,
'sex': '男',
}
dic.setdefault("love",)
print(dic)
dic.setdefault('high', 169)
print(dic)
{'name': '老男孩', 'age': 10000, 'sex': '男', 'love': None}
{'name': '老男孩', 'age': 10000, 'sex': '男', 'love': None, 'high': 169}
3.2 删
pop 根据key删除
dic = {
'name': '老男孩',
'age': 10000,
'sex': '男',
}
print(dic.pop("name1",'没有这个键'))
print(dic.pop("name"))
print(dic)
dic = {
'name': '老男孩',
'age': 10000,
'sex': '男',
}
print(dic.pop("name1",'没有这个键')) 可以设定返回值
print(dic.pop("name"))
print(dic)
popitem() 3.6 之前是随机删除
clear
dic.clear()
print(dic)
del 删除整个字典; 按照键去删除键值对
del dic
print(dic)
del dic['name']
print(dic)
3.3 改
根据键改
update()方法
dic = {
'name': '老男孩',
'age': 10000,
'sex': '男',
}
dic1 = {}
print(dic1)
dic1.update(dic)
print(dic1)
{}
{'name': '老男孩', 'age': 10000, 'sex': '男'}
3.4 查
根据key查,没有会报错
根据get()方法
dic = {
'name': '老男孩',
'age': 10000,
'sex': '男',
}
dic1 = {}
print(dic["name"])
print(dic.get("name1","meiyou"))
老男孩
meiyou 不设置,默认返回None,不报错
for 循环 三种
dic = {
'name': '老男孩',
'age': 10000,
'sex': '男',
}
for k in dic.keys():
print(k)
name
age
sex
分别赋值原理:
a, b = 1 ,3
a, b = [22, 33]
print(a,b)
for k, v in dic.items():
print(k, v)
补充:
循环列表、字典是最好不要改变其本身得结构,比如删除操作;
fromkeys()方法,创建一个新得字典
seq = ('name', 'age', 'sex')
dict = dict.fromkeys(seq)
print "New Dictionary : %s" % str(dict)
dict = dict.fromkeys(seq, 10)
print "New Dictionary : %s" % str(dict)
New Dictionary : {'age': None, 'name': None, 'sex': None}
New Dictionary : {'age': 10, 'name': 10, 'sex': 10} 每个值都是10
day02_雷神_字符串、列表、字典的更多相关文章
- python字符串/列表/字典互相转换
python字符串/列表/字典互相转换 目录 字符串与列表 字符串与字典 列表与字典 字符串与列表 字符串转列表 1.整体转换 str1 = 'hello world' print(str1.spli ...
- 初识python 字符串 列表 字典相关操作
python基础(一): 运算符: 算术运算: 除了基本的+ - * / 以外,还需要知道 : // 为取整除 返回的市商的整数部分 例如: 9 // 2 ---> 4 , 9.0 // ...
- python之字符串,列表,字典,元组,集合内置方法总结
目录 数字类型的内置方法 整型/浮点型 字符串类型的内置方法 列表的内置方法 字典的内置方法 元组的内置方法 集合类型内置方法 布尔类型 数据类型总结 数字类型的内置方法 整型/浮点型 加 + 减 - ...
- Python笔记【5】_字符串&列表&元组&字典之间转换学习
#!/usr/bin/env/python #-*-coding:utf-8-*- #Author:LingChongShi #查看源码Ctrl+左键 #数据类型之间的转换 Str='www.baid ...
- python字符串列表字典相互转换
字符串转换成字典 json越来越流行,通过python获取到json格式的字符串后,可以通过eval函数转换成dict格式: >>> a='{"name":&qu ...
- python字符串,列表,字典的常用方法
本篇内容 字符串的常用方法 列表的常用方法 字典的常用方法 字符串的常用方法 center 字符居中显示,指定字符串长度,填充指定的填充字符 string = "40kuai" p ...
- int bool 字符串 列表 字典 集合
1.int和bool 输出i的最大二进制位数inti = 1000 print(i.bit_length()) 2. str int bool list set dict tuple 相互转换 pr ...
- python 字符串 列表 字典 常用方法
今天学习内容如下: 1.学习昨天练习题目的解题新方法 #1.使用while循环输入 1 2 3 4 5 6 8 9 10 ''' count = 0 while count < 10: coun ...
- python中的字符串 列表 字典
字符串 一个有序的字符集合 不可变 1,可以使用for in语句进行迭代循环,返回元素 2,in类是于str.find()方法但是是返回布尔结果 str.find()返回 ...
随机推荐
- maven 单元测试 ( http://www.cnblogs.com/qinpengming/p/5225380.html )
对junit单元测试的报告:类似这样的结果 ------------------------------------------------------- T E S T S ----------- ...
- Luogu 1764 翻转游戏 - 枚举 + 搜索
题目描述 kkke在一个n*n的棋盘上进行一个翻转游戏.棋盘的每个格子上都放有一个棋子,每个棋子有2个面,一面是黑色的,另一面是白色的.初始的时候,棋盘上的棋子有的黑色向上,有的白色向上.现在kkke ...
- [Robot Framework] 通过RemoteWhiteLibrary启动程序并登录初尝试
启动remote whitelibrary之后,在robot framework中配置好library,就可以调用whitelibrary的关键字了 启动APP White.LAUNCHAPP ...
- Tomcat+Redis+Nginx实现session共享(Windows版)
redis安装:xx nginx安装:xx 步骤: 1.下载tomcat-redis-session-manager相应的jar包,主要有三个: wget https://github.com/dow ...
- sql条件查询-日期比较(取年月部分)
查询当年当月的数据: select * from compalete_task where to_Char(create_date,'yyyyMM') = to_Char(sysdate,'yyyyM ...
- Bootstrap的起步
-- Bootstrap的起步部分是对Bootstrap的基本了解,有些细节只是在后面的完善时候需要详细阅读. 最基本点还是Css 和组件部分,这部分应该先进行练习....高级阶段是Javascrip ...
- asp.net query string 及 form data 遇到的编码问题
当遇到此问题时,脑海里闪过的第一个解决方案是设置 web.config 的编码.但一想,就某一个页面的需求而导致其他跟着妥协,不是好的解决方案.于是网上搜索答案,下面做个小分享,遗憾的是研究不够深入, ...
- 在win8 App中,StorageFile比Path更好用
Skip the path: stick to the StorageFile: http://blogs.msdn.com/b/wsdevsol/archive/2012/12/05/stray-f ...
- java struts2 的 文件下载
jsp: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEnco ...
- 20155312 2016-2017-2 《Java程序设计》第九周学习总结
20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...