Python字符串

一、字符串的创建和赋值

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

二、字符串的基本特性

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

在这里插入图片描述

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

在这里插入图片描述

3.正向索引和反向索引
s = 'WESTOS'
print(s[0])  # 'W'
print(s[3]) # 'T'
print(s[-3]) # 'T'

在这里插入图片描述

4.切片
"""
回顾: 
    range(3):[0, 1, 2]
    range(1, 4): [1, 2, 3]
    range(1, 6, 2): [1, 3, 5]
切片: 切除一部分的内容
    s[start:end:step]
    s[:end]:
    s[start:]:
总结: 
    s[:n]: 拿出前n个元素
    s[n:]: 除了前n个元素, 其他元素保留
    s[:]:从头开始访问一直到字符串结束的位置
    s[::-1]: 倒序输出
"""
s = 'hello westos'
print(s[1:3]) # 'el'
print(s[:3]) # 'hel'
print(s[:5])  # 拿出字符串的前5个字符
print(s[1:])  # 'ello westos'
print(s[2:])  # 'llo westos'
print(s[:])   # 拷贝字符串
print(s[::-1])

在这里插入图片描述

5.for循环访问
s = 'westos'
count = 0
for item in s:
    count += 1
    print(f"第{count}个字符:{item}")

在这里插入图片描述

三、字符串内建方法

1.字符串类型的判断与转换

在这里插入图片描述

# 1. 类型判断
s = 'HelloWESTOS'
print(s.isalnum())  # True
print(s.isdigit())  # Flase
print(s.isupper())  # False

# 2. 类型的转换
print('hello'.upper())
print('HellO'.lower())
print('HellO WOrld'.title())
print('HellO WOrld'.capitalize())
print('HellO WOrld'.swapcase())

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

在这里插入图片描述
在这里插入图片描述

2. 字符串开头和结尾的判断
# startswith
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}是未知文件')

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

在这里插入图片描述

3.字符串的数据清洗
"""
数据清洗的思路:
    lstrip: 删除字符串左边的空格(指广义的空格: \n, \t, ' ')
    rstrip: 删除字符串右边的空格(指广义的空格: \n, \t, ' ')
    strip: 删除字符串左边和右边的空格(指广义的空格: \n, \t, ' ')
    replace: 替换函数, 删除中间的空格, 将空格替换为空。replace(" ", )
"""
a = " hello ".strip()
print(a)
b = " hello ".lstrip()
print(b)
c = " hello ".rstrip()
print(c)
d = " hel        lo ".replace(" ", "")
print(d)

在这里插入图片描述

4.字符串的位置调整
print("学生管理系统".center(50))
print("学生管理系统".center(50, "*"))
print("学生管理系统".center(50, "-"))
print("学生管理系统".ljust(50, "-"))
print("学生管理系统".rjust(50, "-"))

在这里插入图片描述

5.字符串的搜索和统计
# find如果找到子串, 则返回子串开始的索引位置。 否则返回-1
# index如果找到子串,则返回子串开始的索引位置。否则报错(抛出异常).

s = "hello westos"
print(s.find("llo"))
print(s.index("llo"))
print(s.find("xxx"))
print(s.index("xxx"))
print(s.count("xxx"))
print(s.count("l"))
print(s.count("o"))

在这里插入图片描述

6.字符串的分离和拼接
# 分离
ip = "172.25.254.100"
# 需求:IP地址的合法性-将ip的每一位数字拿出, 判断每位数字是否在0-255之间。
print(ip.split('.'))
items = ip.split('.')
print(items)

# 拼接
print(items)
# 需求: 将四个数字用'-'拼接起来
print("-".join(items))

在这里插入图片描述

四、拓展:string模块

string:字符串操作相关函数和工具

随机生成100个验证码(两个数字四个字母随机组合)
import random
import string
print(random.choice("0123456789"))
print(random.choice("0123456789") + random.choice('0123456789'))
print(string.ascii_letters)
print(random.sample(string.ascii_letters, 4))
print("".join(random.sample(string.ascii_letters, 4)))
print( "".join(random.sample(string.digits, 2)) + "".join(random.sample(string.ascii_letters, 4)))
for i in range(100):
    print("".join(random.sample(string.digits, 2)) + "".join(random.sample(string.ascii_letters, 4)))

在这里插入图片描述

五、实例

1.判断输入字符串是否为回文字符
s = input('输入字符串:')
result = "回文字符串" if s == s[::-1] else "不是回文字符串"
print(s + "是" + result)
或
s = input("请输入字符串:")
if s[:] == s[::-1]:
    print(f"{s}是回文字符")
else:
    print(f"{s}不是回文字符")

在这里插入图片描述
在这里插入图片描述

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(["+", "-", "*"])
    result = eval(f"{num1}{symbol}{num2}")
    question = f"{num1} {symbol} {num2} = ?"
    print(question)
    user_answer = int(input("Answer:"))
    if user_answer == result:
        print("Right")
        right_count += 1
    else:
        print("Error")
print("Right percent: %.2f%%" %(right_count/count*100))

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值