Data Processing Using Python | 用Python玩轉(zhuǎn)數(shù)據(jù) Week1.1

Welcome | 歡迎學(xué)習(xí)用Python玩轉(zhuǎn)數(shù)據(jù)

圖形處理,WEB編程,多媒體應(yīng)用,PYMO引擎

獲取股票數(shù)據(jù),描述和處理數(shù)學(xué)問(wèn)題,解決專(zhuān)業(yè)問(wèn)題(基因序列),搜集互聯(lián)網(wǎng)信息(文本信息)

1.1 Walk into Python | 走進(jìn)Python

Python 的應(yīng)用

  • Web 開(kāi)發(fā):Python定義了WSGI標(biāo)準(zhǔn)應(yīng)用接口來(lái)協(xié)調(diào)http服務(wù)器與基于Python的Web程序之間的溝通
  • GUI 開(kāi)發(fā):用wxPython或者PyQt來(lái)開(kāi)發(fā)跨平臺(tái)的桌面軟件
  • 操作系統(tǒng):大多數(shù)Linux發(fā)布版以及NetBSD,OpenBSD和Mac OS X 都集成了Python,Python標(biāo)準(zhǔn)庫(kù)包含了多個(gè)調(diào)用作業(yè)系統(tǒng)功能的庫(kù)
  • 多媒體:可用于計(jì)算機(jī)游戲三維場(chǎng)景制作

1.1.1 Introduction to Python | Python 簡(jiǎn)介

1.1.2 The First Python Program | 第一個(gè)Python程序

經(jīng)典的Hello World

myString = 'Hello, world'
print myString

Python的運(yùn)行方式

  • Shell方式
    • Shell是交互式的解釋器
    • 輸入一行命令,解釋器就節(jié)食運(yùn)行出相應(yīng)結(jié)果
>>> myString = 'Hello, World!'
>>> print myString
Hello, World!
>>> myString
'Hello, World!'
  • 文件方式
    • 在Python的IDE環(huán)境中,創(chuàng)建一個(gè)以py為擴(kuò)展名的文件
    • 用Python解釋器在Shell中運(yùn)行出結(jié)果
# Filename: helloworld.py
mystring = 'Hello, World!'
print mystring

執(zhí)行環(huán)境:Python(x, y)

Python輸出:print語(yǔ)句

  • Python使用print語(yǔ)句實(shí)現(xiàn)輸出:
    • print 變量
    • print 字符串
>>> myString = 'Hello, World!'
>>> print myString
Hello, World!

Python輸入:raw_input()語(yǔ)句

  • raw_input()返回的類(lèi)型是字符型
>>> price = raw_input('input the stock price of Apple: ')
input the stock price of Apple: 109
>>> price
'109'
>>> type(price)
<type 'str'>

Python 風(fēng)格

  • 注釋?zhuān)?strong>#
>>> # comment No.1
>>> print 'hello world'    # comment No.2
hello world!
  • 續(xù)行:\
>>> # long sentence
>>> if (signal == 'red') and \
    (car == 'moving'):
        car = 'stop'
    elif (signal == 'green') and \
    (car == 'stop'):
        car = 'moving'

same as:

>>> long sentence
>>> if (signal == 'red') and (car == 'moving'):
        car = 'stop'
    elif (signal == 'green') and (car == 'stop'):
        car = 'moving'
  • 無(wú)需續(xù)行符可直接換行的兩種情況:
    • 小括號(hào),中括號(hào),大括號(hào)的內(nèi)部可以多行書(shū)寫(xiě)
    • 三引號(hào)包括下的字符串也可以跨行書(shū)寫(xiě)
>>> # triple quotes
>>> print '''hi everybody, 
welcome to python's MOOC course. 
Here we can learn something about 
python. Good lucky!'''
  • 一行多語(yǔ)句:;
>>> x = 'Today'; y = 'is'; z = 'Thursday'; print (x, y, z)
('Today', 'is', 'Thursday')
>>> x = 'Today'
>>> y = 'is'
>>> z = 'Thursday'
>>> print (x, y, z)
('Today', 'is', 'Thursday')
  • 縮進(jìn)
      1. 增加縮進(jìn)表示語(yǔ)句塊的開(kāi)始
      1. Python用相同的縮進(jìn)表示同級(jí)別語(yǔ)句塊
      1. 減少縮進(jìn)表示語(yǔ)句塊的退出
>>> # Indentation
>>> if (signal == 'red') and (car == 'moving'):
        car = 'stop'
        signal = 'yellow'
    elif (signal == 'green') and (car == 'stop'):
        car = 'moving'
        signal = 'yellow'

1.1.3 Basics of Python Syntax | Python 語(yǔ)法基礎(chǔ)

變量

  • 變量名: 引用對(duì)象,標(biāo)識(shí)對(duì)象
