catpython
Ⅰ python基礎教程
你可以看黑馬程序員Python入門教程:
教程學習時間15天
1-3天內容:為linux基礎命令
4-13天內容:為Python基礎教程14-15 天內容:為飛機大戰項目演練
第一階段(1-3天):
該階段首先通過介紹不同領域的三種操作系統,操作系統的發展簡史以及Linux系統的文件目錄結構讓大家對Linux系統有一個簡單的認識,同時知道為什麼要學習Linux命令。然後我們會正式學習Linux命令
1. 文件和目錄命令:ls,cd,touch,mkdir,rm
2. 拷貝和移動命令:tree,cp,mv
3. 文件內容命令:cat,more,grep
4. 遠程管理命令:ifconfig,ping,SSH的工作方式簡介以及ssh命令
5. 用戶許可權及用戶管理命令:chmod,chgrp,useradd,passwd,userdel
6. 軟體安裝及壓縮命令:apt簡介及命令,tar,gzip壓縮命令,bzip2壓縮命令
7. vim的基本使用
第二階段(4-10天)
該階段我們正式進入Python這門語言的學習,首先通過了解Python語言的起源,Python語言的設計目標,Python語言的設計哲學,Python語言的優缺點和面向對象的基本概念,以及Python語言的執行方式,還有Python集成開發環境PyCharm的使用為我們接下來的學習做鋪墊。
然後我們會學習int,string,float三種簡單的變數類型,變數間的計算,變數的輸入輸出,if判斷語句,while循環語句,for循環語句,break和continue的使用,函數的基本使用,模塊的使用,列表,元組,字典三種高級變數,字元串的常用操作。
接下來我們會通過一個名片管理系統的案例,把這一階段的知識進行一個串聯。在學習名片管理系統時,首先我們會學習怎麼去搭建這一系統的框架,然後我們會分別實現新增名片,顯示全部名片,查詢名片,刪除名片,修改名片這些功能。
最後我們會學習語法的進階內容,全局變數,局部變數,可變數據類型和不可變數據類型以及函數返回多個值,函數的預設參數,多值參數,遞歸的基本使用。
第三階段(11-13天)
該階段我們會學習面向對象(OOP)這一重要的編程思想,首先學習的知識點有類和對象的基本概念,dir函數,self的作用,初始化方法__init__,內置函數__str__,__del__,單繼承,方法重寫,私有屬性和方法,多繼承,多態,類屬性,靜態方法。
然後我們還會學習單例模式這一設計模式,異常的捕獲,異常的拋出,from import局部導入,from import導入同名工具, from import導入所有工具,包的使用,製作模塊,pip的使用以及文件的相關操作。
第四階段(14-15天)
該階段是項目演練階段,我們會帶領大家通過使用之前學習過的知識開發飛機大戰這一經典游戲,項目中分別有游戲窗口,圖像繪制,游戲循環,事件監聽,精靈和精靈組以及創建敵機,創建英雄和發射子彈,碰撞檢測等模塊
Ⅱ 如何利用python提取unix伺服器裡面的cat結果
importcommands
a=commands.getoutput('cat/monitor/invinfo/lepus73/osdetail')
printa
Ⅲ 在linux中如何運行python 的 *.py文件
先將終端所在路徑切換到python腳本文件的目錄下
然後給腳本文件運行許可權,一般755就OK,如果完全是自己的私人電腦,也不做伺服器什麼的,給777的許可權問題也不大(具體許可權含義參考chmod指令的介紹,就不贅述了):
chmod 755 ./*.py
然後執行。
在linux命令行模式中運行python,進入python互動式環境,寫程序後直接輸出結果。
Ⅳ cat與vim的區別介紹
cat與vim的區別:(推薦:vim教程)
cat命令是linux系統下一個文本列印的命令,用於輸出一個文本的信息到控制台上,該命令的輸入類似於使用word打開一個文檔,但是該文檔不能編輯。
vim命令是linux系統下用於文本查看、編輯的命令,不僅僅可以查看,還可以編輯。
總結:
cat與vim都可以查看文件,但是vim打開後可以修改文件內容,但是cat只能查看文件。
更多python知識請關注python視頻教程。
Ⅳ Python中catNames = catNames + [name]的含義
catNames 是個空的列表 (最上面定義的)
while True: (循環標志 )
name = input()(用戶輸入的信息 存儲在 name 這個變數中)
if name == '': (如果name 這個變數 用戶輸入的是 『空』)
break(就跳出循環)
catNames = catNames + [name] (循環執行完成後 catNames[ ]列表 = 存儲在 catNames列表中的用戶輸入 (name))
for name in catNames: (循環這個列表,把存儲在這個列表中的每個 name 都列印出來)
簡單的來說 這個程序 首先 是用一個循環標志 來循環用戶輸入 如果用戶輸入的信息不為 空 就存儲在這個列表中 如果為空就退出循環標志 在執行一個循環 把這個列表中存儲的信息 每個單獨顯示出來
Ⅵ {'python':1,2:[tea,cat]}是標準的字典嗎
不是,因為報錯。
Traceback (most recent call last):
File "<input>", line 1, in <mole>
NameError: name 'tea' is not defined
Ⅶ python怎麼定義addcat
Python中的Mole是比較重要的概念。常見的情況是,事先寫好一個.py文 件,在另一個文件中需要import時,將事先寫好的.py文件拷貝 到當前目錄,或者是在sys.path中增加事先寫好的.py文件所在的目錄,然後import。這樣的做法,對於少數文件是可行的,但如果程序數目很 多,層級很復雜,就很吃力了。
有沒有辦法,像Java的Package一樣,將多個.py文件組織起來,以便在外部統一調用,和在內部互相調用呢?答案是有的。
主要是用到python的包的概念,python
__init__.py在包里起一個比較重要的作用
要弄明白這個問題,首先要知道,python在執行import語句時,到底進行了什麼操作,按照python的文檔,它執行了如下操作:
第1步,創建一個新的,空的mole對象(它可能包含多個mole);
第2步,把這個mole對象插入sys.mole中
第3步,裝載mole的代碼(如果需要,首先必須編譯)
第4步,執行新的mole中對應的代碼。
在執行第3步時,首先要找到mole程序所在的位置,其原理為:
如 果需要導入的mole的名字是m1,則解釋器必須找到m1.py,它首先在當前目錄查找,然後是在環境變數PYTHONPATH中查找。 PYTHONPATH可以視為系統的PATH變數一類的東西,其中包含若干個目錄。如果PYTHONPATH沒有設定,或者找不到m1.py,則繼續搜索 與python的安裝設置相關的默認路徑,在Unix下,通常是/usr/local/lib/python。
事實上,搜索的順序是:當前路徑 (以及從當前目錄指定的sys.path),然後是PYTHONPATH,然後是python的安裝設置相關的默認路徑。正因為存在這樣的順序,如果當前 路徑或PYTHONPATH中存在與標准mole同樣的mole,則會覆蓋標准mole。也就是說,如果當前目錄下存在xml.py,那麼執 行import
xml時,導入的是當前目錄下的mole,而不是系統標準的xml。
了解了這些,我們就可以先構建一個package,以普通mole的方式導入,就可以直接訪問此package中的各個mole了。
Python中的package定義很簡單,其層次結構與程序所在目錄的層次結構相同,這一點與Java類似,唯一不同的地方在於,python中的package必須包含一個__init__.py的文件。
例如,我們可以這樣組織一個package:
package1/
__init__.py
subPack1/
__init__.py
mole_11.py
mole_12.py
mole_13.py
subPack2/
__init__.py
mole_21.py
mole_22.py
……
__init__.py可以為空,只要它存在,就表明此目錄應被作為一個package處理。當然,__init__.py中也可以設置相應的內容,下文詳細介紹。
好了,現在我們在mole_11.py中定義一個函數:
def funA():
print "funcA in mole_11"
return
在頂層目錄(也就是package1所在的目錄,當然也參考上面的介紹,將package1放在解釋器能夠搜索到的地方)運行python:
>>>from package1.subPack1.mole_11 import funcA
>>>funcA()
funcA in mole_11
這樣,我們就按照package的層次關系,正確調用了mole_11中的函數。
細心的用戶會發現,有時在import語句中會出現通配符*,導入某個mole中的所有元素,這是怎麼實現的呢?
答案就在__init__.py中。我們在subPack1的__init__.py文件中寫
__all__ = ['mole_13', 'mole_12']
然後進入python
>>>from package1.subPack1 import *
>>>mole_11.funcA()
Traceback (most recent call last):
File "", line 1, in
ImportError: No mole named mole_11
也就是說,以*導入時,package內的mole是受__init__.py限制的。
好了,最後來看看,如何在package內部互相調用。
如果希望調用同一個package中的mole,則直接import即可。也就是說,在mole_12.py中,可以直接使用
import mole_11
如果不在同一個package中,例如我們希望在mole_21.py中調用mole_11.py中的FuncA,則應該這樣:
from mole_11包名.mole_11 import
funcA
包機制
# a.py
def add_func(a,b):
return a+b
# b.py
from a import add_func # Also can be : import a
print ("Import add_func from mole a")
print ("Result of 1 plus 2 is: ")
print (add_func(1,2)) # If using "import a" , then here should be "a.add_func"
mole可以定義在包裡面.Python定義包的方式稍微有點古怪,假設我們有一個parent文件夾,該文件夾有一個child子文件夾.child中有一個mole
a.py . 如何讓Python知道這個文件層次結構?很簡單,每個目錄都放一個名為_init_.py 的文件.該文件內容可以為空.這個層次結構如下所示:
parent
--__init_.py
--child
-- __init_.py
--a.py
b.py
那麼Python如何找到我們定義的mole?在標准包sys中,path屬性記錄了Python的包路徑.你可以將之列印出來:
import sys
print(sys.path)
通常我們可以將mole的包路徑放到環境變數PYTHONPATH中,該環境變數會自動添加到sys.path屬性.另一種方便的方法是編程中直接指定我們的mole路徑到sys.path 中:
import sys
import os
sys.path.append(os.getcwd()+'\\parent\\child')
print(sys.path)
from a import add_func
print (sys.path)
print ("Import add_func from mole a")
print ("Result of 1 plus 2 is: ")
print (add_func(1,2))
知識點:
如何定義模塊和包
如何將模塊路徑添加到系統路徑,以便python找到它們
如何得到當前路徑
Ⅷ python中//是什麼意思
在Python" // "表示整數除法。
Python其它表達式:
Python的表達式寫法與C/C++類似。只是在某些寫法有所差別。
主要的算術運算符與C/C++類似。+, -, *, /, //, **, ~, %分別表示加法或者取正、減法或者取負、乘法、除法、整除、乘方、取補、取余。
>>, <<表示右移和左移。&, |, ^表示二進制的AND, OR, XOR運算。>, <, ==, !=, <=, >=用於比較兩個表達式的值,
分別表示大於、小於、等於、不等於、小於等於、大於等於。在這些運算符裡面,~, |, ^, &, <<, >>必須應用於整數。
(8)catpython擴展閱讀:
Python使用and, or, not表示邏輯運算。
is, is not用於比較兩個變數是否是同一個對象。in, not in用於判斷一個對象是否屬於另外一個對象。
Python支持「列表推導式」(list comprehension),比如計算0-9的平方和:
>>> sum(x * x for x in range(10))
285
Python使用lambda表示匿名函數。匿名函數體只能是表達式。比如:
>>> add=lambda x, y : x + y
>>> add(3,2)
Python使用y if cond else x表示條件表達式。意思是當cond為真時,表達式的值為y,否則表達式的值為x。相當於C++和Java里的cond?y:x。
Python區分列表(list)和元組(tuple)兩種類型。list的寫法是[1,2,3],而tuple的寫法是(1,2,3)。可以改變list中的元素,而不能改變tuple。
在某些情況下,tuple的括弧可以省略。tuple對於賦值語句有特殊的處理。因此,可以同時賦值給多個變數,比如:
>>> x, y=1,2 # 同時給x,y賦值,最終結果:x=1, y=2
特別地,可以使用以下這種形式來交換兩個變數的值:
>>> x, y=y, x #最終結果:y=1, x=2
Python使用'(單引號)和"(雙引號)來表示字元串。與Perl、Unix Shell語言或者Ruby、Groovy等語言不一樣,兩種符號作用相同。一般地,如果字元串中出現了雙引號,就使用單引號來表示字元串;反之則使用雙引號。如果都沒有出現,就依個人喜好選擇。
出現在字元串中的(反斜杠)被解釋為特殊字元,比如 表示換行符。表達式前加r指示Python不解釋字元串中出現的。這種寫法通常用於編寫正則表達式或者Windows文件路徑。
Python支持列表切割(list slices),可以取得完整列表的一部分。支持切割操作的類型有str, bytes, list, tuple等。
它的語法是...[left:right]或者...[left:right:stride]。假定nums變數的值是[1, 3, 5, 7, 8, 13, 20],那麼下面幾個語句為真:
nums[2:5] == [5, 7, 8] 從下標為2的元素切割到下標為5的元素,但不包含下標為5的元素。
nums[1:] == [3, 5, 7, 8, 13, 20] 切割到最後一個元素。
nums[:-3] == [1, 3, 5, 7] 從最開始的元素一直切割到倒數第3個元素。
nums[:] == [1, 3, 5, 7, 8, 13, 20] 返回所有元素。改變新的列表不會影響到nums。
nums[1:5:2] == [3, 7] 從下標為1的元素切割到下標為5的元素但不包含下標為5的元素,且步長為2。