20 个最频繁使用的 Python 代码片段

20 个最频繁使用的 Python 代码片段

    • 1. 简单的 HTTP Web 服务
    • 2.单行循环List
    • 3.更新字典
    • 4.拆分多行字符串
    • 5. 跟踪列表中元素的频率
    • 6. 不使用 Pandas 读取 CSV 文件
    • 7. 将列表压缩成一个字符串
    • 8. 获取列表中元素的索引
    • 9. *arg 的魔法
    • 10. 获取任何数据的类型
    • 11.修改打印函数
    • 12. 字符串去大写
    • 13. 快捷变量交换方式
    • 14. 带分隔符打印
    • 15. 获取网页 HTML 数据
    • 16. 获取数据占用内存
    • 17. 简单的类创建
    • 18. 字符串乘法器
    • 19.链式比较
    • 20. 数字化整数值

1. 简单的 HTTP Web 服务

#!/usr/bin/python3

# 简单的 HTTP 服务器
import socketserver
import http.server

PORT = 8000
handler = http.server.SimpleHTTPRequestHandler
with socketserver.TCPServer(("", PORT), handler) as http:
    print("Server Launch at Localhost: " + str(PORT))
    http.serve_forever()
#在浏览器中输入http://127.0.0.1:8000/

2.单行循环List

mylist = [10, 11, 12, 13, 14]
print([i * 2 for i in mylist]) # [20, 22, 24, 26, 28]
print([i * 5 for i in mylist]) # [50, 55, 60, 65, 70]

简单的列表推导

3.更新字典

# 更新字典
mydict = {1: "Python", 2: "JavaScript", 3: "Csharp"}
mydict.update({4: "Dart"})
print(mydict) # {1: 'Python', 2: 'JavaScript', 3: 'Csharp', 4: 'Dart'}

4.拆分多行字符串

# 拆分多行字符串
string = "Data \n is encrpted \n by Python"
print(string)
# Output
# Data
# is encrpted
# by Python
splited = string.split("\n")
print(splited) # ['Data ', ' is encrpted ', ' by Python']

5. 跟踪列表中元素的频率

# Track Frequency
import collections
def Track_Frequency(List):
    return dict(collections.Counter(List))
print(Track_Frequency([10, 10, 12, 12, 10, 13, 13, 14]))
# Output
# {10: 3, 12: 2, 13: 2, 14: 1}
lis=[10, 10, 12, 12, 10, 13, 13, 14]
print(type(collections.Counter(lis)))
# Output
# 

6. 不使用 Pandas 读取 CSV 文件

[root@outsider1 python]# cat Test.csv
Sr, Name, Profession
1, 小猴子, 数据挖掘工程师
2, 云朵君, 算法工程师

[root@outsider1 python]# cat csv1.py
import csv
with open("Test.csv", "r") as f:
    read = csv.reader(f)
    for row in read:
        print(row,type(row))

[root@outsider1 python]# python3 csv1.py
['Sr', ' Name', ' Profession'] <class 'list'>
['1', ' 小猴子', ' 数据挖掘工程师'] <class 'list'>
['2', ' 云朵君', ' 算法工程师'] <class 'list'>

7. 将列表压缩成一个字符串

[root@outsider1 python]# cat lts.py
# 压缩字符串列表
mylist = ["I learn", "Python", "JavaScript", "Dart"]
string = " ".join(mylist)
print(string) # I learn Python JavaScript Dart

[root@outsider1 python]# python3 lts.py
I learn Python JavaScript Dart

format

[root@outsider1 python]# python3 lts.py
PythonI learnDart
[root@outsider1 python]# cat lts.py
# 压缩字符串列表
mylist = ["I learn", "Python", "JavaScript", "Dart"]
string = "{}{}{} ".format(mylist[1],mylist[0],mylist[3])
print(string) 
[root@outsider1 python]# python3 lts.py
PythonI learnDart

[root@outsider1 python]# cat lts.py
# 压缩字符串列表
mylist = ["I learn", "Python", "JavaScript", "Dart"]
string = "{2}{0}{1} ".format(mylist[1],mylist[0],mylist[3])
print(string) 
[root@outsider1 python]# python3 lts.py
DartPythonI learn

8. 获取列表中元素的索引

# 获取列表中元素的索引
mylist = [10, 11, 12, 13, 14]
print(mylist.index(10)) # 0 
print(mylist.index(12)) # 2
print(mylist.index(14)) # 4

能查找到第一个匹配元素的索引,还好index函数其实还提供了在指定下标范围内查找的功能

index()方法语法:
list.index(x[, start[, end]])
参数
x-- 查找的对象。
start-- 可选,查找的起始位置。
end-- 可选,查找的结束位置。
这里的start和end都是指索引号,从0开始,查找范围是[start,end)

所以查找第二个匹配元素的索引:

[root@outsider1 python]# cat index1.py
# 获取列表中元素的索引
mylist = [10, 11, 12, 13, 14, 10]
first = (mylist.index(10)) # 0
second = (mylist.index(10, first+1))
print(second)
print(mylist.index(12)) # 2
print(mylist.index(14)) # 4

[root@outsider1 python]# python3 index1.py
5
2
4

9. *arg 的魔法

[root@outsider1 python]# cat arg1.py
# *arg 的魔法
def func(*arg):
    num = 0
    for x in arg:
        num = num + x
    print(num) # 600
func(100, 200, 300)
[root@outsider1 python]# python3 arg1.py
600

