Installing Python 3 - How to install/use both Python 2 and Python 3 https://www.youtube.com/watch?v=IX6mc9l6tY4&index=2&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
python官网: www.python.org
开始>python shell窗口 输入print('hi')
print('Hi',5) #输出Hi5
print('we\'re going to the store') #\后字符原样输出
print('Hi'+str(5)) #str()方法, int('8')
4**4 #输出256, 表示4的4次方
x,y = (3,8) #x=3, y=8
for eachNumber in exampleList #相当于c#中的foreach
rang(1,11) #输出1到10
格式化字符串函数format: "苹果的花费为:{};葡萄的话费为:{};总花费为:{}".format(apple_cost,grape_cost,total_cost)
变量交换值:
a = 10
b = 20
a, b = b, a #结果为a is 20, b is 10
if z<y>x:
print('y is greater than z and greater than x')
if x>y:
print('111')
elif x<z: #elif, else if的写法
print('222')
else:
print('333')
def simple(num1,num2=5):
print(num1,num2)
simple(2) #输出2 5, num2默认值为5,方法中可以只传一个没有默认值的参数
有多个默认值参数,调用方法: basic_window(500,350,bgc='b')
Python 3 Programming Tutorial - Global and Local Variables https://www.youtube.com/watch?v=r9LtArXOYjk&index=14&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
使用全局变量需要在方法里面声明:
x=6
def example():
global x #这里声明x为全局变量
print(x)
x+=5
print(x)
Python 3 Programming Tutorial - Installing modules https://www.youtube.com/watch?v=UKXx4e9PotI&index=15&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
Python Extension Packages: www.lfd.uci.edu/~gohlke/pythonlibs/
PyQtGraph: www.pyqtgraph.org 下载pyqtgraph-0.9.8.tar.gz解压, 文件夹右键打开命令窗口执行setup.py install(有setup.py文件).
How to download and install Python Packages and Modules with Pip https://www.youtube.com/watch?v=jnpC_Ib_lbc&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M&index=16
使用指定的Python版本: C:/Python34/Scripts/pip install matplotlib
PyPI - the Python Package Index: https://pypi.python.org/pypi
https://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载所需的package(.whl), 打开命令窗口输入pip install "xxx.whl"
print('\n') #\n换行
readMe = open('exampleFile.txt','r').readlines() #这里的readlines()返回数组如['111','222','333'], 如果是read()方法则返回字符串
print(readMe)
if __name__ == '__main__': #如果是执行的本脚本则会打印test,如果是执行的其他脚本引用了本脚本则不会打印test
print('test')
Getting user input:
x = input('What is your name?')
print('Hello',x)
Python 3 Programming Tutorial - Statistics (Mean, Standard Deviation) https://www.youtube.com/watch?v=D2U6yg0i-oA&index=24&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
自身模块存放路径: C:/Python/Lib, 第三方package存放路径: C:/Python/Lib/site-packages
import statistics
example_list = [4,2,3,5]
x = statistics.variance(example_list)
print(x)
as:
import statistics as s
x = s.variance(example_list)
连简写都不要:
from statistics import variance
x = variance(example_list)
Python 3 Programming Tutorial - Lists and Tuples https://www.youtube.com/watch?v=RVXIBZvg-W8&index=27&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
Tuples不能变,List可以变.
Tuples:
x = 5,6,7
x = (5,6,7)
print(x[1]) #输出6
List:
y = [5,6,7,8]
Python 3 Programming Tutorial - List Manipulation https://www.youtube.com/watch?v=LUoKlnK5wcc&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M&index=28
x = [5,7,3,4]
x.append(2) #将2加到list的最后
x.insert(2,99) #插入到index为2的位置,值是99
x.remove(2) #移除第一个元素为2的元素
x.remove(x[2]) #移除第三个元素
print(x[2:3]) #输出第3到第四个元素, 结果为[3,4]
print(x[-1]) #输出最后一个元素
print(x[-2]) #输出倒数第二个元素
print(x.index[7]) #输出元素7的序列号,结果为1
print(x.count[7]) #输出有多少个元素7, 结果为1
x.sort()
Python 3 Programming Tutorial - Multi-dimensional List https://www.youtube.com/watch?v=Go-FfGhxbSM&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M&index=29
x = [[5,6],[6,7],[7,2],[2,5]]
print(x[1][0]) #第二个元素里面的第一个元素, 结果为6
Python 3 Programming Tutorial - Reading from a CSV spreadsheet https://www.youtube.com/watch?v=K_oXb04izZM&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M&index=30
import csv
with open('example.csv') as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
for row in readCSV:
print(row)
Python 3 Programming Tutorial - Try and Except error Handling https://www.youtube.com/watch?v=nqGhjLUhyDc&index=31&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
try:
...
except Exception as e:
print(e)
if whatColor in colors: #if in
Python 3 Programming Tutorial - Multi-line Print https://www.youtube.com/watch?v=gINlrLx2zNA&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M&index=32
print('''
aaa
bbb
ccc
''')
Python 3 Programming Tutorial - Dictionaries https://www.youtube.com/watch?v=YNRc6c0wUA8&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M&index=33
exDict = {'Jack':15, 'Bob':22, 'Alice':12, 'Kevin':17}
exDict['Tim'] = 14 #添加
exDict['Tim'] = 15 #修改
del exDict['Tim'] #删除
Python 3 Programming Tutorial - Built-in Functions https://www.youtube.com/watch?v=7rjJrQy9gi4&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M&index=34
exNum1 = -5
print(abs(exNum1)) #结果为5
help() #ctrl + c退出
max(exList) #max函数
alt + p #输出上一次打印的东西
int('55')
str(55)
Python 3 Programming Tutorial - OS Module https://www.youtube.com/watch?v=wgHeTJtth0w&index=35&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
import os
curDir = os.getcwd() #get current working directory
os.mkdir('newDir')
import time
time.sleep(2)
os.rename('newDir','newDir2')
tiem.sleep(2)
os.rmdir('newDir2')
help(os)
Python 3 Programming Tutorial - Sys Module https://www.youtube.com/watch?v=rLG7Tz6db0w&index=36&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
import sys
sys.stderr.write('This is stderr text\n') #红色的文字
sys.stderr.flush()
sys.stdout.write('This is stdout text\n') #蓝色的文字
print(sys.argv)
文件夹右键打开命令窗口执行python sys.py(sys.py是python文件),即是执行这个python文件中的代码.
Python 3 Programming Tutorial - urllib module https://www.youtube.com/watch?v=5GzVNi0oTxQ&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M&index=37
urllib module用于访问网络
import urllib.request
import urllib.parse
#x = urllib.request.urlopen('https://www.google.com')
#print(x.read()) #打印google页面的源代码
url="http://pythonprogramming.net"
values={'s':'basic','submit':'search'} #网址后面所带的参数
data=urllib.parse.urlencode(values)
data=data.encode('utf-8')
req=urllib.request.Request(url,data)
resp=urllib.request.urlopen(req)
respData=resp.read()
print(respData)
Python 3 Programming Tutorial - Regular Expressions / Regex with re https://www.youtube.com/watch?v=sZyAn2TW7GY&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M&index=38
import re #导入正则表达式的命名空间
#注意变量右边是三个单引号
exampleString = '''
Jessica is 15 years old, and Daniel is 27 years old.
Edward is 97, and his grandfather, Oscar, is 98.
'''
ages = re.findall(r'\d{1,3}',exampleString)
names = re.findall(r'[A-Z][a-z]*', exampleString)
print(ages)
print(names)
ageDict = {}
x=0
for eachName in names:
ageDict[eachName] = ages[x] #相当于赋值给属性
x+=1
print(ageDict) #结果为 {'Daniel':'27','Jessica':'15',...}
Python 3 Programming Tutorial - Parsing Websites with re and urllib https://www.youtube.com/watch?v=GEshegZzt3M&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M&index=39
import urllib.request
import urllib.parse
import re
url = 'http://pythonprogramming.net'
values = {'s':'basics','submit':'search'}
data = urllib.parse.urlencode(values)
data = data.encode('utf-8')
req = urllib.request.Request(url,data)
resp = urllib.request.urlopen(req)
respData = resp.read()
print(respData)
paragraphs=re.findall(r'<p>(.*?)</p>',str(respData))
for eachP in paragraphs:
print(eachP)
Python 3 Programming Tutorial - tkinter module making windows https://www.youtube.com/watch?v=Ccct5D2AyNM&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M&index=40
image的libery: 打开www.lfd.uci.edu/~gohlke/pythonlibs/ 页面搜索pillow, 打开www.lfd.uci.edu/~gohlke/pythonlibs/#pil,下载Pillow-2.5.1.win-amd64-py3.4.exe
from tkinter import *
from PIL import Image, ImageTk
class Window(Frame): #Frame来自tkinter
def __init__(self,master = None):
Frame.__init__(self,master)
self.master=master
self.init_window()
def init_window(self):
self.master.title("GUI")
self.pack(fill=BOTH, expand=1)
#quitButton = Button(self, text="Quit",command=self.client_exit) #Button来自tkinter
#quitButton.place(x=0,y=0)
menu = Menu(self.master)
self.master.config(menu=menu)
file = Menu(menu)
file.add_command(label='Exit',command=self.client_exit) #如果self.client_exit后面加上括号(),则会立即执行改方法
menu.add_cascade(label='File',menu=file)
edit=Menu(menu)
edit.add_command(label='Show Image', command=self.showImg)
edit.add_command(label='Show Text', command=self.showTxt)
menu.add_cascade(label='Edit',menu=edit)
def showImg(self):
load=Image.open('pic.png')
render=imageTk.PhotoImage(load)
img=Label(self,image=render)
img.image=render
img.place(x=0,y=0)
def showTxt(self):
text = Label(self, text='Hey there good lookin!')
text.pack()
def client_exit(self):
exit()
root = Tk()
root.geometry("400*300")
app = Window(root)
root.mainloop()
Python 3 Programming Tutorial - Threading module https://www.youtube.com/watch?v=NwH0HvMI4EA&index=45&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
import threading
from queue import Queue
import time
print_lock = threading.Lock()
def exampleJob(worker):
time.sleep(0.5)
with print_lock:
print(threading.current_thread().name, worker)
def threader():
while True:
worker=q.get()
exampleJob(worker)
q.task_done()
q = Queue()
for x in rang(10):
t = threading.Thread(target = threader)
t.daemon = True
t.start()
start = time.time()
for worker in rang(20):
q.put(worker)
q.join()
print('Entire job took:',time.time()-start)
Python 3 Programming Tutorial - cx freeze python to exe https://www.youtube.com/watch?v=GSoOwSqTSrs&index=46&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
cx freeze将程序打包成exe文件,网址: cx-freeze.sourceforge.net, 使用命令行或者下载安装cx_Freeze-4.3.3.win-amd64-py3.4.exe (md5)
setup.py:
from cx_Freeze import setup, Executable
setup(name='urlParse',
version='0.1',
description='Parse stuff',
executables=[Executable("distme.py")]
)
打开命令窗口,cd到setup.py文件位置,执行命令: python setup.py build, 会创建一个build文件夹里面包含生成的exe文件和运行所依赖的环境文件.
Python 3 Programming Tutorial - Subprocess module https://www.youtube.com/watch?v=5XU-mAZVv4w&index=47&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
communicate from script to shell and get output from the shell.
python
import subprocess
subprocess.call('python systut.py "check this out!"',shell=True) #输出check this out!
Python 3 Programming Tutorial - Matplotlib Graphing Intro https://www.youtube.com/watch?v=H72jSxkLQHQ&index=48&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
官网: matplotlib.org/index.html 下载, 或者打开www.lfd.uci.edu/~gohlke/pythonlibs/页面搜索matplotlib 下载安装.
from matplotlib import pyplot as plt
from matplotlib import style #下载style.zip: pythonprogramming.net/downloads/style.zip, 将style文件夹放入项目根目录下.
style.use('ggplot')
x = [5,6,7,8]
y = [7,3,8,3]
plt.grid(True, color='k')
#plt.scatter(x,y,color='c',align='center') 点状图
#plt.bar(x,y,color='c',align='center') 柱状图
plt.plot(x,y,'g',linewidth=5, label='Line One') #'g'代表线的颜色是绿色,5表示线的粗细, label线的备注.
plt.title('Epic Chart')
plt.ylabel('Y axis')
plt.xlabel('X axis')
plt.legend() #跟上面的label='Line One'配套出现
plt.show() #打开一个图形窗口
Python 3 Programming Tutorial - Matplotlib plotting from a CSV https://www.youtube.com/watch?v=MNLmQJtCCZY&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M&index=53
from matplotlib import pyplot as plt
from matplotlib import style
import numpy as np
style.use('ggplot')
x,y = np.loadtxt('exampleFile.txt',unpack=True,delimiter=',')
plt.plot()
plt.title('Epic Chart')
plt.ylabel('Y axis')
plt.xlabel('X axis')
plt.show()
Python 3 Programming Tutorial - ftplib FTP transfers Python https://www.youtube.com/watch?v=QVyAeM12wVY&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M&index=54
from ftplib import FTP
ftp = FTP('domainname.com')
ftp.login(user='usernamae', passwd='password')
ftp.cwd('/specificdomain-or-location/') #cwd means change working directory
def grabFile():
filename = 'fileName.txt'
localfile = open(filename,'wb')
ftp.retrbinary('RETR '+filename, localfile.write, 1024)
ftp.quit()
localfile.close()
def placeFile():
filename = 'fileName.txt'
ftp.storbinary('STOR '+filename, open(filename, 'rb'))
ftp.quit()
Python 3 Programming Tutorial - Sockets intro https://www.youtube.com/watch?v=wzrGwor2veQ&index=55&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
import socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print(s)
server='pythonprogramming.net'
port=80
server_ip = socket.gethostbyname(server)
print(server_ip)
request="GET / HTTP/1.1\nHost: "+server+"\n\n"
s.connect((server,port))
s.send(request.encode())
result = s.recv(4096)
#print(result)
while(len(result)>0):
print(result)
result = s.recv(1024)
Python 3 Programming Tutorial - Sockets simple port scanner
import socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server='pythonprogramming.net'
def pscan(port):
try:
s.connect((server,port))
return True
except:
return False
for x in range(1,26): #rang(1,26) means 1~25
if pscan(x):
print('Port',x,'is open')
else:
print('Port',x,'is closed')
Python 3 Programming Tutorial - Threaded port scanner https://www.youtube.com/watch?v=icE6PR19C0Y&index=57&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
import socket
import threading
from queue import Queue
print_lock = threading.Lock()
target = 'pythonprogramming.net'
def portscan(port):
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
con = s.connect((target,port))
with print_lock:
print('port',port,'is open!')
con.close()
except:
pass
def threader():
while True:
worker = q.get()
portscan(worker)
q.task_done()
q = Queue()
for x in range(30):
t = threading.Thread(target=threader)
t.daemon = True
t.start()
for worker in range(1,101):
q.put(worker)
q.join()
Python 3 Programming Tutorial - Sockets Binding and listening, Python 3 Programming Tutorial - Sockets: client server system https://www.youtube.com/watch?v=Q1a12QFq3os&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M&index=58
命令: telnet localhost 5555, 如果出现错误'telnet' is not recognized as an internal or external command, 解决方法:
Control Panel > Programs > Turn Windows features on or off 勾选 Telnet Client.
import socket
import sys
from _thread import *
host=''
port=5555
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
s.bind((host,port))
except socket.error as e:
print(str(e))
s.listen(5)
def threaded_client(conn):
conn.send(str.encode('Welcome, type your info\n'))
while True:
data=conn.recv(2048)
reply='Server output: '+data.decode('utf-8')
if not data:
break
conn.sendall(str.encode(reply))
conn.close()
while True:
conn,addr=s.accept()
print('connected to: '+addr[0]+':'+str(addr[1]))
start_new_thread(threaded_client,(conn,))
Python 2to3 - Convert your Python 2 to Python 3 automatically! https://www.youtube.com/watch?v=8qxKYnAsNuU&index=60&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
cmd窗口输入命令: C:\Users\H\Desktop\2to3me>python C:/Python34/Tools/scripts/2to3.py -w python2ugliness.py
Python Pickle Module for saving objects (serialization) https://www.youtube.com/watch?v=2Tw39kZIbhs&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M&index=61
import pickle
example_dict = {1:"6",2:"2",3:"f"}
#序列化
pickle_out = open("dict.pickle","wb") #wb means write byte
pickle.dump(example_dict, pickle_out)
pickle_out.close()
#反序列化
pickle_in = open("dict.pickle","rb") #rb means read byte
example_dict = pickle.load(pickle_in)
print(example_dict)
print(example_dict[2])
Python Eval programming tutorial https://www.youtube.com/watch?v=1NJpqi5pqoU&index=62&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
list_str = "[5,6,7,8,9]"
list_str = eval(list_str)
print(list_str)
print(list_str[2])
x = input("code: ")
check_this_out = eval(input("code"))
print(check_this_out)
Exec - Python programming tutorial https://www.youtube.com/watch?v=ILPtmMAv7RM&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M&index=63
exec("print('so this works like eval')")
list_str = "[5,6,7,8,6]"
list_str = exec(list_str)
print(list_str2)
exec("def test(): print('o sniiii snap!!!')")
test()
exec("""
def test2():
print('lets see if multi line works...')
""")
test2()
Creating a database, table, and inserting - SQLite3 with Python 3 part 1 https://www.youtube.com/watch?v=o-vsdfCBpsU&index=64&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M
import sqlite3
import time
import datetime
import random
import matplotlib.pyplot as plt #打开https://pythonprogramming.net搜索matplotlib
import matplotlib.dates as mdates
from matplotlib import style
style.use('fivethirtyeight')
conn = sqlite3.connect('tutorial.db')
c = conn.cursor()
def create_table():
c.execute('create table if not exists stuffToPlot(unix REAL, datestamp TEXT, keyword TEXT, value REAL)')
def data_entry():
c.execute("insert into stuffToPlot values(123213,'2016-01-01','Python',5)")
conn.commit()
c.close()
conn.close()
def dynamic_data_entry():
unix = time.time()
date = str(datetime.datetime.fromtimestamp(unix).strftime('%Y-%m-%d %H:%M:%S'))
keyword = 'Python'
value = random.randrange(0,10)
c.execute("insert into stuffToPlot(unix,datestamp,keyword,value) values(?,?,?,?)",(unix,date,keyword,value))
conn.commit()
def read_from_db():
c.execute('select * from stuffToPlot')
#data = c.fetchall()
#print(data)
for row in c.fetchall():
print(row)
def graph_data():
c.execute('select unix, value from stuffToPlot')
dates = []
values = []
from row in c.fetchall():
dates.append(datetime.datetime.fromtimestamp(row[0]))
values.append(row[1])
plt.plot_date(dates,values,'-')
plt.show()
def del_and_update():
c.execute('select * from stuffToPlot')
[print(row) for row in c.fetchall()]
c.execute('update stuffToPlot set value=99 where value = 8') #修改
conn.commit()
c.execute('delete from stuffToPlot where value = 99') #删除
conn.commit()
print(50*'#')
#create_table()
#data_entry()
#for i in range(10):
# dynamic_data_entry()
# time.sleep(1)
#read_from_db()
#graph_data()
del_and_update()
c.close()
conn.close()
-----------------------------------------------------------------------------------------------------------------------------------------