Python语言第五章之字符串

本文详细介绍了Python中字符串的表示、元素获取、遍历、常用方法(如isalpha(),isdecimal(),startwith(),endwith(),find(),rfind(),replace()等),以及如何进行字符串的切割和去空白。还展示了字符串在用户名和密码校验中的应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串

字符串就是一串字符, 是编程语言中表示文本的数据类型

1. 字符串表示

单引号 双引号 多引号 多行字符串, 有空格默认一个空格, 占一个位置

str1 = "hello world" 
str3 = '666你好' 
str2 = """ what where who """

2. 获取字符串中的元素

和列表一样, 通常使用下标获取

str = "hello world"
str[0]  # 第一个元素
str[1]  # 第二个元素

3. 遍历字符串

str1 = "hello word"
for s in str1:
    print(s)

4. 字符串常用方法

4.1 判断

isalpha( ) : 在至少有一个字符的前提下, 所有字符都是字母组成, 返回True

isdecimal( ) : 在至少有一个字符的前提下,所有字符都是数字组成, 返回True

startwith(str) : 判断是否以 str 开头, 返回True

endwith(str) : 判断是否以 str 结尾, 返回True

str1 = "hello world"
# for s in str1:
#     print(s)

# print(str1)

str2 = "helloworld"
str3 = ""
str4 = "123abc"
str5 = "123"
str6 = "1 2456"


"""
isalpha() : 至少有一个字符,并且所有字符都是字母则返回True
"""
print(str1.isalpha())  # False(空格不是字母)
print(str2.isalpha())  # True
print(str3.isalpha())  # False(不满足至少有一个字符)
print("*" * 20)

"""
isdecimal() : 只包含数字则返回
"""
print(str3.isdecimal())  # False
print(str4.isdecimal())  # False
print(str5.isdecimal())  # True
print(str6.isdecimal())  # False
print("*" * 20)

"""
startwith(str) : 检查是否以str开头,是则返回True
"""
print(str1.startswith("h"))  # True
print(str1.startswith("1"))  # False
print(str1.startswith(""))  # True
print("*" * 20)

"""
endwith(str) : 检查是否以str结尾, 是则返回True
"""
print(str1.endswith("d"))  # True
print(str1.endswith(""))  # True
print(str1.endswith("0"))  # False


4.2 查找,替换

查找: 

find (str, start = 0, end = len(string))  从左往右找

str : 要查找的字符, start , end 指定范围, 如果找到则返回True

rfind (str, start = 0, end = len(string))  从右往左找

str : 要查找的字符, start , end 指定范围, 如果找到则返回True

替换:

replace(old_str, new _str, num = string, count(old))
返回一个新字符串, 把stirng中的old_str替换成new_str,
如果num指定, 则替换不超过num次

str1 = "hello world"

"""
find(str, start = 0, end = len(string))
检查str 是否包含在string中, 如果start和end指定范围
则检查是否包含在指定范围内, 如果是返回开始的索引值, 否则返回 -1
"""
print(str1.find("hello"))  # 0
print(str1.find("world"))  # 6
print("*" * 10)
"""
rfind(str, start = 0, end = len(string))
从右边开始找
"""
print(str1.rfind("hello"))  # 0
print(str1.rfind("world"))  # 6
print("*" * 10)
"""
replace(old_str, new _str, num = string, count(old))
返回一个新字符串, 把stirng中的old_str替换成new_str,
如果num指定, 则替换不超过num次
"""
print(str1.replace("hello", "666"))
# 666 world

4.3 切割, 去空白

切割:

split (str="", maxsplit)
返回列表,以 str 为分隔符拆分 string,
如果 maxsplit 有指定值,则仅分隔 maxsplit + 1 个子字符串,
str 默认包含\r, \t, \n 和空格

去空白:

strip()
返回新字符串,截掉 string 左右两边的空白字符(可以指定截掉的字符)

str1 = "hello world"

"""
split(str="", maxsplit)
返回列表,以 str 为分隔符拆分 string,
如果 maxsplit 有指定值,则仅分隔 maxsplit + 1 个子字符串,
str 默认包含\r, \t, \n 和空格
"""
print(str1.split(" "))
# ['hello', 'world']

print(str1.split("o"))
# ['hell', ' w', 'rld']

"""
strip()
返回新字符串,截掉 string 左右两边的空白字符(可以指定截掉的字符)
"""
str2 = "   a   b   c  "
print(str2)
print(str2.strip())

5. 字符串案例之用户名密码校验

● 用户名和密码格式校验程序
● 要求从键盘输入用户名和密码,分别校验格式是否符合规则
  ○ 如果符合,打印用户名合法,密码合法
  ○ 如果不符合,打印出不符合的原因,并提示重新输入
● 用户名长度6-20,用户名必须以字母开头
● 密码长度至少6位,不能为纯数字,不能有空格
"""
"""
1.从键盘输入用户名(需要while循环)
2.长度6-20
3.必须字母开头

4.输入密码(while循环)
5.密码长度至少6位
6.不能为纯数字
7.不能有空格

while True:
    username = input("请输入用户名: ")
    # 用户名
    if 6 <= len(username) <= 20:
        if username[0].isalpha():
            print("合法用户名")
            break
        else:
            print("用户名首字符必须是字母")
            continue
    else:
        print("用户名长度不正确")
        continue

while True:
    password = input("请输入密码: ")
    # 密码
    if len(password) >= 6:
        if not password.isdecimal():
            # " " in password
            if password.find(" "):
                print("合法密码")
                break
            else:
                print("密码不能有空格")
                continue
        else:
            print("密码不能为纯数字")
            continue
    else:
        print("长度不正确")
        continue

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值