python内置数据结构字符串

本文详细介绍了Python中字符串的创建、基本特性(连接、成员操作、索引、切片、迭代等)、内建方法(判断与转换、类型转换、位置调整、搜索统计、分离拼接)以及拓展的string模块和实战应用。涵盖了字符串操作的全面教程。
摘要由CSDN通过智能技术生成

一、字符串的创建和赋值

字符串或串(String)是由数字、字母、下划线组成的一串字符。Python 里面最常见的类型。 可以简单地通过在引号间(单引号,双引号和三引号)包含字符的方式创建它。

一个反斜线加一个单一字符可以表示一个特殊字符,通常是不可打印的字符
在这里插入图片描述
下面演示两种常用的转义。
在这里插入图片描述

二、字符串的基本特性

1.连接操作符与重复操作符

## 1.连接操作符和重复操作符
name = "world"
print ('hello '  + name)
print ("*"*30 + '学生管理系统' + "*"*30)

代码运行效果:
在这里插入图片描述
Pycharm常用的快捷键:
格式化代码符合PEP8编码风格(Ctrl+Alt+L)

2.成员操作符

## 2.成员操作符
s = "hello world"
print('hello' in s)   #True
print('world' not in s) #False

在这里插入图片描述

3.正向索引和反向索引

  1. 索引(s[i] ): 获取特定偏移的元素
  2. 索引的分类: 正向索引, 反向索引

在这里插入图片描述

## 3.正向索引和反向索引
s = 'hello'
print(s[0])  #'h'
print(s[3])  #'l'
print(s[-3]) #'l'

在这里插入图片描述

4.切片

## 4.切片
"""
切片:切出一部分的内容
    s[start:end:step]
    s[:end]:
    s[start:]:
"""
s = 'hello world'
print(s[1:3])  # 从1开始到3-1结束
print(s[:3])  # 从0开始到3-1 结束
print(s[:5])  # 前五个字符
print(s[3:])  # 从第3个开始,到结束所有字符
print(s[::])  # 拷贝字符串  拿出所有字符串
print(s[::-1])  #倒序

在这里插入图片描述

5. 可迭代对象for循环访问

## 5. 可迭代对象for循环访问
s = 'hello'
count = 0
for item in s:
    count +=1
    print(f'第{count}字符是{item}')

在这里插入图片描述
练习:
用户输入一个字符串,判断这个字符串是否为回文字符串。

"""
代码需求:
用户输入一个字符串,判断这个字符串是否为回文字符串。
"""
s = input("输入字符串:")
result = "回文字符串" if s == s[::-1] else "不是回文字符串"
print(s + result)

在这里插入图片描述

三、字符串的内建方法

在这里插入图片描述

1.字符串的判断和转换

下面我们演示三种 是否字母或数字? 是否数字? 是否大写字母?

s = "helloworld"
print(s.isalnum())  ##True
print(s.isdigit())  ##False
print(s.isupper())  ##False

在这里插入图片描述

2.类型转换

## 2.类型转换
print('hello'.upper())  ##HELLO
print('HELLO'.lower())   ## hello
print('HELLO world'.title())  ## Hello World
print('HELLO world'.capitalize()) ## Hello world
print('HELLO world'.swapcase())  ##hello WORLD

在这里插入图片描述
实例:

# 需求:用户输入Y或者y都继续执行代码
# yum install httpd
choice =  input ('是否继续安装程序(y|Y):')
if choice.lower() == 'y':
    print("正在安装程序.....")正在安装程序

在这里插入图片描述

3.字符串开头和结尾的判断

在这里插入图片描述

# startswith
url = 'http://www.baidu.com'
if url.startswith('http'):
    print(f'{url}是一个正确的网址,可以爬取网站')
# endswith:
# 常用场景:判断文件类型
filename = 'sun.png'
if filename.endswith('.png'):
    print(f'{filename} 是图片文件')
elif filename.endswith('.mp3'):
    print(f'{filename}是音乐文件')
else:
    print(f'{filename}是未知文件')

