Python入門

Python的特點

  • 高級:有高級的數據結構,縮短開發時間與代碼量
  • 面向對象:爲數據和邏輯相分離的結構化和過程化編程添加了新的活力
  • 可升級:提供了基本的開發模塊,可以在它上面開發軟件,實現代碼的重用
  • 可擴展:通過將其分離爲多個文件或模塊加以組織管理
  • 可移植性: python是用C寫的,又由於C的可移植性, 使得 pythonANSI可以運行在任何帶有編譯器的平臺上
  • 易學: python關鍵字少、結構簡單、語法清晰
  • 易讀:沒有其他語言通常用來訪問變量、定義代碼塊 和進行模式匹配的命令式符號
  • 內存管理器:內存管理是由 python解釋器負責的

安裝python

yum install -y gcc gcc-c++ zlib-devel openssl-devel readline-devel libffi-devel sqlite-devel tcl-devel tk-devel  #安裝依賴包
tar -xf Python-3.6.7.tgz
cd Python-3.6.7
./configure --prefix=/usr/local/
make && make install

Python運行方式

1)交互解釋器

] python3
>>>    #此時進入了python解釋器
>>> exit()  #退出,也可以ctrl+d

2)文件形式

] python hello.py   #指定解釋器
或者:
] chmod +x hello.py  
] ./hello.py   #賦予執行權限再執行

Python語法格式

1)語句塊縮進

  • 完全靠縮進表達代碼邏輯,而不適使用大括號
  • 縮進表達一個語句屬於哪個代碼塊
  • 採用4個空格(pycharm中一個tab爲4個空格)
  • 縮進相同的一組語句構成一個代碼塊,稱之代碼組
  • 首行以關鍵字開始,以冒號:結束,該行之後的一行或多行代碼構成代碼組
  • 如果代碼組只有一行,可以將其直接寫在冒號後面,但是這樣的寫法可讀性差,不推薦

2)註釋和續行

  • 首要說明的是:儘管Python是可讀性最好的語言之一,這並不意味着程序員在代碼中就可以不寫註釋
  • 和很多UNIX腳本類似,python註釋語句從#字符開始,ctrl+/可以將選中行全部註釋
  • 註釋可以在一行的任何地方開始,解釋器會忽略掉該行#之後的所有內容
  • 一行過長的語句可以使用反斜槓\分解成幾行

3)同行多個語句

  • 分號;允許你將多個語句寫在同一行上
  • 但是些語句不能在這行開始一個新的代碼塊
  • 因爲可讀會變差,所以不推薦使用

輸出語句

  • 輸出使用print函數,在python中函數調用必須用小括號。
  • 如果輸出字符串,則必須加引號,單雙引號沒有區別
print('Hello World!')
print(100)     # 打印數字
print(hello)   # 錯誤,因爲hello沒有加引號,python認爲它是一個名字,可能是函數名或是變量名等名字,但是名字不存在
print('hao', 123)  # 由於上方代碼有錯誤,錯誤代碼之後的代碼不會被執行

輸入語句

# 從鍵盤獲取用戶輸入,使用input()函數
uname = input('username: ')  # ()中的字符串是屏幕提示語
print(uname)
uname = input('請輸入用戶名: ')
print('歡迎'+uname+'用戶!')

執行:

請輸入用戶名:  nia
歡迎nia用戶!
# 字符串中有變化的內容,可以使用這種形式:'%s: %s' % ('name', 20)
# %s是佔位符,用字符串外面()中的相應內容替代,當只有一個%s的時候,()可以>不寫
uname = input('請輸入用戶名: ')
print('%s%s%s' % ('歡迎用戶', uname, '!'))

執行:

請輸入用戶名: dc
歡迎用戶dc!

變量

  • 變量名稱約定
    • 第一個字符只能是大小寫字母或下劃線
    • 後續字符只能是大小寫字母或數字或下劃線
    • 區分大小寫
  • python是動態類型語言,即不需要預先聲明變量的類型
  • 推薦採用的全名方法
    • 變量名全部採用小寫字母
    • 簡短、有意義
    • 多個單詞間用下劃線分隔
    • 變量名用名詞,函數名用謂詞(動詞+名詞)
    • 類名採用駝峯形式
  • 變量使用之前必須定義並賦值

變量賦值

  • 變量賦值:變量賦值是一個自右向左的運算過程。將=號右邊表達式計算出結果,
    賦值給左邊的變量
