Python一看就懂系列(三)
专栏: python轻奢入门系列
作者: 豆破苍琼
【字符串】
字符串介绍
字符串格式
被单引号或者双引号括起来的数据就是字符串。
字符串输出
"""
字符串输出
"""
def printStream(nums):import timefor i in range(nums):print('正在持续输出{}次'.format(i))if i != nums-1:print("等待1秒后...")time.sleep(1)print("完成输出!")
printStream(10)
字符串输入
"""
字符串输入
"""
name = 'hello world!'
count = 3
words = input("学习编程,进入编程世界的第一句话是什么?\n")
while True:if words == name:print("恭喜你,进入编程世界!")breakelse:if count == 0:print("江湖再见!\n")breakwords = input("很遗憾,你再想想,学习编程,进入编程世界的第一句话是什么?\n")count -=1
字符串常见操作
下标
字符串实际是字符数组,所以支持下标的使用。
切片
"""
字符串切片
"""
raw_address = 'https://dpcq.com:8080'
pure_address = raw_address[:-4]
pure_port = raw_address[-4:]
head = raw_address[0:4:1]
print('head:{}\naddress:{}\nport:{}'.format(head,pure_address,pure_port))
"""
特殊操作
"""
reverse_address = raw_address[::-1]
print('reverse operation:%s'%reverse_address)
常见操作: find 、split、lower、upper、index、count、
"""
字符串常见操作
"""
raw_address = 'https://dpcq.com:8080'
# find 方法 、index 查询不到会报错 而不会返回-1
"""
S.find(sub[, start[, end]]) -> int
Return the lowest index in S where substring sub is found,
such that sub is contained within S[start:end]. Optional
arguments start and end are interpreted as in slice notation.
Return -1 on failure.
"""
d_index = raw_address.find('d',1,-1)
q_index = raw_address.index('s')
# split 方法
"""
raw_address.split(sep=None, maxsplit=-1)
sepThe delimiter according which to split the string.None (the default value) means split according to any whitespace,and discard empty strings from the result.
maxsplitMaximum number of splits to do.-1 (the default value) means no limit.
"""
sp_data = raw_address.split(sep=':',maxsplit=2)
# lower 、upper 方法
lower_data = raw_address.lower()
upper_data = raw_address.upper()
# count 方法
nums_t = raw_address.count('d')print(" d index is {},s index is {} \n sp_data len is {}\n lower_data is {} \n upper_data is {}\n t count is {}".format(d_index,q_index,len(sp_data),lower_data,upper_data,nums_t))
正则表达式
匹配单个字符
匹配多个字符
匹配开头和结尾
re.match匹配
re.match尝试从字符串的起始位置匹配,如果不是起始位置匹配成功的话,match方法就返回None。
import re
# match 匹配
"""
match 开头不成功,则返回None
"""
raw_data = 'luo zhi xiang shi shi jian guan li da shi'
matach_rst_1 = re.match('[l]',raw_data).span()
matach_rst_2 = re.match('zhi',raw_data)
line = "American is greater than before."
# re.M 表示多行匹配 会影响到^和$
# re.I 使匹配对大小写不敏感
matchObj = re.match(r'([a].*) is (.*?) .*$',line,re.M|re.I)
if matchObj:print(matchObj.group())print(matchObj.group(1))print(matchObj.group(2))
else:print("No match!")
re.research方法
import re
line = "American is greater than before."
matchObj = re.search(r't+',line,re.M|re.I)
if matchObj:print("search match:",matchObj.group())
else:print("No matched!")
re.search与re.match不同的是前者可以匹配全文,返回第一个匹配项,后者开头匹配,匹配不成功则返回None。
re.sub方法
Python的re模块提供了re.sub用于替换字符串中的匹配项。将匹配到的内容替换为自己想要的数据。
"""
re.sub(pattern, repl, string, count=0, flags=0)
Return the string obtained by replacing the leftmost
non-overlapping occurrences of the pattern in string by the
replacement repl. repl can be either a string or a callable;
if a string, backslash escapes in it are processed. If it is
a callable, it's passed the Match object and must return
a replacement string to be used.
"""
# 举个栗子! 再聚个麒麟臂
phone = "1236-63256-933 # this is a text."
non_num = re.sub(r'\D','',phone)
print(non_num)
# re.sub的第二个用途
def replace_num(str):numDict = {'0':'〇','1':'一','2':'二','3':'三','4':'四','5':'五','6':'六','7':'七','8':'八','9':'九'}print(str.group())return numDict[str.group()]
my_str = '2020年10月24号'
a = re.sub(r'(\d)', replace_num, my_str)
print(a)
re.split方法
正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以用个按位OP(|)它们来指定。
# re.split
raw_data = 'dcpq,wwww,com,dot'
split_result = re.split('\W',raw_data)
split_result
【列表】
列表格式
列表内的元素可以是不同类型的。
列表输出
类似以下的都可以被称为对列表的输出。
遍历列表
for、while循环
"""
列表
"""
students = ['杨超越','吴尊','刘亦菲','杨利伟','Max Moon','Alex Jim']
#print(students)
# for 循环列表
for s_stu in students:print('current:{}'.format(s_stu))
# while 循环打印列表元素
while len(students)>0:print(students.pop())
print(len(students))
常见方法
append、insert、extend、del、remove、pop、in、not in
poem = ['见与不见']
poem.append('你见,或者不见我')
poem.append('我就在那里')
poem.append('不悲不喜')
poem.insert(4,'你念,或者不念我')
print(poem)
poem.extend(['情就在那里','不来不去','你爱,或者不爱我'])
print(poem)
del poem[-1]
print(poem)
poem.remove('不来不去')
print(poem)
poem.pop()
print(poem)
test_1 = '我就在哪里'
test_2 = '我就在那里'
if test_2 in poem:print('It is in !')
else:print('Not in !')
【元组、字典、集合】
元组
介绍
元组和列表类似,不同之处在于
- 元组的元素不能修改
- 元组使用的是小括号、列表使用的是方括号
- 元组中只包含一个元素时,需要再元素的后面添加逗号
访问元组
修改元组
元组不允许对其修改
删除元组
del即可。
元组运算符
与字符串一样,元组之间可以使用+号和*号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
元组的内置函数
字典
介绍
在Python中,字典与列表类似,但是字典是无序的,保存的内容是以key-value的形式进行存放的。
字典特征
- 通过键而不是索引来获取数据
- 字典中的键必须唯一
- 字典中的键必须不可变
字典访问
price_fruit = {'banana':4.3,'apple':2,'pea':4}
print(price_fruit['banana'])
other = price_fruit.get('water',1)
print(other)
常见操作
- 添加、修改、删除、len、keys、values、items
price_fruit = {'banana':4.3,'apple':2,'pea':4}
print(price_fruit['banana'])
other = price_fruit.get('water',1)
print(other)
# 添加
price_fruit['pointer'] = 2
# 删除
del price_fruit['pea']
# 修改
price_fruit['pointer'] = 4
# len
len_dict = len(price_fruit)
# keys 返回字典类型的迭代器
k_d = price_fruit.keys()
for i in k_d:print(i)
# values
v_d = price_fruit.values()
for i in v_d:print(i)
# items 方法 获取字典中的键值对 将其存储在元组中
print(price_fruit.items())
for i in price_fruit.items():print(i)
集合
介绍
Python集合是一个无序,不重复的元素序列。
创建
常见操作
- 添加
集合不仅可以添加单个元素,并且可以添加任意元素.可以是列表、元组、字典等。
- 删除
删除可以是删除指定元素,也可以是删除任意元素。
# 添加
s1 = set(('腾讯',"百度","京东"))
s1.add("小米")
print(s1)
# 添加
s1.update({1,2})
print(s1)
s1.update([3,4],[5,65])
print(s1)
# 删除 1
s1.discard("hahah")
print(s1)
# remove 删除不存在的元素会报错、discard则不会
s1.remove('ping')
# pop删除任意元素
s1.pop()
集合内置方法列表
垃圾回收机制
Python中垃圾回收是以引用计数为主,分代收集为辅。引用计数的缺陷是循环引用的问题。
在python中,如果一个对象的引用数为0,Python虚拟机就会回收这个对象的内存。当引用计数为0时,该对象的声明就结束了。
优点
- 简单
- 实时性
【参考】
1.《Pyrhon handbook》
Python一看就懂系列(三)相关推荐
- Python一看就懂系列(四)
专栏: python轻奢入门系列 作者: 豆破苍琼 [函数] 基本知识 定义 函数可以理解为创建一个具有某种用途的工具.使用def关键字来实现. 调用 def introduce():name = i ...
- Python一看就懂系列(零)
专栏: python轻奢入门系列 作者:
- Python一看就懂系列(二)
专栏: python轻奢入门系列 作者: 豆破苍琼 [输入和输出] 普通输出 生活中的输出 软件中的输出 python中的输出 格式化输出 什么是格式化 在程序中,看到了%这样的操作符,就是pytho ...
- Python一看就懂系列(五)
专栏: python轻奢入门系列 作者: 豆破苍琼 [异常] 异常介绍 异常通常分为两类:语法引出的异常: 语法引出的异常:由于违反了编程语言的规则而导致的编译错误,也被称为语法错误. 运行时引出的异 ...
- Python一看就懂系列(一)
专栏: python轻奢入门系列 作者: 豆破苍琼 [Python注释] 注释的引入 注释就是对代码的解释和说明,其目的就是为了让人们能够更加轻松的了解代码,提高代码的阅读性. 未注释 已注释 注释分 ...
- 一看就懂系列之 如何实现与控制php常驻进程
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 前言 关于如何实现与控制php常驻进程,不管是google还是baidu上进行搜索,都没有感觉看起来赏心悦目的解答,于是决定自己 ...
- 如何管理php常驻进程,一看就懂系列之 如何实现与控制php常驻进程-Go语言中文社区...
前言 关于如何实现与控制php常驻进程,不管是google还是baidu上进行搜索,都没有感觉看起来赏心悦目的解答,于是决定自己动手总结下. 有同学会问了,整这个干甚?简单的说就是,可以让一个php脚 ...
- 一看就懂系列之Golang的pprof
前言 这是一篇给网友的文章,正好最近在研究分析golang的性能,我觉得是时候来一个了断了. 正文 1.一句话简介 Golang自带的一款开箱即用的性能监控和分析工具. (全篇看的过程中没必要特意记忆 ...
- php 设计模式系列,一看就懂系列之 php设计模式(一)-Go语言中文社区
前言 一提到设计模式,很多人都是敬而远之,一方面由于设计模式有一点忽悠太理论的感觉,另一方面也会觉得设计模式有点难懂不知道该在什么场景下使用.一看就懂系列之php设计模式,主要解决两个问题: 1.用最 ...
最新文章
- 在leangoo中如何做好需求管理(研发效能)
- Java正则表达式基础案例和语法
- 基于curl的php多线程类(异步请求)
- java ajax翻页_分页 工具类 前后台代码 Java JavaScript (ajax) 实现 讲解
- Android -ui控件
- JAVA记事本的图形用户界面应用程序含过滤
- oracle中sql行数的计算,Oracle技术网—如何利用DBMS_SQL包和游标计算当前用户下所有表的行数...
- Flash中textInput限定中英文字数
- Jmeter之JDBC Request与mysql
- 用Redis实现分布式锁 与 实现任务队列
- 5.分布式服务架构:原理、设计与实战 --- 基于调用链的服务治理系统的设计与实现
- XPS Viewer 无法设置权限账户 - 无法激活此计算机上的任何权限管理账户
- 重磅!颜宁宣布离美归国
- VGG19图像风格迁移
- 启动VMware虚拟机显示:物理内存不足无法使用
- AM5728 uboot 执行流程
- 【企查查】高级查询下突破导出5000条/10次限制思路tips,完整全量导出
- Excel如何隔一行或几行填充颜色
- Outlook2013邮箱打开Word附件为受保护模式的调整方法
- Android 调用so库全过程
热门文章
- 物联网网关是什么?有什么作用?
- RAID 0是什么?
- 环信聊天记录的完整代码
- JAVA 面向对象编程练习(一个回合制的战斗游戏:战士,骑兵,法师,电脑互相攻击)
- 探索下一个增长市场,分析师认为BIGC将成下半年“顶尖创意”
- X64 activeX控件测试
- 2021SC@SDUSC Zxing开源代码(二)CaptureActivity代码分析-生命周期函数
- android硬编码用rtmp,Android RTMP推流之MediaCodec硬编码二(RTMPDump推流)
- 【linux】记录nodejs使用图片处理工具gm
- 赴港上市,能成为威马汽车的“续命稻草”吗?