Python學習筆記

jopen 9年前發布 | 19K 次閱讀 Python 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!