文章目录

  • 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。

切片:

  1. 切片S[i:j]提取对应的部分作为一个序列:

  2. 如果没有给出切片的边界,切片的下边界默认为0,上边界为字符串的长度;扩展的切片S[i:j:k],其中i,j含义同上,k为递增步长;

  3. 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)-------字符串相关推荐

  1. 深度学习—数据处理常用代码Python合集

    常用代码合集-Python 个人微信公众号:AI研习图书馆 1. 根据txt文件中图片的名字批量提取对应的图片并保存到另一个文件夹 2. 重命名xml文件类别 3. png-jpg 4. 提取voc数 ...

  2. 【Python合集】全面掌握Python基础知识,建议收藏

    Python中有6个标准的数据类型:Number(数字).String(字符串).List(列表).Tuple(元组).Set(集合).Dictionary(字典),每种类型有其固有的属性和方法,学会 ...

  3. 【Python合集系列】爬虫有什么用,网友纷纷给出自己的答案,王老师,我..我想学那个..爬虫。可以嘛?“(代码免费分享)

    导语 Hello,大家好呀!我是木木子吖- 一个集美貌幽默风趣善良可爱并努力码代码的程序媛一枚. 听说关注我的人会一夜暴富发大财哦~ (哇哇哇 这真的爱

  4. 【Python合集】“所有晦暗都留给过往,从遇见你开始,凛冬散尽,星河长明”(附四款源码)

    前言 只有你能望穿我的瞳孔,全息的心消融恐惧,下雨的天空升起了彩虹. --<种星种月种太阳> 所有文章完整的素材+源码都在

  5. 【Python合集系列】也许每个人的童年里都有过这样一个梦:“书桌会被推开钻出来一个哆啦A梦”。(源码合集)

    前言 "生活百般滋味,生活需要笑对" 如果说人生是一趟漫长的旅程,那么这一路上最珍贵的风景,就是那些陪伴你同行的人. 哆啦A梦,这个可爱的蓝胖子可能是许多人的童年回忆.小编今天再一 ...

  6. 【Python合集】程序员系列代码之“这么好的天气应该去放风筝,而不是在搬砖,好想去放风筝哦~”(附完整代码)

    导语 ☽  ☽ ☽ ☽ ☽ ☽ 文案丨April 19th, 2023 ☆ ☽ ☽☽ ☽☽ ☽ 江滩边摇摇晃晃的风筝 是春日越冬归来的信号 风筝蹦蹦跳跳 看盎然春意四处热闹阿姨路过菜摊子 带把香椿回家 ...

  7. python运算符括号_Python合集之Python运算符(四)

    在上一节的合集中,我们了解了Python运算符中的位运算符的相关知识,本节我们将进一步了解一下Python运算符中运算符的优先级级基础的输入输出语法的相关知识. Python运算符的运算规则是:优先级 ...

  8. Coderforces 字符串水题合集

    今天我们聊聊 Coderforces 字符串水题合集. 字符串就是string. 这是string的百度翻译,我们要谈的是画框的.↓ string是C++.java.VB等编程语言中的字符串,字符串是 ...

  9. python字符串操作入门十八讲——合集一

    字符串操作十八讲合集 导读

最新文章

  1. matlab pca 测试样本,matlab_PCA,训练集与测试集分开,原理和用法
  2. MemCache详细解读
  3. Python的3种字符串格式化,做个超全对比!
  4. apache配置证书后 tomcat无法访问_给你的项目配置个https吧
  5. SAP CRM WebClient UI表格编辑模式的调试明细
  6. CF476D-Dreamoon and Sets【结论】
  7. redistemplate hash 过期时间_Redis过期监听——订单超时-取消
  8. milvus入门学习
  9. Bootstrap基础3(表单)
  10. swc反编译工具_ffdec 10.0|ffdec(flash反编译工具)下载v10.0.0官方最新版 - 欧普软件下载...
  11. html 的header标签和head标签
  12. ICLR 2022 语言模型驱动的语义分割算法:Language-Driven Semantic Segmentation
  13. mitmproxy的介绍以及配置过程中的问题
  14. 【敏捷团队】7.敏捷最后冲刺
  15. 初探强化学习(7)基于模型的强化学习的应用综述
  16. Ansible动态Inventory格式
  17. 地统计工具异常值查询和趋势分析
  18. 关于DSP28335的CAN模块与上位机(PC)通信调试心得(1)
  19. 【论文写作】英文写作动词的时态
  20. 无损音乐下载器 MusicTools单文件免安装-v1.9.3.1

热门文章

  1. 为什么月工资时间为21.75
  2. 杨崑:IPTV主要技术的发展趋势
  3. Css选择器权重问题
  4. 资源整合平台bd邦,在互联网中整合什么?
  5. 数据库管理系统(DBMS)的基础知识概要
  6. MAAS(出行即服务)
  7. 业内首次冰品AI识别,爱莫科技全面赋能冰淇淋数字化营销
  8. MySQL insert into where 去重复
  9. mysql case when中用in_MySQL的CASEWHEN语句的几个使用实例_MySQL
  10. 一键部署 Spring Boot 到远程 Docker 容器,就是这么秀!