>>> # variable
>>> p = 3.14159
>>> myString = 'is a mathematic circular constant'
>>> print p, myString
3.14159 is a mathematic circular constant

標(biāo)識(shí)符

  • 標(biāo)識(shí)符是指Python語(yǔ)言中允許作為變量名或者其他對(duì)象名稱(chēng)的有效符號(hào)
    • 首字符是字母或下劃線
    • 其余可以使字母,下劃線,數(shù)字
    • 大小寫(xiě)敏感(PI和pi是不同的標(biāo)識(shí)符)
>>> # Identifier
>>> PI = 3.14159
>>> pi = 'one word'
>>> print PI
3.14159
>>> print pi
one word

關(guān)鍵字

  • 關(guān)鍵字是Python語(yǔ)言的關(guān)鍵組成部分,不可隨便作為其他對(duì)象的標(biāo)識(shí)符
    • 在一門(mén)語(yǔ)言中關(guān)鍵字是基本固定的集合
    • 在IDE中常以不同顏色字體出現(xiàn)
and as assert break class continue def del
elif else except exec finally for from global
if import in is lambda not or pass
print raise return try while with yield

表達(dá)式

  • 用運(yùn)算符連接各種類(lèi)型數(shù)據(jù)的式子就是表達(dá)式
    • 算術(shù)運(yùn)算符:乘方*,正負(fù)號(hào)+ -,乘除 /,整除//,取余%,加減+ -
    • 位運(yùn)算符:取反~,與&,或|,異或^,左移<<,右移>>
    • 比較運(yùn)算符:小于<,大于>,小于等于<=,大于等于>=,等于==,不等于!=
    • 邏輯運(yùn)算符:非not,與and,或or
  • 運(yùn)算符有優(yōu)先級(jí)順序
  • 表達(dá)式必須有運(yùn)算結(jié)果
>>> # expression
>>> PI = 3.14159
>>> r = 2
>>> c_circ = 2 * PI * r    # 2*PI*r是表達(dá)式,運(yùn)算結(jié)果賦值給變量c_circ
>>> print "The circle's circum: %f" % (c_circ)

賦值

  • 變量第一次賦值,同時(shí)獲得類(lèi)型和“值”
    • Python是動(dòng)態(tài)的強(qiáng)類(lèi)型語(yǔ)言
    • 不需要顯式聲明,根據(jù)“值”確定類(lèi)型
    • 以“引用”的方式實(shí)現(xiàn)賦值
>>> # Identifier
>>> PI = 3.14159
>>> pi = 'one word'
>>> print PI
3.14159
>>> print pi
one word
>>> # Identifier
>>> PI = 3.14159
>>> pi = PI
>>> print PI
3.14159
>>> print pi
3.14159

賦值 增量賦值

  • 增量賦值符:+=, -=, *=, /=, %=, **=, <<=, >>=, &=, ^=, |=
  • m &= 5 即 m = m % 5
>>> # assignment
>>> m = 18
>>> m %= 5
>>> m
3
>>> m **= 2
>>> m
9
>>> # assignment
>>> PI = 3.14159
>>> pi = PI = PI * 2
>>> pi
6.28318

賦值 多元賦值

  • 等號(hào)左右兩邊都以元組的方式出現(xiàn)
>>> # assignment
>>> x = 1
>>> y = 2
>>> x, y
(1, 2)
>>> x, y = y, x
>>> x, y
(2, 1)
>>> # assignment
>>> PI, r = 3.14159, 3
>>> PI
3.14159
>>> r
3
>>> (PI, r) = (3.14159, 3)    # same as no round brackets

語(yǔ)句

  • 完整執(zhí)行一個(gè)任務(wù)的一行邏輯代碼
    • 賦值語(yǔ)句完成了賦值
    • print輸出語(yǔ)句完成了輸出
>>> # sentence
>>> PI = 3.14159
>>> r = 2
>>> c_circ = 2 * PI * r
>>> print "The circle's circum: %f" %(c_circ)

語(yǔ)句和表達(dá)式

  • 語(yǔ)句:完成一個(gè)任務(wù),如打印一份文件
  • 表達(dá)式:任務(wù)重的一個(gè)具體組成部分,如這份文件的具體內(nèi)容

1.1.4 Data Types of Python | Python 數(shù)據(jù)類(lèi)型

(長(zhǎng))整型,浮點(diǎn)型,復(fù)數(shù)型,布爾型,字符串,列表,元組,字典

(長(zhǎng))整型

  • 整型和長(zhǎng)整型并不嚴(yán)格區(qū)分
  • 整型值后加“L”即為長(zhǎng)整型
>>> # integer
>>> type(3L)
<type 'long'>
>>> type(3)
<type 'int'>

