Python之一些容易被忽略的小细节(一)

- 日理万妓 2022-05-20 06:34 396阅读 0赞

字符串操作

一、大小写转换

1. capitalize():第一个字母大写。

  1. s = 'aBcDeFg'
  2. s1 = s.capitalize()
  3. print(s1)

运行结果:

Abcdefg

Process finished with exit code 0

  1. 2. lower():全部换为小写。
  2. s = 'aBcDeFg'
  3. s1 = s.lower()
  4. print(s1)
  5. 运行结果:

abcdefg

Process finished with exit code 0

  1. 3. upper():全部转化为大写。
  2. s = 'aBcDeFg'
  3. s1 = s.upper()
  4. print(s1)
  5. 运行结果:

ABCDEFG

Process finished with exit code 0

  1. 4. swapcase():大小写相互转化。
  2. s = 'aBcDeFg'
  3. # 第一次转
  4. s1 = s.swapcase()
  5. print(s1)
  6. # 第二次转
  7. s2 = s1.swapcase()
  8. print(s2)
  9. 运行结果:

AbCdEfG
aBcDeFg

Process finished with exit code 0

  1. 5. casefold():除了英文外,将其他字符小写,效率略低,建议少用。
  2. s2 = "БBß" # 俄美德
  3. print(s2)
  4. print(s2.lower())
  5. print(s2.casefold())
  6. 运行结果:

БBß
бbß
бbss

Process finished with exit code 0

  1. 6. title():每个单词首字母大写,被特殊字符隔开也算。
  2. s3 = "hello eggon,java*nodejs_麻花藤dashabi"
  3. ret = s3.title()
  4. print(ret)
  5. 运行结果:

Hello Eggon,Java*Nodejs_麻花藤Dashabi

Process finished with exit code 0

  1. **二、字符串切割**
  2. 1. center(居中长度,“空白覆盖”):居中。
  3. s5 = "周杰伦"
  4. ret = s5.center(10, "*") # 拉长成10, 把原字符串放中间.其余位置补*
  5. print(ret)
  6. 运行结果:

***周杰伦****

Process finished with exit code 0

  1. 说明:若是居中长度小于字符串长度,原样打印字符串。若是刚好不是正中间,优先往左靠一个字符(尽量居中)。
  2. 2. 去空格strip(),lstrip(),rstrip():去左右两边空白,去左空白,去右空白。
  3. s7 = " python nodejs java "
  4. ret = s7.strip() # 去掉左右两端的空格
  5. print(ret)
  6. ret = s7.lstrip() # 去掉左边空格
  7. print(ret)
  8. ret = s7.rstrip() # 去掉右边空格
  9. print(ret)
  10. 运行结果:

python nodejs java
python nodejs java
python nodejs java

Process finished with exit code 0

  1. strip()也可以去掉指定的元素。
  2. s7 = "abcdefgabc"
  3. print(s7.strip("abc"))
  4. print(s7.strip("ef")) # 无法去除中间元素
  5. 运行结果:

defg
abcdefgabc

Process finished with exit code 0

  1. 3. replace():字符串替换。
  2. s8 = "Hello,Hold your dream"
  3. ret = s8.replace('your', 'our')
  4. print(ret)
  5. 运行结果:

Hello,Hold our dream

Process finished with exit code 0

  1. 4. split():字符串切割。
  2. s = "Hello,Hold your dream"
  3. ret = s.split("o")
  4. print(ret)
  5. 运行结果:

[‘Hell’, ‘,H’, ‘ld y’, ‘ur dream’]

Process finished with exit code 0

  1. 说明:切割之后返回列表。
  2. **三、字符串查找**
  3. 1. startswith(),endswith():判断是否以某字符(串)开头或者结尾,返回值为布尔类型。
  4. s = "Hello,Hold your dream"
  5. print(s.startswith("H"))
  6. print(s.endswith("M"))
  7. 运行结果:

True
False

Process finished with exit code 0

  1. 2. count():查找字符(串)出现的次数
  2. s = "Hello,Hold your dream"
  3. re = s.count("o")
  4. print(re)
  5. 运行结果:

3

Process finished with exit code 0

  1. 3. find():查找字符(串)的位置。
  2. s = "Hello,Hold your dream"
  3. re = s.find("Ho")
  4. print(re)
  5. 运行结果:

6

