python合集(3)-------字符串
文章目录
- 1.字符串的创建和赋值
- 2.字符串的基本特性
- 3.字符串的内建方法
- 3.1.字符串的判断与转换
- 3.2 字符串的开头与结尾匹配
- 3.3 字符串的位置调整
- 3.4字符串的数据清洗
- 3.5 字符串的搜索与统计
- 3.6字符串的分离与拼接
- 4.string模块
- 测试
- 测试1
- 测试2
- 测试3
- 测试4
1.字符串的创建和赋值
字符串或串(String)是由数字、字母、下划线组成的一串字符。Python 里面最常见的类型。 可以简单地通过在引号间(单引号,双引号和三引号)包含字符的方式创建它
第一种方式:
str1 = ‘our company is westos’
第二种方式:
str2 = “our company is westos”
第三种方式:
- 转义符号
一个反斜线加一个单一字符可以表示一个特殊字符,通常是不可打印的字符
字符串是不可变的,只能通过赋一个空字符串或者使用 del 语句来清空或者删除一个字符串,但是没有必要显式的删除字符串。定义这个字符串的代码结束时会自动释放这些字符串。
2.字符串的基本特性
连接操作符:
从原有字符串获得一个新的字符串,连接符 :(+),且连接类型要相同
重复操作符:
创建一个包含了原有字符串的多个拷贝的新串,重复操作符:(*)
索引:
索引(s[i] ): 获取特定偏移的元素,默认初始位置为0。 索引 包括: 正向索引, 反向索引,对于反向索引,最后一位为-1。切片:
切片S[i:j]提取对应的部分作为一个序列:
如果没有给出切片的边界,切片的下边界默认为0,上边界为字符串的长度;扩展的切片S[i:j:k],其中i,j含义同上,k为递增步长;
s[:]获取从偏移量为0到末尾之间的元素,是十分有效拷贝的一种方法; s[::-1]是实现字符串反转的一种方法
成员操作符:
判断一个字符或一个子串(中的字符)是否出现在另一个字符中,出现返回Ture,反之为False
# 1. 连接操作符和重复操作符
name = 'zl'
print('haha ' + name)
print("*" * 30 + '学生管理系统' + '*' * 30) :用乘号形式让其重复出现# 2. 成员操作符
yum = 'zl haha'
print('haha' in yum) # True
print('haha' not in yum) # False
print('x' in yum) # False# 3. 正向索引和反向索引
s = 'WESTOS'
print(s[0]) # 'W' #:0号索引对应的字符是
print(s[3]) # 'T' # :3号索引对应的字符是
print(s[-3]) # 'T' # :倒数第三个字符是# 4. 切片
"""
回顾: range(3):[0, 1, 2]range(1, 4): [1, 2, 3]range(1, 8, 2): [1, 3, 5,7]
切片: 切除一部分的内容s[start:end:step]s[:end]:s[start:]:
总结: s[:n]: 拿出前n个元素s[n:]: 除了前n个元素, 其他元素保留s[:]:从头开始访问一直到字符串结束的位置s[::-1]: 倒序输出
"""
s = 'haha zl'
print(s[1:3]) # 'aha'
print(s[:3]) # 'haha'
print(s[:4]) # 拿出字符串的前4个字符
print(s[1:]) # 'aha zl'
print(s[:]) # 拷贝字符串
print(s[::-1]) #倒序输出字符串
# 5. for循环访问
s = 'westos'
count = 0
for item in s:count += 1print(f"第{count}个字符:{item}")
3.字符串的内建方法
3.1.字符串的判断与转换
1.判断
s = 'hahaWESTOS'
print(s.isalnum()) # True
print(s.isalpha()) # True
print(s.isdigit()) # Flase
print(s.isupper()) # False
print(s.islower()) # False
print(s.isspace()) # False
2.转换
print('westos'.upper()) :转换为大写字母
print('LINUX'.lower()) :转换为小写
print('westos linux'.title()) :转换为标题WESTOS LINUX
print('HellO WOrld'.capitalize()) :首字母为大写,其余为小写Hello world
print('HellO WOrld'.swapcase()) :大写转换为小写,小写转换为大写hELLo woRLD
3.2 字符串的开头与结尾匹配
startswith
一些网址的开头是http,用来判断网址的正确性
url = 'http://www.baidu.com'
if url.startswith('http'):# 具体实现爬虫,感兴趣的话可以看request模块。print(f'{url}是一个正确的网址,可以爬取网站的代码')
endswith:
常用的场景: 判断文件的类型
filename = 'hello.png'
if filename.endswith('.png'):print(f'{filename} 是图片文件')
elif filename.endswith('mp3'):print(f'{filename}是音乐文件')
else:print(f'{filename}是未知文件')
3.3 字符串的位置调整
center(width) :字符串居中且长度为指定宽度
ljust(width) :字符串左对齐且长度为指定宽度
rjust(width) :字符串右对齐且长度为指定宽度
print("westoslinux".center(20))
print("westoslinux".center(20,"#"))
print("westoslinux".ljust(20,"#"))
print("westoslinux".rjust(20,"#"))
结果:
D:\python\python.exe C:/Users/萧然之雪/PycharmProjects/pythonProject/6-21/数据清洗.pywestoslinux
####westoslinux#####
westoslinux#########
#########westoslinux
3.4字符串的数据清洗
数据清洗的思路 :
lstrip: 删除字符串左边的空格(指广义的空格: \n, \t, ’ ')
rstrip: 删除字符串右边的空格(指广义的空格: \n, \t, ’ ')
strip: 删除字符串左边和右边的空格(指广义的空格: \n, \t, ’ ')
replace: 替换函数, 删除中间的空格, 将空格替换为空。replace(" ", )
print(" westos ".strip())
print(" westos ".lstrip())
print(" westos".rstrip())
print(" wes tos ".replace(" ", ""))
结果:
D:\python\python.exe C:/Users/萧然之雪/PycharmProjects/pythonProject/6-21/数据清洗.py
westos
westos westos
westos
3.5 字符串的搜索与统计
s = "linux westos"
print(s.find("linux")) :#Linux字符是从第0个索引开始
#print(s.find("hello")):find查找的结果不存在,返回-1
print(s.index("linux")) :#Linux字符是从第0个索引开始
#print(s.index("hello")) :index查找的结果不存在,报错
print(s.count("linux")):linux字符出现1次
#print(s.count("hello"))
结果:
D:\python\python.exe C:/Users/萧然之雪/PycharmProjects/pythonProject/6-21/数据清洗.py
0
0
1
3.6字符串的分离与拼接
ip = "172.25.6.1"
print(ip.split('.')) #以'.'为分隔符切片
item = ip.split('.')
print(f'{item}')
print("-".join(item)) #以'-'连接
结果:
D:\python\python.exe C:/Users/萧然之雪/PycharmProjects/pythonProject/6-21/数据清洗.py
['172', '25', '6', '1']
['172', '25', '6', '1']
172-25-6-1
4.string模块
需求: 生成验证码,验证码由3个数字和3个字母组成
import random #random模块可以随机生成数字,但较为繁琐
print(random.choice("0123456789") + random.choice('0123456789') + random.choice('abcdef'))
结果:
D:\python\python.exe C:/Users/萧然之雪/PycharmProjects/pythonProject/6-21/数据清洗.py
68a
import random
import string #string 模块中有随机生成数字string.digits和字母的模块string.ascii_letters:
print("".join(random.sample(string.digits, 3)) + "".join(random.sample(string.ascii_letters, 3)))
结果:
D:\python\python.exe C:/Users/萧然之雪/PycharmProjects/pythonProject/6-21/数据清洗.py
438Civ
测试
测试1
设计一个程序,用来实现帮助小学生进行算术运算练习,
它具有以下功能:
提供基本算术运算(加减乘)的题目,每道题中的操作数是随机产生的,
练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否正确
并显示出相应的信息。最后显示正确率。
import randomcount = 10
right_count = 0
for item in range(count):num1 = random.randint(1,10)num2 = random.randint(1,10)symbol = random.choice(["-","*","+"])right_answer = eval(f"{num1}{symbol}{num2}")question = f"{num1} {symbol} {num2} = ?"print(question)user_answer = int(input("answer:"))if user_answer == right_answer:print("user_answer is right")right_count +=1else:print("user_answer is error")
print(f"right percent:%0.1f%%" % (right_count/count*100))
测试2
判断ip合法性:
ip = “172.25.6.1”
需求:IP地址的合法性-将ip的每一位数字拿出, 判断每位数字是否在0-255之间。
import stringipaddress = input("please input ip: ")
item = ipaddress.split('.')
true = 0
for n in {0,1,2,3}:m = int(item[n])first = int(item[n][0])if first == 0 or m<0 or m>255:print(f"{ipaddress} is Neither")else:true +=1if true == 4:print(f"{ipaddress} is IPV4")
测试3
随机生成10个验证码,验证码由3个数字和3个字母组成
import random
import string 块string.ascii_letters:
"".join(random.sample(string.digits, 3)) + "".join(random.sample(string.ascii_letters, 3))
for i in range(10):print("".join(random.sample(string.digits, 3)) + "".join(random.sample(string.ascii_letters, 3)))
测试4
给定一个字符串,验证是否为回文字符串,忽略大小写,只考虑字母和数字字符
import string
item = input('please input string:')
if len(item) == 0:print(':',True)
else:item = item.lower()cleanstr = ''for items in str:if items in string.ascii_letters +string.digits:cleanstr += itemsprint(':', cleanstr == cleanstr[::-1])import string
原文链接:https://blog.csdn.net/qq_45090453/article/details/113666058
python合集(3)-------字符串相关推荐
- 深度学习—数据处理常用代码Python合集
常用代码合集-Python 个人微信公众号:AI研习图书馆 1. 根据txt文件中图片的名字批量提取对应的图片并保存到另一个文件夹 2. 重命名xml文件类别 3. png-jpg 4. 提取voc数 ...
- 【Python合集】全面掌握Python基础知识,建议收藏
Python中有6个标准的数据类型:Number(数字).String(字符串).List(列表).Tuple(元组).Set(集合).Dictionary(字典),每种类型有其固有的属性和方法,学会 ...
- 【Python合集系列】爬虫有什么用,网友纷纷给出自己的答案,王老师,我..我想学那个..爬虫。可以嘛?“(代码免费分享)
导语 Hello,大家好呀!我是木木子吖- 一个集美貌幽默风趣善良可爱并努力码代码的程序媛一枚. 听说关注我的人会一夜暴富发大财哦~ (哇哇哇 这真的爱
- 【Python合集】“所有晦暗都留给过往,从遇见你开始,凛冬散尽,星河长明”(附四款源码)
前言 只有你能望穿我的瞳孔,全息的心消融恐惧,下雨的天空升起了彩虹. --<种星种月种太阳> 所有文章完整的素材+源码都在
- 【Python合集系列】也许每个人的童年里都有过这样一个梦:“书桌会被推开钻出来一个哆啦A梦”。(源码合集)
前言 "生活百般滋味,生活需要笑对" 如果说人生是一趟漫长的旅程,那么这一路上最珍贵的风景,就是那些陪伴你同行的人. 哆啦A梦,这个可爱的蓝胖子可能是许多人的童年回忆.小编今天再一 ...
- 【Python合集】程序员系列代码之“这么好的天气应该去放风筝,而不是在搬砖,好想去放风筝哦~”(附完整代码)
导语 ☽ ☽ ☽ ☽ ☽ ☽ 文案丨April 19th, 2023 ☆ ☽ ☽☽ ☽☽ ☽ 江滩边摇摇晃晃的风筝 是春日越冬归来的信号 风筝蹦蹦跳跳 看盎然春意四处热闹阿姨路过菜摊子 带把香椿回家 ...
- python运算符括号_Python合集之Python运算符(四)
在上一节的合集中,我们了解了Python运算符中的位运算符的相关知识,本节我们将进一步了解一下Python运算符中运算符的优先级级基础的输入输出语法的相关知识. Python运算符的运算规则是:优先级 ...
- Coderforces 字符串水题合集
今天我们聊聊 Coderforces 字符串水题合集. 字符串就是string. 这是string的百度翻译,我们要谈的是画框的.↓ string是C++.java.VB等编程语言中的字符串,字符串是 ...
- python字符串操作入门十八讲——合集一
字符串操作十八讲合集 导读
最新文章
- matlab pca 测试样本,matlab_PCA,训练集与测试集分开,原理和用法
- MemCache详细解读
- Python的3种字符串格式化,做个超全对比!
- apache配置证书后 tomcat无法访问_给你的项目配置个https吧
- SAP CRM WebClient UI表格编辑模式的调试明细
- CF476D-Dreamoon and Sets【结论】
- redistemplate hash 过期时间_Redis过期监听——订单超时-取消
- milvus入门学习
- Bootstrap基础3(表单)
- swc反编译工具_ffdec 10.0|ffdec(flash反编译工具)下载v10.0.0官方最新版 - 欧普软件下载...
- html 的header标签和head标签
- ICLR 2022 语言模型驱动的语义分割算法:Language-Driven Semantic Segmentation
- mitmproxy的介绍以及配置过程中的问题
- 【敏捷团队】7.敏捷最后冲刺
- 初探强化学习(7)基于模型的强化学习的应用综述
- Ansible动态Inventory格式
- 地统计工具异常值查询和趋势分析
- 关于DSP28335的CAN模块与上位机(PC)通信调试心得(1)
- 【论文写作】英文写作动词的时态
- 无损音乐下载器 MusicTools单文件免安装-v1.9.3.1