Python 常用小妙招(一)

àì夳堔傛蜴生んèń 2022-09-13 04:09 242阅读 0赞

本文记录一些 Python 日常编程中的小妙招,并使用 IPython 进行交互测试,让我们更好的了解和学习 Python 的一些特性。

两变量交换

语法:

  1. a, b = b, a

IPython测试

  1. In [1]: a = 3
  2. In [2]: b = 5
  3. In [3]: a, b = b, a
  4. In [4]: a
  5. Out[4]: 5
  6. In [5]: b
  7. Out[5]: 3

免去了利用一个临时变量进行过渡交互。

重复字符串

  1. In [2]: 'love ' * 2
  2. Out[2]: 'love love '
  3. In [7]: for i in range(1, 10):
  4. ...: print('*' * i)
  5. ...:
  6. *
  7. **
  8. ***
  9. ****
  10. *****
  11. ******
  12. *******
  13. ********
  14. *********

列表与字符串互相转换

假如有一个列表内容为 ['n', 'i', 'c', 'e'],然后设法变成 字符串nice

字符串 0123456789 转成列表 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

语法:

  1. ''.join(['p', 'y', 't', 'h', 'o', 'n'])

IPython测试

  1. In [6]: li = ['p', 'y', 't', 'h', 'o', 'n']
  2. In [7]: ''.join(li)
  3. Out[7]: 'python'
  4. # 字符串转列表
  5. In [11]: s = '0123456789'
  6. In [12]: s = list(s)
  7. In [13]: s
  8. Out[13]: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

相对 for 循环进行拼接是不是简洁有效,字符串可以直接转列表。相互转换看看各自的 api 能不能排上用场。

多情况判空

假如一个变量可能是 '', False, None, 0, [],但都认为这样是 该如何判空呢 ?

语法:

  1. a = ''
  2. if a:
  3. print('进不来')
  4. else:
  5. print('空值')

IPython测试

  1. In [20]: a = ''
  2. In [21]: if a:
  3. ...: print('进不来')
  4. ...: else:
  5. ...: print('空值')
  6. ...:
  7. 空值
  8. In [22]: a = False
  9. In [23]: if a:
  10. ...: print('进不来')
  11. ...: else:
  12. ...: print('空值')
  13. ...:
  14. 空值
  15. In [24]: a = None
  16. In [25]: if a:
  17. ...: print('进不来')
  18. ...: else:
  19. ...: print('空值')
  20. ...:
  21. 空值
  22. In [26]: a = 0
  23. In [27]: if a:
  24. ...: print('进不来')
  25. ...: else:
  26. ...: print('空值')
  27. ...:
  28. 空值
  29. In [28]: a = []
  30. In [29]: if a:
  31. ...: print('进不来')
  32. ...: else:
  33. ...: print('空值')
  34. ...:
  35. 空值

多值一起判断

同时校验多个参数不是空值或含有空值

  1. In [30]: a = 1
  2. In [31]: b = ''
  3. In [32]: c = True
  4. In [33]: all([a, b, c])
  5. Out[33]: False
  6. In [34]: any([a, b, c])
  7. Out[34]: True
  • all() 是列表中所有元素都不为空为 True,反之只要有一个是 空值False
  • any() 是列表中有一个元素非空即为 True,所有元素为空才 False
  • 注意 空值'', False, None, 0, [],然后就是需要装到一个统一的列表进行 all() , any() 判断

刚好可以验证上面的多情况判空。

  1. In [54]: li
  2. Out[54]: [True, True, True, True]
  3. In [55]: all(li)
  4. Out[55]: True
  5. In [56]: any(li)
  6. Out[56]: True

all() 验证

  1. # all 只要有一个是空值就False
  2. In [62]: all([False, True, True, True])
  3. Out[62]: False
  4. In [66]: all(['', True, True, True])
  5. Out[66]: False
  6. In [66]: all([None, True, True, True])
  7. Out[66]: False
  8. In [66]: all([True, [], True, True])
  9. Out[66]: False
  10. In [66]: all([True, 0, True, True])
  11. Out[66]: False
  12. # all 全部非空才 True
  13. In [76]: li
  14. Out[76]: ['python', 3.14, [1, 2], True]
  15. In [77]: all(li)
  16. Out[77]: True

any() 验证

  1. # 所有元素为空则 False
  2. In [82]: any([False, False, False, False])
  3. Out[82]: False
  4. In [83]: any([False, '', [], 0, None])
  5. Out[83]: False
  6. # any 只要有一个非空就为 True
  7. In [86]: any([True, '', [], 0, None])
  8. Out[86]: True
  9. In [87]: any([False, '123', [], 0, None])
  10. Out[87]: True
  11. In [88]: any([False, '', [1, 2], 0, None])
  12. Out[88]: True
  13. In [89]: any([False, '', [], 1, None])
  14. Out[89]: True

尾语

✍ 用 Code 谱写世界,让生活更有趣。❤️

✍ 万水千山总是情,点赞再走行不行。❤️

✍ 码字不易,还望各位大侠多多支持。❤️

发表评论

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

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

相关阅读

    相关 14个SpringBoot优化

    每次聊到代码优化,都会有很多人说理论、架构、核心思路,其实我觉得代码优化这事说简单了很简单,说复杂了吧它也有一定的难度,但是我觉得有一个良好的编码习惯很重要,下面分享一下14个

    相关 EXCEL的

       今天,上面给了一个excel,让根据“门店编号”,将对应的“门店ID”导入到数据库中。怎么解?    如果,一个个找,然后复制粘贴,太浪费时间了。     用sql语