Process finished with exit code 0

  1. 注意:返回的是字符串的第一个值的角标。
  2. 4. index():找到字符串索引位置。
  3. s = "Hello,Hold your dream"
  4. re = s.index("Ho")
  5. # re1 = s.index("Hl") # ValueError: substring not found
  6. print(re)
  7. 运行结果:

6

Process finished with exit code 0

  1. index()不同的是find()在找不到substring时不会抛出异常,而是会返回-1,因此不会影响程序的执行。
  2. s = "Hello,Hold your dream"
  3. re = s.index("Ho")
  4. re1 = s.find("Hl") # 不会抛出错误,返回-1
  5. print(re)
  6. print(re1)
  7. 运行结果:

6
-1

Process finished with exit code 0

  1. **三、列表操作**
  2. 1. 切片
  3. lst = ["麻花藤", "王剑林", "马芸", "周鸿医", "向华强"]
  4. print(lst[0:3]) # ['麻花藤', '王剑林', '马芸']
  5. print(lst[:3]) # ['麻花藤', '王剑林', '马芸']
  6. print(lst[1::2]) # ['王剑林', '周鸿医'] 也有步长
  7. print(lst[2::-1]) # ['马芸', '王剑林', '麻花藤'] 也可以倒着取
  8. print(lst[-1:-3:-2]) # 倒着带步长
  9. 运行结果:

[‘麻花藤’, ‘王剑林’, ‘马芸’]
[‘麻花藤’, ‘王剑林’, ‘马芸’]
[‘王剑林’, ‘周鸿医’]
[‘马芸’, ‘王剑林’, ‘麻花藤’]
[‘向华强’]

Process finished with exit code 0

  1. 2. 删除pop(),remove(),clear(),del()的练习与区别。
  2. lst = ["麻花藤", "王剑林", "李嘉诚", "王富贵"]
  3. print(lst)
  4. deleted = lst.pop() # 删除最后一个
  5. print("被删除的", deleted)
  6. print(lst)
  7. el = lst.pop(2) # 删除2号元素
  8. print(el)
  9. print(lst)
  10. lst.remove("麻花藤") # 删除指定元素
  11. print(lst)
  12. # lst.remove("哈哈") # 删除不存在的元素会报错
  13. # # print(lst)
  14. lst.clear() # 清空list
  15. print(lst)
  16. # 切⽚删除,删除角标为1和2的元素
  17. del lst[1:3]
  18. print(lst)
  19. 运行结果:

[‘麻花藤’, ‘王剑林’, ‘李嘉诚’]
李嘉诚
[‘麻花藤’, ‘王剑林’]
[‘王剑林’]
[]
[]

Process finished with exit code 0

  1. 3. 修改
  2. lst = ["Python", "Java", "Golang", "Perl", "JavaScript", "Node.js", "C#", "D"]
  3. # 修改
  4. lst[3] = "C++"
  5. print(lst)
  6. # 切片修改,步长为3,注意取值的个数
  7. lst[1:4:3] = ["VB"]
  8. print(lst)
  9. # 切片修改,步长为默认值1
  10. lst[1:4] = ["I like Python"]
  11. print(lst)
  12. 运行结果:

[‘Python’, ‘Java’, ‘Golang’, ‘C++’, ‘JavaScript’, ‘Node.js’, ‘C#‘, ‘D’]
[‘Python’, ‘VB’, ‘Golang’, ‘C++’, ‘JavaScript’, ‘Node.js’, ‘C#‘, ‘D’]
[‘Python’, ‘I like Python’, ‘JavaScript’, ‘Node.js’, ‘C#‘, ‘D’]

Process finished with exit code 0

  1. 4. 迭代查询
  2. lst = ["Python", "Java", "Golang", "Perl", "JavaScript", "Node.js", "C#", "D"]
  3. for el in lst:
  4. print(el)
  5. 运行结果:

Python
Java
Golang
Perl
JavaScript
Node.js
C#
D

Process finished with exit code 0

  1. 5. 其它操作
  2. reverse():列表翻转
  3. lst = ["Python", "Java", "Golang", "Perl", "JavaScript", "Node.js", "C#", "D"]
  4. lst.reverse()
  5. print(lst)
  6. 运行结果:

[‘D’, ‘C#‘, ‘Node.js’, ‘JavaScript’, ‘Perl’, ‘Golang’, ‘Java’, ‘Python’]

Process finished with exit code 0

发表评论

表情:
评论列表 (有 0 条评论,396人围观)

还没有评论,来说两句吧...

相关阅读