51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3981|回复: 1
打印 上一主题 下一主题

[转贴] 请记住这20段Python代码!好用到哭

[复制链接]
  • TA的每日心情
    擦汗
    昨天 08:46
  • 签到天数: 981 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-9-3 14:33:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     Python是一种动态编程语言。设计简单而且易读,这是它广受欢迎的两大原因。
      Python的宗旨是:美丽胜于丑陋,显式胜于隐式。
      记住一些帮助提高编码设计的常用小诀窍在必要时刻能够减少你上网查资料的麻烦,可以助你一臂之力。
      1.反转字符串
      ABCDE --> EDCBA
    1.  # Reversing a string using slicing
    2.   my_string = "ABCDE"
    3.   reversed_string = my_string[::-1]
    4.   print(reversed_string)
    5.   # Output
    6.   # EDCBA
    复制代码
     2.使用标题类(首字母大写)
      可以将字符串的首字母大写。
    1.  my_string = "my name is chaitanya baweja"
    2.   new_string = my_string.title()
    3.   print(new_string)
    4.   # My Name Is Chaitanya Baweja
    复制代码
     3. 查找字符串的唯一要素
      去掉字符串中的重复字符。
    1. my_string = "aavvccccddddeee"
    2.   temp_set = set(my_string)
    3.   new_string = .join(temp_set)
    4.   print(new_string)
    复制代码
    4. 输出 n次字符串或列表
      直接使用*相乘。
    1. n = 3
    2.   my_string = "abcd"
    3.   my_list = [1,2,3]
    4.   print(my_string*n)
    5.   print(my_list*n)
    6.   import streamlit as st
    7.   一个有趣的用例是定义一个具有恒定值的列表,假设为零。
    8.   n = 4
    9.   my_list = [0]*n
    10.   # [0, 0, 0, 0]
    复制代码
     5. 列表解析
      对列表的每个元素进行操作。
    1. original_list = [1,2,3,4]
    2.   new_list = [2*x for x in original_list]
    3.   print(new_list)
    4.   # [2,4,6,8]
    复制代码
    6. 两个变量之间的交换值
      直接交换变量的值。
    1. a = 1
    2.   b = 2
    3.   a, b = b, a
    4.   print(a) # 2
    5.   print(b) # 1
    复制代码
    7. 将字符串拆分成子字符串列表
      通过使用.split()方法拆分字符串。
    1. string_1 = "My name is Chaitanya Baweja"
    2.   string_2 = "sample/ string 2"
    3.   print(string_1.split())
    4.   # [ My , name , is , Chaitanya , Baweja ]
    5.   print(string_2.split( / ))
    6.   # [ sample , string 2 ]
    复制代码
    8. 将字符串列表整合成单个字符串
      列表元素合并。
    1. list_of_strings = [ My , name , is , Chaitanya , Baweja ]
    2.   print( , .join(list_of_strings))
    3.   # Output
    4.   # My,name,is,Chaitanya,Baweja
    复制代码
    9. 检查给定字符串是否是回文(Palindrome)
      反转字符串已经在上文中讨论过。因此,回文成为Python中一个简单的程序。
    1. my_string = "abcba"
    2.   if my_string == my_string[::-1]:
    3.       print("palindrome")
    4.   else:
    5.       print("not palindrome")
    6.   # Output
    7.   # palindrome
    复制代码
    10. 列表的要素频率
      列表元素计数,获取最常出现的元素。
    1. from collections import Counter
    2.   my_list = [ a , a , b , b , b , c , d , d , d , d , d ]
    3.   count = Counter(my_list)
    4.   print(count)
    5.   # Counter({ d : 5, b : 3, a : 2, c : 1})
    6.   print(count[ b ])
    7.   # 3
    8.   print(count.most_common(1))
    9.   # [( d , 5)]
    复制代码
    11. 查找两个字符串是否为anagrams
      如果两个字符串的counter对象相等,那它们就是anagrams。
    1. From collections import Counter
    2.   str_1, str_2, str_3 = "acbde", "abced", "abcda"
    3.   cnt_1, cnt_2, cnt_3  = Counter(str_1), Counter(str_2), Counter(str_3)
    4.   if cnt_1 == cnt_2:
    5.       print( 1 and 2 anagram )
    6.   if cnt_1 == cnt_3:
    7.       print( 1 and 3 anagram )
    复制代码
    12. 使用try-except-else块
    a, b = 1,0
      try:
          print(a/b)
      except ZeroDivisionError:
          print("division by zero")
      else:
          print("no exceptions raised")
      finally:
          print("Run this always")

    13.使用列举获取索引和值对
      以下脚本使用列举来迭代列表中的值及其索引。
    1. my_list = [ a ,  b ,  c ,  d ,  e ]
    2.   for index, value in enumerate(my_list):
    3.       print( {0}: {1} .format(index, value))
    4.   # 0: a
    5.   # 1: b
    6.   # 2: c
    7.   # 3: d
    8.   # 4: e
    复制代码
    14. 检查对象的内存使用
      以下脚本可用来检查对象的内存使用。
    1. import sys
    2.   num = 21
    3.   print(sys.getsizeof(num))
    4.   # In Python 2, 24
    5.   # In Python 3, 28
    复制代码
    15. 合并两个字典
    dict_1 = { apple : 9,  banana : 6}
      dict_2 = { banana : 4, orange : 8}
      combined_dict = {**dict_1, **dict_2}
      print(combined_dict)
      # Output
      # { apple : 9, banana : 4, orange : 8}

    16. 执行一段代码所需时间
      下面的代码使用time 软件库计算执行一段代码所花费的时间。
    1. import time
    2.   start_time = time.time()
    3.   a, b = 1,2
    4.   c = a+ b
    5.   end_time = time.time()
    6.   time_taken_in_micro = (end_time- start_time)*(10**6)
    7.   print(" Time taken in micro_seconds: {0} ms").format(time_taken_in_micro)
    复制代码
    17. 列表清单扁平化
      有时你不确定列表的嵌套深度,而且只想全部要素在单个平面列表中。
      可以通过以下方式获得:
    1. from iteration_utilities import deepflatten
    2.   def flatten(l):
    3.     return [item for sublist in l for item in sublist]
    4.   l = [[1,2,3],[3]]
    5.   print(flatten(l))
    6.   # [1, 2, 3, 3]
    7.   l = [[1,2,3],[4,[5],[6,7]],[8,[9,[10]]]]
    8.   print(list(deepflatten(l, depth=3)))
    9.   # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    复制代码
    若有正确格式化的数组,Numpy扁平化是更佳选择。
      18. 列表取样
      通过使用random软件库,以下代码从给定的列表中生成了n个随机样本。
    1. import random
    2.   my_list = [ a , b , c , d , e ]
    3.   num_samples = 2
    4.   samples = random.sample(my_list,num_samples)
    5.   print(samples)
    6.   # [ a , e ]
    复制代码
    强烈推荐使用secrets软件库生成用于加密的随机样本。
      以下代码仅限用于Python 3。
    1. import secrets                           
    2.   secure_random = secrets.SystemRandom()
    3.   my_list = [ a , b , c , d , e ]
    4.   num_samples = 2
    5.   samples = secure_random.sample(my_list, num_samples)
    6.   print(samples)
    7.   # [ e , d ]
    复制代码
    19. 数字化
      以下代码将一个整数转换为数字列表。
    1. num = 123456
    2.   list_of_digits = list(map(int, str(num)))
    3.   print(list_of_digits)
    4.   # [1, 2, 3, 4, 5, 6]
    5.   list_of_digits = [int(x) for x in str(num)]
    6.   print(list_of_digits)
    7.   # [1, 2, 3, 4, 5, 6]
    复制代码
    20. 检查唯一性
    def unique(l):
          if len(l)==len(set(l)):
              print("All elements are unique")
          else:
              print("List has duplicates")
      unique([1,2,3,4])
      unique([1,1,2,3])




















    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏3
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:49
  • 签到天数: 1715 天

    连续签到: 1 天

    [LV.Master]测试大本营

    2#
    发表于 2021-9-3 15:06:37 | 只看该作者
    哇哦,很实用!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-7-9 06:59 , Processed in 0.066722 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表