Python學習筆記
安裝
Linux
Linux已經自帶Python了,我的Centos7自帶Python2.7.4,我通過源碼安裝來更新版本。
#!/bin/bash #源碼安裝 wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz tar -zxvf Python-2.7.9.tgz cd Python-2.7.9 #編譯安裝 ./configure make make install
安裝pip(推薦安裝,非必需)
pip是一個包管理器,安裝后方便之后框架和依賴包的安裝使用。推薦安裝。
#!/bin/bash wget https://bootstrap.pypa.io/get-pip.py python get-pip.py
Hello World
>>> print 'hello, world' hello, world >>> exit()
編輯器
推薦Vim,Windows下使用Notepad++。
hello_world.py
#!/usr/bin/env python
# -*- coding:utf8-*-
# 第一行用于在Linux下被識別從而直接運行
#第二行用于定義此文件的字符編碼是utf8,防止亂碼,這是一個好習慣
#print可以使用以下兩種形式來輸出字符到控制臺,推薦第二種,可以兼容Python3
print 'Hello World'
print('Hello World')
#可以用逗號分隔每個字符串,打印出來遇到逗號會輸出一個空格
print 'Hello','World'
#讀取用戶輸入的字符并賦予name變量
name = raw_input() 運行
python hello_world.py
基礎
- #開頭是注釋
- :結尾是代碼塊,代碼塊縮進推薦四個空格
數據類型
數字
- 整數: 例如1100,16進制以0x開頭,例如0xff00
-
浮點數: 例如3.14,科學記數法把10用e替代,1.23x10的9次方的就是1.23e9或者12.3e8
注:整數運算永遠精確,浮點數可能存在四舍五入
字符串
- 以''或""括起來的任意文本,轉義使用\,用于轉義單引號、雙引號和特殊字符(例如換行符)
- r''表示原始字符串,不需要轉義
- '''我是內容'''這種三個引號(單雙都行)擴起來表示可以換行的文本
- r'''我是內容'''表示多行原始字符串,不需要轉義
- u''表示Unicode字符串
- 字符串格式化 'Hello, %s' % 'world'
布爾值
- True
-
False
布爾值可以用and、or和not運算
空值
None
變量
變量的類型取決于第一次賦值的類型。
a = 1
常量
Python中無常量,約定全部大寫的變量為常量(值依舊可以變)。
PI = 3.14
類型判斷和轉換
a = '123' # 判斷類型 type(a) # 轉換為int,其他類型同理 int(a) ## 轉換函數表 int(x [,base ]) #將x轉換為一個整數 long(x [,base ]) # 將x轉換為一個長整數 float(x ) #將x轉換到一個浮點數 complex(real [,imag ]) #創建一個復數 str(x ) #將對象 x 轉換為字符串 repr(x ) #將對象 x 轉換為表達式字符串 eval(str ) #用來計算在字符串中的有效Python表達式,并返回一個對象 tuple(s ) #將序列 s 轉換為一個元組 list(s ) #將序列 s 轉換為一個列表 chr(x ) #將一個整數轉換為一個字符 unichr(x ) #將一個整數轉換為Unicode字符 ord(x ) #將一個字符轉換為它的整數值 hex(x ) #將一個整數轉換為一個十六進制字符串 oct(x ) #將一個整數轉換為一個八進制字符串
序列
list(列表)
classmates = ['Michael', 'Bob', 'Tracy']
#list中元素個數(得到3)
len(classmates)
#最小元素(得到'Bob')
min(classmates)
#最大元素(得到'Tracy')
max(classmates)
# 訪問元素(得到'Michael')
classmates[0]
# 倒數第一個元素(得到'Tracy')
classmates[-1]
# 追加元素
classmates.append('Adam')
# 位置1插入元素,后面元素會依次后推
classmates.insert(1, 'Jack')
# 刪除末尾元素
classmates.pop()
# 刪除位置 1 的元素
classmates.pop(1)
del classmates[1]
# 刪除片段
del classmates[i: j]
# 替換元素
classmates[1] = 'Sarah'
#切片(選取第一個到第二個元素組成新列表)
classmates[1: 2]
#切片(選取第一個到第三個元素組成新列表,每隔兩個,按照原始list,得到'Bob')
classmates[1: 3: 2]
# 不同類型元素
L = ['Apple', 123, True]
# list嵌套(list做為list的一個元素)
s = ['python', 'java', ['asp', 'php'], 'scheme']
#取得'php'(相當于二維數組)
print(s[2][2])
#序列連接(兩個列表組成新列表)
classmates + ['lucy', 'joe']
#序列中的元素重復三次
classmates * 3
#元素在列表中是否存在
isHave = 'Bob' in classmates
#轉為序列(得到['P', 'y', 't', 'h', 'o', 'n'])
list('Python') tuple(元組)
一旦定義不可變。獲取元素和list相同,如果元組中只有一個元素,必須補一個逗號,用于和運算符區分。
classmates = ('Michael', 'Bob', 'Tracy')
# 單元素元組
classmates = ('Michael',) dict和set
dict
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
#取值(不存在報錯)
d['Michael']
#取值,不存在返回`None`
d.get('Thomas')
#取值,不存在返回自定義值`-1`
d.get('Thomas', -1)
#定義值
d['Adam'] = 67
#刪除鍵值對
d.pop('Bob')
del (d['Bob'])
#鍵列表
dict.keys()
#值列表
dict.values()
#鍵值對元組列表
dict.items()
#遍歷
for (k, v) in dict.items():
print 'dict[%s] =' % k, v set
不重復的元素集合
#定義,需要將list轉化為set,自動過濾重復 s = set([1, 2, 3]) #添加 s.add(4) #刪除 s.remove(4) #交集 set([1, 2, 3]) & set([2, 3, 4]) #并集 set([1, 2, 3]) | set([2, 3, 4])
條件判斷和循環
條件
elif和else都可以省略。條件中非零數值、非空字符串、非空list等,就判斷為True,否則為False。
if <條件判斷1>:
<執行1>
elif <條件判斷2>:
<執行2>
elif <條件判斷3>:
<執行3>
else:
<執行4> 循環
#遍歷列表
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print name
# 便利列表2
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
print x
# 遍歷列表3,等效2
for x in range(101):
print x
# while循環(按條件循環)
n = 99
while n > 0:
print n
n = n - 2 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!