Python字符串
一、字符串的创建和赋值
1.简单了解字符串
字符串或串(String)是由数字、字母、下划线组成的一串字符。Python 里面最常见的类型。 可以简单地通过在引号间(单引号,双引号和三引号)包含字符的方式创建它。
- 第一种方式:
- str1 = ‘our company is westos’
- 第二种方式:
- str2 = “our company is westos”
- 第三种方式:目录形式的
print( """
-----IP信息管理系统-----
1).add vm host
2).search vm host
3).remove vm host
4).list vm host
5).exit system
please input you choice:
""")
2.转义符号
- 一个反斜线加一个单一字符可以表示一个特殊字符,通常是不可打印的字符。
- 转义字符表
转义字符 | 名称 | 功能 |
---|---|---|
\a | 响铃 | 用于输出响铃 |
\b | 退格(Backspace键) | 用于退回一个字符 |
\f | 换页 | 用于输出 |
\n | 换行符 | 用于输出 |
\r | 回车符 | 用于输出 |
\t | 水平制表符(Tab键) | 用于输出 |
\v | 纵向制表符 | 用于制表 |
\| | 反斜杠字符 | 用于表示一个反斜杠字符 |
\ ’ | 单引号 | 用于表示一个单引号字符 |
\’’ | 双引号 | 用于表示一个双引号字符 |
\ddd | ddd是ASCII码的八进制值,最多三位 | 用于表示该ASSCII码代表的字符样 |
\xhh或者\Xhh | hh是ASCII码的十六进制值,最多两位 | 用于表示该ASCII码代表的字符 |
3.三重引号详解
- 作用一:进行多行注释
Python中单行注释是#,多行注释的时候每行都写一个#,或者采用连续的三个双引号。 - 作用二:定义多行字符串
为避免使用转义换行符 \n,通常会用在定义SQL语句的表达式中没有变量的时候使用.
4.删除字符和字符串
- 字符串是
不可变的
,只能通过赋一个空字符串或者使用 del 语句来清空或者删除一个字符串
但是没有必要显式的删除字符串。定义这个字符串的代码结束时会自动释放这些字符串
二、字符串的基本特性
连接操作符与重复操作符
- 连接操作符: 从原有字符串获得一个新的字符串
- 重复操作符: 创建一个包含了原有字符串的多个拷贝的新串
成员操作符
- 成员操作符用于判断一个字符或者一个子串(中的字符)是否出现在另一个字符串中。出现则返回 True,否则返回 False.
正向索引和反向索引
- 序列操作符:(索引与切片)
- 索引
- 索引(s[i] ): 获取特定偏移的元素
- 索引的分类: 正向索引, 反向索引
- 索引
li = [1, 2, 3, [1, 2]]
print(li[0]) #正向索引
print(li[::-1]) #反向索引
print(li[-1]) #反向索引
print(li[-1][0])
print(li[3][-1])
- 切片
- 切片S[i:j]提取对应的部分作为一个序列:
- 如果没有给出切片的边界,切片的下边界默认为0,上边界为字符串的长度;扩展的切片S[i:j:k],其中i,j含义同上,k为递增步长;
- s[:]获取从偏移量为0到末尾之间的元素,是实现有效拷贝的一种方法;
- s[::-1]是实现字符串反转的一种方法;
测试
给定一个字符串,验证他是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
str = input("输入字符串:")
x = str.replace("","").replace(",","").replace(":","").lower()
if x == x[::-1]:
print('True')
else:
print('False')
三、字符串内建方法
测试
编写一个函数来验证输入的字符串是否是有效的IPV4?
IPV4地址由十进制数和点来表示,每个地址包含4个十进制数,其范围为0-255,用(“.”)分割。
IPV4地址内的数不会以0开头。
def is_ipv4(ip: str) -> bool:
return True if [1] * 4 == [x.isdigit() and 0 <= int(x) <= 255 for x in ip.split(".")] else False
print(is_ipv4("192.168.1.5"))
其他内置方法
- cmp() 根据字符串的 ASCII 码值进行比较(py3取消)
- len() 返回字符串的字符数
- max() and min() 返回最大或者最小的字符,(按照 ASCII 码值排列)
- enumerate() 枚举对象同时列出数据和数据下标
- zip() 将对象中对应的元素打包成一个个元组,
然后返回由这些元组组成的列表
四、string模块
string 模块预定义的字符串:
string.ascii_letters #生成所有字母,从a-z和A-Z
string.ascii_lowercase #生成所有小写字母(a-z)
string.ascii_uppercase #生成所有大写字母(A-Z)
string.digits #生成所有数字0-9
string.whitespace
string.punctuation #生成所有标点符号
五、实例测试
计算能力测试系统
设计一个程序,用来实现帮助小学生进行算术运算练习,它具有以下功能:提供基本算术运算(加减乘)的题目,每道题中的操作数是随机产生的,练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否正确并显示出相应的信息。最后显示正确率.
设计思路:
- 运行程序, 输入测试数字的大小范围
- 输入测试题目数量
- 任意键进入测试
- 系统进行测试并判断对错
- 系统根据得分情况进行总结,退出程序
代码
import random #引用库
count = int(input("请输入练习题数:"))
right_count = 0
for i in range(count):
num1 = random.randint(1, 10) #生成随机数
num2 = random.randint(1, 10) #生成随机数
symbol = random.choice(['+', '-', '*']) #随件获取运算符
print(f'{num1}{symbol}{num2}')
result = eval(f'{num1}{symbol}{num2}')
answer = int(input('输入你的正确答案: '))
if answer == result:
right_count +=1
print('回答正确')
else:
print('很遗憾,回答错了')
print(f'亲,你的正确率是: %.f%%' %(right_count/count * 100))