我是靠谱客的博主 多情大象,最近开发中收集的这篇文章主要介绍python学习(二)python学习(二),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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学习(二)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部