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

字符串定义

Python中可以使用一对双引号或者一对单引号定义字符串

  1. str1 = 'hello'
  2. str2 = "hello"

获取字符串中元素

和列表一样,字符串也是通过索引获取元素

  1. str = "hello"
  2. # 获取第三个元素
  3. ele = str[2] # l

遍历字符串

可以通过for循环遍历字符串

  1. str = 'hello'
  2. for ele in str:
  3. print(ele)

字符串的常见操作

判断

方法 说明
isalpha() 如果 string 至少有一个字符并且所有字符都是字母则返回 True
isdecimal() 如果 string 只包含数字则返回 True
startwith(str) 检查字符串是否是以 str 开头,是则返回 True
endswith(str) 检查字符串是否是以 str 结束,是则返回 True

查找替换

方法 说明
find(str, start=0, end=len(string)) 检测 str 是否包含在 string 中,如果 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回 -1
rfind(str, start=0, end=len(string)) 类似于 find(),不过是从右边开始查找
replace(old_str, new_str, num=string.count(old)) 返回一个新字符串,把 string 中的 old_str 替换成 new_str,如果 num 指定,则替换不超过 num 次

切割

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

去空白

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

练习-用户名和密码校验

需求

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

分析

  1. 1.从键盘输入用户名(需要while循环)
  2. 2.长度6-20
  3. 3.必须字母开头
  4. 4.输入密码(while循环)
  5. 5.密码长度至少6
  6. 6.不能为纯数字
  7. 7.不能有空格

实现

  1. while True:
  2. # 1.从键盘输入用户名(需要while循环)
  3. name = input('请输入用户名:')
  4. # 2.长度6-20
  5. if not (len(name) >= 6 and len(name) <= 20):
  6. print('用户名必须6到20位')
  7. continue
  8. # 3.必须字母开头 ab A-Z
  9. # 获取第一个字母 是否是a-z A-Z a
  10. ele = name[0]
  11. if not ele.isalpha():
  12. print('用户名第一个必须为字母')
  13. continue
  14. # 用户名满足
  15. print('用户名合法')
  16. break
  17. # 4.输入密码(while循环)
  18. while True:
  19. pwd = input('请输入密码')
  20. # 5.密码长度至少6位
  21. if len(pwd) < 6:
  22. print('密码长度至少为6位')
  23. continue
  24. # 6.不能为纯数字
  25. if pwd.isdecimal():
  26. print('密码不能为纯数字')
  27. continue
  28. # 7.不能有空格
  29. # ' 张 三 '
  30. if ' ' in pwd:
  31. print('密码不能有空格')
  32. continue
  33. print('密码合法')
  34. break

扩展 :::success

  • isalpha()字符串中所有元素都是字母,则返回True
  • isdecimal()字符串中都是数字,则返回True :::