#!/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/
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]
简单的列表推导
# 更新字典
mydict = {1: "Python", 2: "JavaScript", 3: "Csharp"}
mydict.update({4: "Dart"})
print(mydict) # {1: 'Python', 2: 'JavaScript', 3: 'Csharp', 4: 'Dart'}
# 拆分多行字符串
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']
# 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
#
[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'>
[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
# 获取列表中元素的索引
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
[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
的参数允许我们将字典类型的键值对参数传递给函数。
[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)) #
# 修改打印函数
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()的区别:
举个例子:
>>> 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'
[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()
[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
# 带分隔符打印
print("Py", "Js", "C#", sep="-") # Py-Js-C#
print("100", "200", "300", sep="x") # 100x200x300
[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 | 重定向 |
[root@outsider1 python]# cat mem1.py
# 获取数据占用的内存导入系统
import sys
def memory(data):
return sys.getsizeof(data)
print(memory(100)) # 28
print(memory("Pythonnnnnnn")) # 61
[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)
[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#
# 链式比较
a = 5
print(1 == a < 2) # False
print(2 < 3 < 6 > a) # True
尽量别这么用
# 数字化
integer = 234553
digitz = [int(i) for i in str(integer)]
print(digitz) # [2, 3, 4, 5, 5, 3]