在这里插入图片描述
#pycharm常用的快捷键:
#如何查看方法的源代码和解释说明: ctrl键按住,
#鼠标移动到你想要查看方法的位置,点击即可进入源码及方法说明

4.字符串的数据清洗

在这里插入图片描述
数据清洗的思路:

  • lstrip: 删除字符串左边的空格(指广义的空格: \n, \t, ’ ')
  • rstrip: 删除字符串右边的空格(指广义的空格: \n, \t, ’ ')
  • strip: 删除字符串左边和右边的空格(指广义的空格: \n, \t, ’ ')
  • replace: 替换函数, 删除中间的空格, 将空格替换为空。replace(" ", )
s = ' hello'
print(s)
print(s.lstrip())
s = 'hello '
print(s.rstrip())
s = ' hello '
print(s.strip())
s = 'hel        lo'
print(s.replace(" ",""))

在这里插入图片描述

5.字符串的位置调整

在这里插入图片描述

print("学生管理系统".center(50))
print("学生管理系统".center(50,"*"))
print("学生管理系统".center(50,"-"))
print("学生管理系统".ljust(50,"*"))
print("学生管理系统".rjust(50,"*"))

效果查看:
在这里插入图片描述

6.字符串的搜索和统计

在这里插入图片描述

s = "hello world"
print(s.find("llo"))
print(s.index("llo"))
print(s.find("xxx"))
print(s.index("xxx"))
# find如果找到子串, 则返回子串开始的索引位置。 否则返回-1
# index如果找到子串,则返回子串开始的索引位置。否则报错(抛出异常).
print(s.count("l"))    ## 判断字符出现次数

在这里插入图片描述

6.字符串的分离和拼接

在这里插入图片描述

ip = '172.25.254.100'
print(ip.split('.'))
items = ip.split('.')
print('-'.join(items))

在这里插入图片描述

四、拓展:string模块

import random
import string
print(string.digits)
print(string.ascii_letters)
print(random.sample(string.digits,2))
print(random.sample(string.ascii_letters,2))
print("".join(random.sample(string.digits,2)))
print("".join(random.sample(string.ascii_letters,2)))

效果:
在这里插入图片描述

# 需求: 生成100个验证码, 每个验证码由2个数字和2个字母组成。
for i in range(100):
    print("".join(random.sample(string.digits,2)) + "".join(random.sample(string.ascii_letters,2)))

在这里插入图片描述

五、练习题

1.IP检测

编写一个函数来验证输入的字符串是否是有效的 IPv4 ?
1). IPv4 地址由十进制数和点来表示,每个地址包含4个十进制数,其范围为 0 - 255, 用(".")分割。
比如,172.16.253.1;
2). IPv4 地址内的数不会以 0 开头。比如,地址 172.16.254.01 是不合法的。

在这里插入图片描述

2.小学生计算能力测试系统

练习题:
设计一个程序,用来实现帮助小学生进行算术运算练习,它具有以下功能:
提供基本算术运算(加减乘)的题目,每道题中的操作数是随机产生的,
练习者根据显示的题目输入自己的答案,
程序自动判断输入的答案是否正确并显示出相应的信息。最后显示正确率

"""
 设计一个程序,用来实现帮助小学生进行算术运算练习,它具有以下功能:
 提供基本算术运算(加减乘)的题目,每道题中的操作数是随机产生的,
 练习者根据显示的题目输入自己的答案,
 程序自动判断输入的答案是否正确并显示出相应的信息。最后显示正确率
"""
import random
count = 10
right_count = 0
for i in range(count):
    num1 = random.randint(1,10)
    num2 = random.randint(1,10)
    symbol = random.choice(["+","-","*"])
    reslt = eval (f"{num1}{symbol}{num2}")
    question = (f"{num1}{symbol}{num2} = ?")
    print(question)
    user_answer = int(input("你的答案:"))
    if user_answer == reslt:
        print ("正确")
        right_count +=1
    else:
        print("错误")
print ("正确率:%.2f%%" %(right_count/count*100))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值