Python语言第五章之字符串

字符串

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

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

相关推荐

  1. Python语言字符串

    2024-04-24 22:14:01       34 阅读
  2. Python语言函数基础

    2024-04-24 22:14:01       30 阅读
  3. C语言——习题

    2024-04-24 22:14:01       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-24 22:14:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-24 22:14:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-24 22:14:01       82 阅读
  4. Python语言-面向对象

    2024-04-24 22:14:01       91 阅读

热门阅读

  1. 5359: 【图论】有向图连接边数(图的遍历前置)

    2024-04-24 22:14:01       28 阅读
  2. 多批道处理算法

    2024-04-24 22:14:01       29 阅读
  3. C# 下记录(Record)详解

    2024-04-24 22:14:01       34 阅读
  4. 6个外贸新人关注的问题

    2024-04-24 22:14:01       31 阅读
  5. Python内置函数hex()详解

    2024-04-24 22:14:01       33 阅读
  6. Flutter 中的 Crypto 库介绍及使用

    2024-04-24 22:14:01       30 阅读
  7. 【MySql】深入了解 MySQL 中的 INNER JOIN 和 OUTER JOIN

    2024-04-24 22:14:01       25 阅读