概述
python学习(二)
列表推导式
列表推导式
可以快速生成
一个列表
,或者根据某个列表生成
满足指定需求的列表
list=[表达式 for var in range]
list2=[random.randint(10,100) for i in range(10)] #使用列表推导式
list3=[i*i for i in range(2,11,2)]
结果:
[14, 81, 92, 23, 29, 50, 34, 63, 85, 26]
[4, 16, 36, 64, 100]
根据列表生成指定需求的列表 :
newlist=[表达式 for var in list]
从列表中选择符合条件的元素组成新的列表:
newlist=[表达式 for var in list if condition]
price=[1000,840,320,666]
sale=[int(x*0.5) for x in price]
sale=[x for x in price if x>800]
元组
- 元组不可变,不能随意更改里面的内容
元组的创建和删除
1、使用赋值运算符直接创建元组
2、创建空元组
3、创建数值元组
#使用赋值运算符直接创建元组
number=(7,"python",[23,12],28,35,42)
# 创建空元组
emptytuple=()
# 创建数值元组
tuple1=tuple(range(2,21,2))
删除元组
del tuplename
访问元组元素
1、直接使用print()函数输出
2、索引
3、切片
print(tuple1)
print(tuple1[2])
print(tuple1[2:4])
for name in tuple1:
print(name,end=' ')
结果:
(2, 4, 6, 8, 10, 12, 14, 16, 18, 20)
6
(6, 8)
2 4 6 8 10 12 14 16 18 20
修改元组元素
- 单个元组的元素不能直接修改,可对整个元组重新赋值
- 元组+元组
元组推导式
元组推导式
可以快速生成
一个元组
,或者根据某个元组生成
满足指定需求的元组
。- 类似列表推导式
randomnumber=(random.randint(10,100) for i in range(10)) #得到生成器对象
print(randomnumber)
for i in randomnumber:
print(i,end=" ") #输出每个元素的值
# print(randomnumber.__next__()) #输出第一个元素
# print(randomnumber.__next__()) #输出第二个元素
# print(randomnumber.__next__()) #输出第三个元素
print(tuple(randomnumber)) #将生成器对象转换为元组
元组与列表的区别
字符串常用操作
拼接字符串
字符串1+字符串2=字符串1字符串2
str1='我今天走了'
num=23
str2='步'
print(str1+str(num)+str2)
计算字符串的长度
len(string)
str1="人生苦短,我用python"
print(len(str1))
print(len(str1.encode())) #计算utf-8下的字符串长度
print(len(str1.encode("gbk"))) #计算GBK下的字符串长度
截取字符串
string[start : end : step]
分割、合并字符串
分割:
listname=str.split(sep,maxsplit)
sep:空格、换行符(n)、制表符(t)
maxsplit:分割次数,-1表示没有限制
str="@zsbkj @ksandj @jdkajlk @ajkdb"
list=str.split(' ') #用空格分隔字符串
for item in list:
print(item[1:]) #输出每个@后面的值
合并:
strnew=string.join(iterable)
string:指定合并时的分割符
iterable:可迭代对象
list=['nsjka','kas','nkas','mlkasn'] #好友列表
str=" @".join(list) #用空格和@进行连接
print("@"+str)
检索字符串
count():检索指定字符串在另一个字符串中的次数的
str.count(sub[,start[,end]])
find():获取指定字符串首次出现的索引值,不存在时为-1
str.find(sub[,start[,end]])
index():获取指定字符串首次出现的索引值,不存在时抛出异常
str.index(sub[,start[,end]])
startswith():检索是否以指定的字符串开头
str.startswith(prefix[,start[,end]])
endswith():检索是否以指定的字符串结束
str.endswith(prefix[,start[,end]])
str="@zsbkj @ksandj @jdkajlk @ajkdb"
print(str.count("@"))
print(str.find("@ka"))
print("@" in str)
print(str.rfind("@"))
print(str.index("@"))
print(str.startswith("@"))
print(str.endswith("n"))
结果:
4
-1
True
24
0
True
False
字母的大小写转换
大写
字母转小写
字母:lower()
小写
字母转大写
字母:upper()
str="WWWa.wan.jdak"
print(str.lower())
print(str.upper())
结果:
wwwa.wan.jdak
WWWA.WAN.JDAK
去除字符串中的空格和特殊字符
strip():去除字符串左右两边空格和特殊字符
str.strip([chars])
str=' http://www.zr.com tnr'
print(str.strip())
结果:
http://www.zr.com
lstrip():去除左侧特殊字符或字符串
str.lstrip([chars])
rstrip():去除右侧特殊字符或字符串
格式化字符串
1、使用%操作符
'%[-][+][0][m][.n]格式化字符'%exp
template="编号:%09dt公司名称:%st官网:http://www.%s.com" #定义模板
item=(7,'百度',"baidu")
print(template%item)
结果:
编号:000000007 公司名称:百度 官网:http://www.baidu.com
2、使用字符串对象的format()方法----推荐
str.format(args)
str:{[index][:[[fill]align][sign][#][width][.precision][type]]}
template="编号:{:0>9s}t公司名称:{:s}t官网:http://www.{:s}.com"#模板
print(template.format("9","百度","baidu"))
正则表达式
网上搜吧
使用re模块实现正则表达式的操作
1、匹配字符串
- match()
re.match(pattern,string,[flags])
flags:re.I–不区分字母大小写 ;re.A–让w不匹配汉字
import re
pattern=r'mr_w' #模式字符串
string='mR_shop mr_shop' #要匹配的字符串
str='mi_shop mi_shop'
match=re.match(pattern,string,re.I) #匹配字符串
matc=re.match(pattern,str)
print(match)
print('起始位置:',match.start())
print('结束位置:',match.end())
print('匹配数据:',match.group())
print(matc)
<re.Match object; span=(0, 4), match='mR_s'>
起始位置: 0
结束位置: 4
匹配数据: mR_s
None
小程序:验证移动手机号
pattern=r'(13[4-9]d{8})|(15[01289]d{8}$)' #模式字符串
mobile="15072165526" #要匹配的手机号
match=re.match(pattern,mobile)
if match==None:
print('输入无效手机号')
else:
print('输入有效!')
- search()
re.search(pattern,string,[flags])
小程序:检验是否含有危险字符
pattern=r'(黑客)|(Trojan)'
about='我是一名程序员,我喜欢看黑客方面的图书,想研究一下Trojan'
match=re.search(pattern,about)
if match==None:
print("不含危险字符!")
else:
print("含有危险字符!")
- findall()
re.findall(pattern,string,[flags])
import re
pattern=r'mr_w' #模式字符串
string='mR_shop mr_shop' #要匹配的字符串
match=re.findall(pattern,string,re.I) #匹配字符串
print(match)
['mR_s', 'mr_s']
2、替换字符串
- sub()
re.sub(pattern,repl,string,count,flags)
小程序:替换危险字符
pattern=r'(黑客)|(Trojan)'
about='我是一名程序员,我喜欢看黑客方面的图书,想研究一下Trojan'
match=re.sub(pattern,'**',about)
if match==None:
print("不含危险字符!")
else:
print(match,"含有危险字符!")
我是一名程序员,我喜欢看**方面的图书,想研究一下** 含有危险字符!
3、分割字符串
- split()
re.split(pattern,string,[maxsplit],[flags])
pattern=r'[?|&]'
url="http://www.zr.com/login.jsp?username='zr'&pwd='123'"
result=re.split(pattern,url)
print(result)
['http://www.zr.com/login.jsp', "username='zr'", "pwd='123'"]
最后
以上就是多情大象为你收集整理的python学习(二)python学习(二)的全部内容,希望文章能够帮你解决python学习(二)python学习(二)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复