布爾型

  • 整型的子類(lèi)
  • 僅有2個(gè)值:True, False
  • 本質(zhì)上是用整型的1, 0分別存儲(chǔ)的
>>> # boolean
>>> x = True
>>> int(x)
1
>>> y = False
>>> int(y)
0

浮點(diǎn)型

  • 即數(shù)學(xué)中的實(shí)數(shù)
  • 可以類(lèi)似科學(xué)計(jì)數(shù)法表示
>>> # float
>>> 3.22
3.22
>>> 9.8e3
9800.0
>>> -4.78e-2
-0.0478
>>> type(-4.78e-2)
<type 'float'>

復(fù)數(shù)型

  • j = 根-1,則j是虛數(shù)
  • 實(shí)數(shù)+虛數(shù) 就是復(fù)數(shù)
  • 虛數(shù)部分必須有j
>>> # complex
>>> 2.4 + 5.6j
(2.4 + 5.6j)
>>> type(2.4 + 5.6j)
<type 'complex'>
>>> 3j
3j
>>> type(3j)
<type 'complex'>
>>> 5 + 0j
(5 + 0j)
>>> type(5 + 0j)
<type 'complex'>
  • 復(fù)數(shù)可以分離實(shí)數(shù)部分和虛數(shù)部分
    • 復(fù)數(shù).real
    • 復(fù)數(shù).imag
  • 復(fù)數(shù)的共軛
    • 復(fù)數(shù).conjugate()
>>> # complex
>>> x = 2.4 + 5.6j
>>> x.imag
5.6
>>> x.real
2.4
>>>x.conjugate()
(2.4-5.6j)

序列類(lèi)型

  • 字符串: 單引號(hào),雙引號(hào),三引號(hào)內(nèi)的都是字符串,不可變類(lèi)型
  • 列表: 強(qiáng)大的類(lèi)型,用方括號(hào) [] 界別,可變類(lèi)型
  • 元組: 與列表相似,用小括號(hào) () 界別,不可變類(lèi)型

字符串的表示

  • 單引號(hào)
  • 雙引號(hào)
  • 三引號(hào)
>>> myString = 'Hello World!'
>>> print myString
Hello World!
>>> myString = "Hello World!"
>>> print myString
Hello World!
>>> myString = '''Hello World!'''
>>> print myString
Hello World!

映射類(lèi)型 字典

  • 用大括號(hào) {} 界別
  • 類(lèi)似于哈希表的鍵值對(duì)
>>> # dictionary
>>> d = {'sine': 'sin', 'cosine': 'cos', 'PI': 3.14159}
>>> d['sine']
'sin'

1.1.5 Basic Operations of Python | Python 基本運(yùn)算

算術(shù)運(yùn)算

  • 算術(shù)運(yùn)算符的優(yōu)先級(jí)
    • 乘方**, 正負(fù)號(hào)+ -,
    • 乘除* /, 整除//,
    • 取余%, 加減+ -
>>> # arithmetic
>>> pi = 3.14159
>>> r = 3
>>> circum = 2 * pi * r
>>> x = 1
>>> y = 2
>>> z = 3
>>> result1 = x + 3/y - z % 2
>>> result2 = (x + y ** z * 4) // 5
>>> print circum, result1, result2
18.84954 1 6

比較運(yùn)算

  • 數(shù)值的比較:按值比大小
  • 字符串的比較:按ASCII碼值大小
>>> # compare
>>> 3 < 4 < 7    # same as (3 < 4) and (4 < 7)
True
>>> 4 > 3 == 3    # same as (4 > 3) and (3 == 3)
True
>>> 4 < 3 < 5 != 2 < 7
False
>>> # compare
>>> 2 == 2
True
>>> 2.46 <= 8.33
True
>>> 'abc' == 'xyz'
False
>>> 'abc' > 'xyz'
False
>>> 'abc' < 'xyz'
True

邏輯運(yùn)算

  • 邏輯運(yùn)算符優(yōu)先級(jí):
    • not, and, or
>>> # logical
>>> x, y = 3.1415926536, -1024
>>> x < 5.0
True
>>> not (x < 5.0)
False
>>> (x < 5.0) or (y > 2.718281828)
True
>>> (x < 5.0) and (y > 2.718281828)
False
>>> not (x is y)
True
>>> 3 < 4 < 7    # same as "(3 < 4) and (4 < 7)"
True

字符運(yùn)算符

  • 原始字符串操作符(r / R):
    • 用于一些不希望轉(zhuǎn)義字符起作用的地方
  • Unicode 字符串操作符(u / U):
    • 轉(zhuǎn)化成Unicode字符串
>>> # u
>>> print u'Hello\nWorld'
hello
World
>>> # r
>>> f = open('c:\python\test.py', 'w')
Traceback(most recent call last):
  File "<pyshell#12>", line 1, in <module>
    f = open('c:\python\test.py', 'w')