在函数中,我们在参数名称前使用星号(*)来表示可变长度的参数。参数作为元组传递。
Python另一个名为 **kwargs的参数允许我们将字典类型的键值对参数传递给函数。

10. 获取任何数据的类型

[root@outsider1 python]# cat type1.py
# 获取任意数据的类型
data1 = 123
data2 = "Py"
data3 = 123.443
data4 = True
data5 = [1, 2]

print(type(data1)) # 
print(type(data2)) # 
print(type(data3)) # 
print(type(data4)) # 
print(type(data5)) # 

11.修改打印函数

# 修改打印函数
print("顶级编程语言是 %r, %r 和 %r" % ('Py', 'Js', 'C#'))
# 输出
# 顶级编程语言是 'Py', 'Js' 和 'C#'

%r为格式符,格式符为真实值预留位置,并控制显示的格式。格式符可以包含有一个类型码,用以控制显示的类型,如下:

格式符 说明
%s 字符串(采用str()的显示)
%r 字符串(采用repr()的显示)
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
%e 指数(基底写为e)
%E 指数(基底写为E)
%f 浮点数
%F 浮点数,与上相同
%g 指数(e)或浮点数(根据显示长度)
%G 指数(E)或浮点数(根据显示长度)

其中应该注意str()和repr()的区别:

  • str() 的输出追求可读性,输出格式要便于理解,适合用于输出内容到用户终端。
  • repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用。

举个例子:

>>> a 
'hello, world!\n'     #输出的a本来的模样 
>>> print(a)      		#对a经过编译后的样式文本输出,将转义字符进行转义 
hello,world! 
>>> print(str(a))     #可以看到对str返回的值进行print处理,这将与直接print(a)得到相同的结果 
hello,world! 
>>> repr(a)     			#获得的是a原始输入的存在于存储器中用于机器底层编译的代码 
"'hello, world!\n'" 
>>> print(repr(a))     #对于repr返回的值进行print处理,可以看到这与直接在终端输入a,得到的是相同的结果 
'hello,world!\n'

12. 字符串去大写

[root@outsider1 python]# cat low1.py
# 字符串的去大写
data1 = "ABCD"
data2 = "Py"
data3 = "Learn Coding"
print(data1.lower()) # abcd
print(data2.lower()) # py
print(data3.lower()) # learn coding

print(data2.upper())

[root@outsider1 python]# python3 low1.py
abcd
py
learn coding
PY

转小写lower(),转大写upper()

13. 快捷变量交换方式

[root@outsider1 python]# cat trans.py
# 快速交换变量的方法
d1 = 25
d2 = 50
print(d1, d2)
d1, d2 = d2, d1
print(d1, d2) # 50 25
[root@outsider1 python]# python3 trans.py
25 50
50 25

14. 带分隔符打印

# 带分隔符打印
print("Py", "Js", "C#", sep="-") # Py-Js-C#
print("100", "200", "300", sep="x") # 100x200x300

15. 获取网页 HTML 数据

[root@outsider1 python]# cat re1.py
# 使用 pip 安装请求的第一个安装请求导入请求
import requests
r = requests.get("https://www.baidu.com/s?wd=数据STUDIO ")
print(r.text) # 显示整页html数据

[root@outsider1 python]# python3 re1.py
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <title>�度����</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="apple-mobile-web-app-capable" content="yes">
...
        <p class="timeout-feedback-title">����</p>
    </div>

<script src="https://ppui-static-wap.cdn.bcebos.com/static/touch/js/mkdjump_v2_21d1ae1.js"></script>
</body>
</html>

响应内容还包括:

属性 说明
r.status_code HTTP请求的返回状态,200表求连接成功,404表示失败
r.text HTTP响应内容的字符串形式,即,url对应的页面内容
r.encoding 从HTTP header中猜测的响应内容编码方式
r.apparent_encoding 从内容中分析出的响应内容编码方式(备选编码方式)
r.content HTTP响应内容的二进制形式
r.url 返回URL实际参数
r.json
r.raw 数据流方式下载
r.iter_content 边下载边存储
r.headers
r.cookies
r.history 重定向

16. 获取数据占用内存

[root@outsider1 python]# cat mem1.py
# 获取数据占用的内存导入系统
import sys
def memory(data):
    return sys.getsizeof(data)
print(memory(100)) # 28
print(memory("Pythonnnnnnn")) # 61

17. 简单的类创建

[root@outsider1 python]# cat cls1.py
# 简单的类
class Employee:
    def __init__(self, empID):
        self.empID = empID
        self.name = "Haider"
        self.salary = 50000

    def getEmpData(self):
        return self.name, self.salary
emp = Employee(189345)
print(emp.getEmpData()) # ('Haider', 50000)

[root@outsider1 python]# python3 cls1.py
('Haider', 50000)

18. 字符串乘法器

[root@outsider1 python]# cat str1.py
# 字符串乘数#
# 正常方式
for x in range(5):
    print("C#")

# 更好的方式
print("C# "*5) # C# C# C# C# C#
[root@outsider1 python]# python3 str1.py
C#
C#
C#
C#
C#
C# C# C# C# C#

19.链式比较

# 链式比较
a = 5 
print(1 == a < 2) # False
print(2 < 3 < 6 > a) # True

尽量别这么用

20. 数字化整数值

# 数字化
integer = 234553
digitz = [int(i) for i in str(integer)]
print(digitz) # [2, 3, 4, 5, 5, 3]

你可能感兴趣的:(#,Python整理,python,开发语言)