>>> a = 10
>>> a = a + 5  # 取出a的值加上5,再賦值給變量a
>>> a += 5     # 以上語句的簡寫
>>> a++        # 語法錯誤
>>> ++a        # 沒有錯誤,也不會自增,它是正正爲正的意思
>>> import this  # 顯示python之禪
The Zen of Python, by Tim Peters

Beautiful is better than ugly.     # 美勝醜
Explicit is better than implicit.  # 明勝暗
Simple is better than complex.     # 簡勝繁
... ...

運算符

  • 標準算術運算符
    + - * / //(取整數商) % (取餘) **(冪運算)
>>> divmod(5, 3)   # 同時得到商和餘數
(1, 2)
>>> a, b = divmod(5, 3)   # 商和餘數分別賦值
>>> a
1
>>> b
2
  • 比較運算符
    < <= > >= == !=
>>> 10 < 20 < 30   # python支持連接比較
True
>>> -10 < 20 > 15   # 可讀性不好,不推薦
True
>>> -10 == -10       # 判斷是否相等,必須是==
True
>>> 10 != 10       # 判斷是否不等
False
  • 邏輯運算符
    and not or
>>> 10 > 9 and 9 < 12   # 只有and兩邊都爲真,最終爲真
True
>>> 10 > 9 and 9 < 2
False
>>> 10 > 9 or 2 > 10    # or兩邊有一側爲真,最終爲真
True
>>> 10 > 20 or 2 > 10
False
>>> not 10 > 20         # not取反,將真變假,假變真
True
>>> not 10 > 2
False
>>> not (10 > 2)        # 加括號增加可讀性
False

數據類型

Python的數據屬於某一種類型,相同類型的數據可以做運算,不同類型的數據運算會報錯

# input()函數讀入的數據一定是字符類型
>>> n = input('number: ')
number: 10
>>> n + 5        # 錯誤,字符串不能和數字相加
>>> int(n) + 5   # int函數將字符串'10'轉成數字10
15
>>> n + str(5)   # str函數可以將各種對象轉成字符串
'105'

1)數字

基本數字類型
  • int:有符號整數
  • bool:布爾值
    • False: 0
    • True: 1
  • float:浮點數
  • complex:複數
數字表示方式
  • python默認以十進制數顯示(沒有前綴)
  • 數字以0o或0O開頭表示爲8進制數
  • 數字以0x或0X開頭表示16進制數
  • 數字以0b或0B開頭表示2進制數

2)字符串

  • python中字符串被定義爲引號之間的字符集合
  • python支持使用成對的單引號或雙引號無論單引號,還是雙引號,表示的意義相同
  • python還支持三引號(三個連續的單引號或者雙引號),可以用來包含特殊字符
  • python不區分字符和字符串
>>> s1 = """hello
... nice
... ban"""
>>> print(s1)
hello
nice
ban
>>> s1
'hello\nnice\nban'
>>> s2 = "tom\njerry\npeppa"
>>> print(s2)
tom
jerry
peppa
字符串操作
>>> s1 = 'python'
>>> len(s1)     # 求長度
6
>>> s1[0]       # 下標從0開始
'p'
>>> s1[5]
'n'
>>> s1[6]       # 報錯,下標沒有6
>>> s1[-1]      # 下標爲負,表示從右開始取
'n'
>>> s1[-6]
'p'
>>> s1[2:4]     # 取切片,起始下標包含,結束下標不包含
'th'
>>> s1[2:6]     # 取切片時,下標越界不報錯
'thon'
>>> s1[2:6000]
'thon'
>>> s1[2:]      # 結束下標不指定,取到結尾
'thon'
>>> s1[:2]      # 起始下標不指定,從開頭取
'py'
>>> s1[:]
'python'
>>> s1[::2]     # 2表示步長值
'pto'
>>> s1[1::2]
'yhn'
>>> s1[::-1]    # 步長爲負,表示從右向左取
'nohtyp'

>>> 't' in s1   # 't'在s1中嗎?
True
>>> 'th' in s1  # 'th'在s1中嗎?
True
>>> 'to' in s1  # 'to'在s1中嗎?
False           # to在字符串中不連續,爲假
>>> 'to' not in s1  # 'to'不在s1中嗎?
True
>>> 'hello' + 'world'   # 字符串拼接
'helloworld'
>>> '*' * 50    # 字符串重得50次
'**************************************************'
>>> s1 * 5
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章