IOError: [Errno 22] invalid mode ('w') or
filename: 'c:\\python\test.py'
>>> f = open(r'c:\python\test.py', 'w')
>>> f = open('c:\\python\\test.py', 'w')

綜合運(yùn)算

>>> # mix
>>> 3 < 2 and 2 < 1 or 5 > 4
True
>>> x + 3/y - z % 2 > 2
False
>>> 3 - 2 << 1
2
>>> 3 - 2 << 1 < 3
True

1.1.6 Functions, Modules and Packages of Python | Python 的函數(shù),模塊和包

函數(shù)

  • 函數(shù)可以看成類(lèi)似于數(shù)學(xué)中的函數(shù)
  • 完成一個(gè)特定功能的一段代碼
    • 絕對(duì)值函數(shù)abs(x)
    • 類(lèi)型函數(shù)type(x)
    • 四舍五入函數(shù)round(x)
  • 內(nèi)建函數(shù)
    • cmp(), str()type() 適用于所有標(biāo)準(zhǔn)類(lèi)型
    • 數(shù)值型內(nèi)建函數(shù):
abs() bool() oct()
coerce() int() hex()
divmod() long() ord()
pow() float() chr()
round() complex()
  • 實(shí)用函數(shù)
dir() raw_input()
help() open()
len() range()

模塊

  • 非內(nèi)建函數(shù)如何使用?
>>> # round-off floor
>>> floor(5.4)
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    floor(5.4)
NameError: name 'floor' is not defined
>>> # round-off floor
>>> import math
>>> math.floor(-35.4)
-36.0
>>> math.floor(-35.5)
-36.0
>>> math.floor(-35.8)
-36.0
  • 一個(gè)完成的Python文件即是一個(gè)模塊
    • 文件:物理上的組織方式 math.py
    • 模塊:邏輯上的組織方式 math
  • Python通常用 "import模塊" 的方式將現(xiàn)成模塊中的函數(shù),類(lèi)等重用到其他代碼塊中
    • math.pi 的值可以直接使用,不需要自行定義
>>> # module
>>> import math
>>> math.pi
3.141592653589793
  • 導(dǎo)入多個(gè)模塊
  • 模塊里導(dǎo)入制定的模塊屬性,也就是把指定名稱(chēng)倒入到當(dāng)前作用域
>>> import ModuleName
>>> import ModuleName1, ModuleName2, ...
>>> from Module1 import ModuleElement

包(package)

  • 一個(gè)有層次的文件目錄結(jié)構(gòu)
  • 定義了一個(gè)由模塊和子包組成的Python應(yīng)用程序執(zhí)行環(huán)境
>>> import AAA.CCC.c1
>>> AAA.CCC.c1.func1(123)
>>> from AAA.CCC.c1 import func1
>>> func1(123)
AAA/
  __init__.py
  bbb.py
  CCC/
    __init__.py
    c1.py
    c2.py
  DDD/
    __init__.py
    d1.py
  EEE/
    ...

庫(kù)(library)

  • 庫(kù)是一組具有相關(guān)功能的模塊的集合
  • Python的一大特色就是具有強(qiáng)大的標(biāo)準(zhǔn)庫(kù),以及第三方庫(kù),以及自定義模塊
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 ||| 第二章 使用ArcPy編寫(xiě)腳本 Python支持大部分在其他語(yǔ)言中出現(xiàn)的編程結(jié)構(gòu)。在本章內(nèi)容中,我們...
    muyan閱讀 90,793評(píng)論 10 55
  • 前言 Python的創(chuàng)始人為Guido van Rossum。1989年圣誕節(jié)期間,在阿姆斯特丹,Guido為了打...
    依依玖玥閱讀 3,706評(píng)論 6 37
  • 1. 我醒了過(guò)來(lái),感覺(jué)頭疼的就要炸裂。四周一片漆黑,我大驚“不妙”,掙扎著想要站立起來(lái),可是腳下的地面突然晃蕩了起...
    晴獸菌閱讀 169評(píng)論 0 0
  • 來(lái)談點(diǎn)自己這段時(shí)間的感受吧。初始水湄在豆瓣,來(lái)小白訓(xùn)練營(yíng)也是因?yàn)樗膹V告文,9塊錢(qián)的21天訓(xùn)練營(yíng)至今,收獲當(dāng)然遠(yuǎn)不...
    葉籽貓閱讀 490評(píng)論 0 10
  • 49周計(jì)回顧 1.項(xiàng)目化CEO本周重點(diǎn)作業(yè):搜索閱讀4篇與年計(jì)劃、年目標(biāo)制定有關(guān)的文章,做4張腦圖, 2.把4篇的...
    李琳艷閱讀 256評(píng)論 0 0

友情鏈接更多精彩內(nèi)容