首先,您將需要Python解釋器或Python IDE。IDE是一種可以使軟件開發體驗更好的工具。
你可以在這裡下載Python解釋器:https://www.python.org/downloads/
Python IDE
Python IDE比較。什麼是IDE以及在哪裡找到它們?
一個IDE是為軟件開發的程序。它就像開發的用戶界面:編寫代碼的地方。
什麼是最好的IDE?這取決於您的喜好。您可以根據特性選擇IDE。
網站: https ://www.jetbrains.com/pycharm/
PyCharm是最好的Python IDE之一。它是一個圖形應用程序,具有強大的功能,如代碼導航,代碼完成,語法突出顯示,代碼分析,調試器等等。
網站: https ://github.com/spyder-ide/spyder
Spyder是開源社區的Python IDE。它經常被數據科學家使用。Spyder適用於數據科學中經常使用的模塊,如numpy,scipy和matplotlib。
它支持許多常見的功能,如語法突出顯示,代碼完成和文件瀏覽。
網站: https ://wingware.com/
Wing IDE是一個功能齊全的IDE。這是一個已經存在近二十年的IDE。它有許多高級功能。
網站: http ://www.sublimetext.com/
Sublime Text是開發人員的流行IDE。它具有非常小的外觀,但它是一個強大的編輯器。
它有一個包管理器,插件,插件,樣式,選項卡窗口,語法突出顯示和更多功能。
與IDE相比,它更輕巧,但功能更強大,它不僅僅是一個簡單的文本墊。
網站: https ://eric-ide.python-projects.org/
完全採用Python製作的IDE。它基於Qt和跨平台(windows,mac,linux)。
Eric擁有專業功能,如源代碼折疊,語法高亮,窗口,錯誤突出顯示和更多功能。
小範例
tip=.51
bill = float(input("How much was your bill (in $)? "))
service=input("How was the service? (great = 3, good = 2, poor = 1)")
if service=="3":
tip=.2
if service=="2":
tip=.15
if service=="1":
tip=.1
tipm=tip*bill
print("Your tip should be $"+str(tipm))
print("Your total bill should be $"+str(tipm+bill))
你可以從這個網站 https://www.python.org/getit/下載給 Windows 使用的 Python。在下載了一個 *.msi 檔案之後,你就直接雙擊左鍵運行他,然後跟著提示的步驟做。還有一件很重要的事情,一定要記住你安裝 Python 的路徑,我們稍後會需要這個路徑!
通常你已經內建 Python 了。檢查看看你是不是已安裝(以及它的版本),打開終端機然後輸入下面這個指令:
$ python --version
Python 3.4.1
如果你沒有已安裝的 Python 或是你的版本不一樣,你可以如下步驟來安裝:
Ubuntu
在你的終端機輸入以下指令:
sudo apt-get install python3.4
Fedora
在你的終端機輸入以下指令:
sudo yum install python3.4
你需要到這個網站 https://www.python.org/downloads/release/python-341/ 下載 Python 安裝檔:
下載這個 Mac OS X 64-bit/32-bit installer DMG 檔案,
雙擊點開它,
雙擊 Python.mpkg 運行這個安裝檔.
打開你的 終端機(terminal) 驗證安裝過程是否有成功,像這樣子運行 python3 指令:
$ python3 --version
Python 3.4.1
環境變數
https://shaochien.gitbooks.io/command-line-and-environment-variable-tutorial/content/environment-variable.html
打開終端機,輸入下面的指令:
python
按下 Enter 鍵後,應該會看到類似下面的內容
Python 3.4.1 (...)
Type "copyright", "credits" or "license" for more information.
>>>
這代表 Python 已經啟動,進入了 Python shell。當我們要使用互動模式時,都必須在這個 Python shell 中進行。最後一行的 >>> 代表它已經準備接受你的下一個命令。
在任何時候,只要你看到 >>> 符號,就可以輸入 exit() 並按 Enter,以退出 Python shell,回到原本的提示列。接著只要再輸入
python
就會重新回到 Python shell。
我們來讓 Python 執行幾個指令看看。試著輸入 2 + 3,然後按 Enter。你會看到下面的結果:
>>> 2 + 3
5
我們可以用 + 把兩個字串連在一起。試試看:
>>> 'Hello ' + 'Django'
'Hello Django'
也可以用乘號(*)來重複一個字串:
>>> 'Django ' * 3
'Django Django Django '
或者更厲害的:
>>> 'One little, two little,' + ' little Indians' * 3 + '.'
'One little, two little, little Indians little Indians little Indians.'
你也可以問 Python 字串中有幾個字:
>>> len('I am Professor JJ')
18
一個函式其實就是一串 Python 可以執行的程式,就像我們剛剛寫的那些。我們可以把它們集合起來,並用 def(define 的簡寫)給一個名字。先來看一個簡單的範例:
def hi(name):
print('Hi ' + name + '!')
hi('Pusheen')
再執行看看:
> python my_program.py
Hi Pusheen!
成功了!
class Cat:
def __init__(self, name):
self.name = name
def meow(self):
print(self.name + ' Meow!')
def __str__(self):
return 'Cat: ' + self.name
pusheen = Cat('Pusheen')
pusheen.meow()
print(pusheen)
當 Python 需要印出東西時,就會使用魔術函式 __str__,詢問一個物件,它想被轉成什麼樣的字串。針對 Python 提出的詢問,我們可以使用 return來回答;在這個例子中,我們的回答是:請使用 'Cat: ',後面加上這隻貓的名字(self.name)。
執行起來會是什麼樣子?
> python my_program.py
Pusheen Meow!
Cat: Pusheen
Python Package Index(又名PyPI)是Python的官方第三方軟件存儲庫。 https://pypi.org/
以Python電腦程式語言寫成的軟體包管理系統,他可以安裝和管理軟體包 .
拿到 get-pip.py。
你可以:google “get-pip py”,或是直接下載。
以系統管理員身份執行 進入 CMD,cd 到 get-pip.py 所在路徑後執行:
sudo python get-pip.py
pip install some-package-name
sudo pip install --force-reinstall pip==18.1 指定版本安裝
利用Python寫了一個小腳本想要傳給使用Windows但沒有裝Python的朋友執行,這時候就可以利用將檔案包裝成exe檔案,讓沒有Python的朋友也可以執行
#透過pip安裝pyinstaller
pip install pyinstaller
常用參數介紹
pyinstaller -h 來查看參數
-F 打包成一個exe文件
–icon=圖標路徑
-w 使用視窗,無控制台
-c 使用控制台,無視窗
-D 創建一個目錄,包含exe以及其他一些依賴性文件
例如:
pyinstaller -F .\hello.py
python -m http.server
在Browser 上打入 http://localhost:8000/
pip install -U wxPython
https://github.com/r0x0r/pywebview
pywebview是一個圍繞webview組件的輕量級跨平台包裝器,允許在其自己的本機GUI窗口中顯示HTML內容。它為您提供了桌面應用程序中Web技術的強大功能,隱藏了GUI基於瀏覽器的事實。您可以將pywebview用於像Flask或Bottle這樣的輕量級Web框架,也可以單獨使用Python和DOM之間的雙向橋接。
import webview
import threading
import time
def change_url():
time.sleep( 30 )
webview.load_url(url='http://61.219.106.180/drchiu/play.php', uid='master')
time.sleep( 20 )
webview.toggle_fullscreen(uid='master')
time.sleep( 10 )
webview.toggle_fullscreen(uid='master')
time.sleep( 10 )
webview.destroy_window(uid='master')
if __name__ == '__main__':
t = threading.Thread(target=change_url)
t.start()
webview.create_window("URL Change Example",
"http://61.219.106.180/drchiu/play.php?v=FuDdstaZXdw",
width=800, height=600,
resizable=True)
python -m pip install --upgrade pip
pip list --outdated #列出所有过期的库
http://liyangbit.com/pythonvisualization/matplotlib-top-50-visualizations/
from pynput.keyboard import Key, Controller
import paho.mqtt.client as mqtt
import paho.mqtt.publish as publish
import paho.mqtt.subscribe as subscribe
import time
HOST = "broker.mqtt-dashboard.com"
PORT = 1883
Topic = "jjofficepc2"
Value = "/close_windows"
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe(Topic)
def on_message(client, userdata, msg):
x=msg.payload.decode("utf-8")
print(x)
if(x == Value):
print(time.strftime("關閉視窗",time.localtime()))
close()
def close() -> None:
keyboard = Controller()
#keyboard.press(Key.alt)
#keyboard.press(Key.f4)
#keyboard.release(Key.f4)
#keyboard.release(Key.alt)
keyboard.press(Key.cmd)
keyboard.press('d')
keyboard.release('d')
keyboard.release(Key.cmd)
if __name__ == '__main__':
client_id = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time()))
client = mqtt.Client(client_id) # ClientId不能重复,所以使用当前时间
######Bind function to callback
client.on_message=on_message
#####
print("connecting to broker ",HOST )
client.connect(HOST )#connect
client.loop_start() #start loop to process received messages
print("subscribing ")
while True:
subscribe.callback(on_message, Topic, hostname=HOST )
pip install mysqlclient
#!/usr/bin/python
# -*- coding: utf-8 -*-
# 引入 MySQLdb 模組,提供連接 MySQL 的功能
import MySQLdb
# 連接 MySQL 資料庫
db = MySQLdb.connect(host="localhost",
user="jj", passwd="james", db="jj")
cursor = db.cursor()
# 執行 MySQL 查詢指令
cursor.execute("SELECT * FROM 18b20")
# 取回所有查詢結果
results = cursor.fetchall()
# 輸出結果
for record in results:
col1 = record[0]
col2 = record[1]
print ("%s, %s" % (col1, col2))
# 關閉連線
db.close()