python_day1

一、python介紹

Python簡介及應用領(lǐng)域編輯
Python是一種解釋型腳本語言埋虹,可以應用于以下領(lǐng)域: [2]
Web 和 Internet開發(fā)
科學計算和統(tǒng)計
人工智能
桌面界面開發(fā)
軟件開發(fā)
后端開發(fā)
網(wǎng)絡爬蟲

1989年圣誕節(jié):Guido von Rossum開始寫Python語言的編譯器
Python可以應用于眾多領(lǐng)域锤躁,如:數(shù)據(jù)分析烧给、組件集成迈倍、網(wǎng)絡服務鞋屈、圖像處理追城、數(shù)值計算和科學計算等眾多領(lǐng)域刹碾。目前業(yè)內(nèi)幾乎所有大中型互聯(lián)網(wǎng)企業(yè)都在使用Python,如:Youtube座柱、Dropbox迷帜、BT、Quora(中國知乎)色洞、豆瓣戏锹、知乎、Google火诸、Yahoo!锦针、Facebook、NASA置蜀、百度奈搜、騰訊、汽車之家盯荤、美團等馋吗。

Python的優(yōu)缺點

Python的優(yōu)點很多,簡單的可以總結(jié)為以下幾點秋秤。

  1. 簡單和明確宏粤,做一件事只有一種方法。
  2. 學習曲線低航缀,跟其他很多語言相比商架,Python更容易上手。
  3. 開放源代碼芥玉,擁有強大的社區(qū)和生態(tài)圈蛇摸。
  4. 解釋型語言,天生具有平臺可移植性灿巧。
  5. 對兩種主流的編程范式(面向?qū)ο缶幊毯秃瘮?shù)式編程)都提供了支持赶袄。
  6. 可擴展性和可嵌入性揽涮,例如在Python中可以調(diào)用C/C++代碼。
  7. 代碼規(guī)范程度高饿肺,可讀性強蒋困,適合有代碼潔癖和強迫癥的人群。

Python的缺點主要集中在以下幾點敬辣。

  1. 執(zhí)行效率稍低雪标,因此計算密集型任務可以由C/C++編寫。
  2. 代碼無法加密溉跃,但是現(xiàn)在很多公司都不銷售賣軟件而是銷售服務村刨,這個問題會被弱化。
  3. 在開發(fā)時可以選擇的框架太多(如Web框架就有100多個)撰茎,有選擇的地方就有錯誤嵌牺。

目前Python主要應用領(lǐng)域:

云計算: 云計算最火的語言, 典型應用OpenStack
WEB開發(fā): 眾多優(yōu)秀的WEB框架龄糊,眾多大型網(wǎng)站均為Python開發(fā)逆粹,Youtube, Dropbox, 豆瓣。炫惩。僻弹。, 典型WEB框架有Django
科學運算诡必、人工智能: 典型庫NumPy, SciPy, Matplotlib, Enthought librarys,pandas
系統(tǒng)運維: 運維人員必備語言
金融:量化交易奢方,金融分析搔扁,在金融工程領(lǐng)域,Python不但在用稿蹲,且用的最多,而且重要性逐年提高涂炎。原因:作為動態(tài)語言的Python,語言結(jié)構(gòu)清晰簡單设哗,庫豐富,成熟穩(wěn)定网梢,科學計算和統(tǒng)計分析都很牛逼,生產(chǎn)效率遠遠高于c,c++,java,尤其擅長策略回測
圖形GUI: PyQT, WxPython,TkInter

語言類型

編譯型 解釋型 混合型
C Python Java
C++ JavaScript C#
Go Ruby
Swift Php

編譯型
優(yōu)點:編譯器一般會有預編譯的過程對代碼進行優(yōu)化战虏。因為編譯只做一次拣宰,運行時不需要編譯党涕,所以編譯型語言的程序執(zhí)行效率高膛堤∩胃茫可以脫離語言環(huán)境獨立運行。
缺點:編譯之后如果要修改就需要修改整個模塊崇信編譯次企。編譯的時候根據(jù)對應的運行環(huán)境生成機器碼潜圃,不同的操作系統(tǒng)之間移植就會有問題,需要根據(jù)運行的操作系統(tǒng)環(huán)境編譯不同的可執(zhí)行文件堵第。
解釋型
優(yōu)點:有良好的平臺兼容性隧出,在任何環(huán)境中都可以運行胀瞪,前提是安裝了解釋器(虛擬機)。靈活圆雁,修改代碼的時候直接修改就可以了帆谍,可以快速部署,不需要停機維護烈涮。
缺點:每次運行的時候都需要解釋一遍窖剑,性能上不如編譯型語言西土。

要在電腦上運行python就必須安裝python環(huán)境即安裝python解釋器

Windows環(huán)境

可以在Python官方網(wǎng)站下載到Python的Windows安裝程序(exe文件),需要注意的是如果在Windows 7環(huán)境下安裝Python 3.x绘雁,需要先安裝Service Pack 1補丁包(可以通過一些工具軟件自動安裝系統(tǒng)補丁的功能來安裝),安裝過程建議勾選“Add Python 3.x to PATH”(將Python 3.x添加到PATH環(huán)境變量)并選擇自定義安裝欣除,在設(shè)置“Optional Features”界面最好將“pip”挪略、“tcl/tk”杠娱、“Python test suite”等項全部勾選上。強烈建議選擇自定義的安裝路徑并保證路徑中沒有中文禽拔。安裝完成會看到“Setup was successful”的提示室叉。如果稍后運行Python程序時,出現(xiàn)因為缺失一些動態(tài)鏈接庫文件而導致Python解釋器無法工作的問題野来,可以按照下面的方法加以解決踪旷。

如果系統(tǒng)顯示api-ms-win-crt*.dll文件缺失令野,可以參照《api-ms-win-crt*.dll缺失原因分析和解決方法》一文講解的方法進行處理或者直接在微軟官網(wǎng)下載Visual C++ Redistributable for Visual Studio 2015文件進行修復;如果是因為更新Windows的DirectX之后導致某些動態(tài)鏈接庫文件缺失問題构舟,可以下載一個DirectX修復工具進行修復堵幽。

Linux環(huán)境

Linux環(huán)境自帶了Python 2.x版本朴下,最新的系統(tǒng)版本都安裝了python3.x版本苦蒿,一般是python3.5,但是如果要更新到3.x的版本,可以在Python的官方網(wǎng)站下載Python的源代碼并通過源代碼構(gòu)建安裝的方式進行安裝团滥,具體的步驟如下所示(以CentOS為例)灸姊。

  1. 安裝依賴庫(因為沒有這些依賴庫可能在源代碼構(gòu)件安裝時因為缺失底層依賴庫而失敗)碗誉。
yum -y install wget gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
  1. 下載Python源代碼并解壓縮到指定目錄父晶。
wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tar.xz
xz -d Python-3.7.6.tar.xz
tar -xvf Python-3.7.6.tar
  1. 切換至Python源代碼目錄并執(zhí)行下面的命令進行配置和安裝甲喝。
cd Python-3.7.6
./configure --prefix=/usr/local/python37 --enable-optimizations
make && make install
  1. 修改用戶主目錄下名為.bash_profile的文件,配置PATH環(huán)境變量并使其生效茎匠。
cd ~
vim .bash_profile
# ... 此處省略上面的代碼 ...

export PATH=$PATH:/usr/local/python37/bin

# ... 此處省略下面的代碼 ...
  1. 激活環(huán)境變量押袍。
source .bash_profile

macOS環(huán)境

macOS也自帶了Python 2.x版本谊惭,可以通過Python的官方網(wǎng)站提供的安裝文件(pkg文件)安裝Python 3.x的版本。默認安裝完成后豹芯,可以通過在終端執(zhí)行python命令來啟動2.x版本的Python解釋器驱敲,啟動3.x版本的Python解釋器需要執(zhí)行python3命令众眨。

運行Python程序

確認Python的版本

可以Windows的命令行提示符中鍵入下面的命令。

python --version

或者是在Linux或macOS系統(tǒng)的終端中鍵入下面的命令沿腰。

python3 --version

由于我是使用的anaconda颂龙,所以用的是python --version
當然也可以先輸入python或python3進入交互式環(huán)境,再執(zhí)行以下的代碼檢查Python的版本躲叼。

import sys

print(sys.version_info)
print(sys.version)
在這里插入圖片描述

編寫Python源代碼

可以用文本編輯工具(推薦使用Sublime枫慷、Visual Studio Code等高級文本編輯工具)編寫Python源代碼并用py作為后綴名保存該文件包斑,代碼內(nèi)容如下所示。

print('hello, world!')

指定解釋器

在編寫的腳本中添加#!/usr/bin/env python神帅,明確的指出腳本由python解釋器來執(zhí)行找御。使用./xxx.py來執(zhí)行绍填。

變量

#_*_coding:utf-8_*_
name = smallpotato
age = 23

上述代碼申明了兩個變量讨永,name,age揭糕。使用命令type()檢查變量類型锻霎⌒眨可以使用Python中內(nèi)置的函數(shù)對變量類型進行轉(zhuǎn)換。

  • int():將一個數(shù)值或字符串轉(zhuǎn)換成整數(shù)产徊,可以指定進制冬殃。
  • float():將一個字符串轉(zhuǎn)換成浮點數(shù)审葬。
  • str():將指定的對象轉(zhuǎn)換成字符串形式,可以指定編碼痴荐。
  • chr():將整數(shù)轉(zhuǎn)換成該編碼對應的字符串(一個字符)官册。
  • ord():將字符串(一個字符)轉(zhuǎn)換成對應的編碼(整數(shù))。
變量定義的規(guī)則
  • 變量名只能是字母鸦难、數(shù)字或下劃線的任意組合
  • 變量名第一個字母不能是數(shù)字
  • 關(guān)鍵字不能作為變量名

中文編碼

ASCII合蔽、GB2312介返、GBK、GB18030刃宵,顯然ASCII碼無法將世界上各種字符全部顯示牲证,所以关面,就需要一種可以代表所有的符號的編碼:Unicode。

注釋

單行注釋:#注釋部分
多行注釋:”“”注釋部分“”“

Test

import this

”python之禪“不僅適用于python键闺,還適用于其他編程語言辛燥。


在這里插入圖片描述

用戶輸入

#!/usr/bin/env python
#_*_coding:utf-8_*_
name = input("Please input your name:")
print("Hello" +  name)

模塊

python的強大之處在于他有非常豐富和強大的標準庫和第三方庫挎塌。
像我們輸入密碼時内边,如果不想顯示漠其,可以利用標準庫getpass模塊竿音。


在這里插入圖片描述

sys模塊


在這里插入圖片描述

os模塊
在這里插入圖片描述

turtle模塊
import turtle
turtle.pensize(4)
turtle.pencolor('red')
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.mainloop()
在這里插入圖片描述

指令和程序

計算機的硬件系統(tǒng)通常由五大部件構(gòu)成,包括:運算器宽气、控制器潜沦、存儲器唆鸡、輸入設(shè)備和輸出設(shè)備。其中袄琳,運算器和控制器放在一起就是我們通常所說的中央處理器燃乍,它的功能是執(zhí)行各種運算和控制指令以及處理計算機軟件中的數(shù)據(jù)。我們通常所說的程序?qū)嶋H上就是指令的集合逗旁,我們程序就是將一系列的指令按照某種方式組織到一起片效,然后通過這些指令去控制計算機做我們想讓它做的事情英古。今天我們大多數(shù)時候使用的計算機,雖然它們的元器件做工越來越精密膨桥,處理能力越來越強大唠叛,但究其本質(zhì)來說仍然屬于“馮·諾依曼結(jié)構(gòu)”的計算機艺沼。“馮·諾依曼結(jié)構(gòu)”有兩個關(guān)鍵點调鲸,一是指出要將存儲設(shè)備與中央處理器分開,二是提出了將數(shù)據(jù)以二進制方式編碼饶唤。二進制是一種“逢二進一”的計數(shù)法,跟我們?nèi)祟愂褂玫摹胺晔M一”的計數(shù)法沒有實質(zhì)性的區(qū)別办素,人類因為有十根手指所以使用了十進制(因為在數(shù)數(shù)時十根手指用完之后就只能進位了性穿,當然凡事都有例外,瑪雅人可能是因為長年光著腳的原因把腳趾頭也算上了吗坚,于是他們使用了二十進制的計數(shù)法呆万,在這種計數(shù)法的指導下瑪雅人的歷法就與我們平常使用的歷法不一樣谋减,而按照瑪雅人的歷法,2012年是上一個所謂的“太陽紀”的最后一年庄吼,而2013年則是新的“太陽紀”的開始严就,后來這件事情被以訛傳訛的方式誤傳為”2012年是瑪雅人預言的世界末日“這種荒誕的說法梢为,今天我們可以大膽的猜測,瑪雅文明之所以發(fā)展緩慢估計也與使用了二十進制有關(guān))殊轴。對于計算機來說袒炉,二進制在物理器件上來說是最容易實現(xiàn)的(高電壓表示1我磁,低電壓表示0)驻襟,于是在“馮·諾依曼結(jié)構(gòu)”的計算機都使用了二進制沉衣。雖然我們并不需要每個程序員都能夠使用二進制的思維方式來工作减牺,但是了解二進制以及它與我們生活中的十進制之間的轉(zhuǎn)換關(guān)系拔疚,以及二進制與八進制和十六進制的轉(zhuǎn)換關(guān)系還是有必要的。如果你對這一點不熟悉栋艳,可以自行使用維基百科或者百度百科科普一下句各。

數(shù)據(jù)類型

  1. 數(shù)字
    int(整型)

在32位機器上凿宾,整數(shù)的位數(shù)為32位,取值范圍為-231~231-1问拘,即-2147483648~2147483647
  在64位系統(tǒng)上惧所,整數(shù)的位數(shù)為64位下愈,取值范圍為-263~263-1,即-9223372036854775808~9223372036854775807
long(長整型)
  跟C語言不同拌夏,Python的長整數(shù)沒有指定位寬履因,即:Python沒有限制長整數(shù)數(shù)值的大小栅迄,但實際上由于機器內(nèi)存有限,我們使用的長整數(shù)數(shù)值不可能無限大西篓。
  注意岂津,自從Python2.2起,如果整數(shù)發(fā)生溢出橱乱,Python會自動將整數(shù)數(shù)據(jù)轉(zhuǎn)換為長整數(shù)赁豆,所以如今在長整數(shù)數(shù)據(jù)后面不加字母L也不會導致嚴重后果了魔种。
float(浮點型)
先掃盲 http://www.cnblogs.com/alex3714/articles/5895848.html
  浮點數(shù)用來處理實數(shù)粉洼,即帶有小數(shù)的數(shù)字属韧。類似于C語言中的double類型,占8個字節(jié)(64位)糠赦,其中52位表示底拙泽,11位表示指數(shù)裸燎,剩下的一位表示符號德绿。
complex(復數(shù))
  復數(shù)由實數(shù)部分和虛數(shù)部分組成,一般形式為x+yj蕴纳,其中的x是復數(shù)的實數(shù)部分个粱,y是復數(shù)的虛數(shù)部分几蜻,這里的x和y都是實數(shù)体斩。
注:Python中存在小數(shù)字池:-5 ~ 257

  1. 布爾型:布爾值只有True絮吵、False兩種值忱屑,要么是True莺戒,要么是False,在Python中瘪校,可以直接用True阱扬、False表示布爾值(請注意大小寫)伸辟,也可以通過布爾運算計算出來(例如3 < 5會產(chǎn)生布爾值True信夫,而2 == 1會產(chǎn)生布爾值False)。
  2. 字符串
name = "nkonk"
#print("i am %s " % name)
print("i am {}".format(name))
Test

溫度轉(zhuǎn)換

#!/usr/bin/env python
#_*=coding:utf-8_*_
f = float(input('請輸入華氏溫度: '))
c = (f - 32) / 1.8
print('%.1f華氏度 = %.1f攝氏度' % (f, c))
在這里插入圖片描述

輸入圓的半徑計算計算周長和面積

import math
radius = float(input('請輸入圓的半徑:'))
perimeter = 2 * math.pi * radius
area = math.pi * radius * radius
print('周長:%.2f' % perimeter)
print('面積:%.2f' % area)
在這里插入圖片描述

判斷是否是閏年

while True:
    year = int(input('請輸入年份: '))
    is_leap = (year % 4 == 0 and year % 100 != 0) or \
        year % 400 == 0
    if is_leap == True:
        print("%d是閏年" % year)
    else:
        print("%d不是閏年" % year)
在這里插入圖片描述
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末姊扔,一起剝皮案震驚了整個濱河市恰梢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嗅回,老刑警劉巖摧茴,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娃豹,死亡現(xiàn)場離奇詭異,居然都是意外死亡鹃栽,警方通過查閱死者的電腦和手機躯畴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門蓬抄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嚷缭,“玉大人,你說我怎么就攤上這事克滴。” “怎么了誓焦?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵杂伟,是天一觀的道長赫粥。 經(jīng)常有香客問我,道長频蛔,這世上最難降的妖魔是什么晦溪? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任三圆,我火速辦了婚禮,結(jié)果婚禮上修噪,老公的妹妹穿的比我還像新娘路媚。我一直安慰自己磷籍,他們只是感情好,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著比然,像睡著了一般强法。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上闰歪,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天库倘,我揣著相機與錄音论矾,去河邊找鬼贪壳。 笑死,一個胖子當著我的面吹牛彪笼,可吹牛的內(nèi)容都是我干的杰扫。 我是一名探鬼主播膘掰,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼零渐!你這毒婦竟也來了系忙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤银还,失蹤者是張志新(化名)和其女友劉穎风宁,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛹疯,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡戒财,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了捺弦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饮寞。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖列吼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情寞钥,我是刑警寧澤慌申,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站理郑,受9級特大地震影響太示,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜香浩,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望臼勉。 院中可真熱鬧邻吭,春花似錦、人聲如沸宴霸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瓢谢。三九已至畸写,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間氓扛,已是汗流浹背枯芬。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工论笔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人千所。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓狂魔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親淫痰。 傳聞我的和親對象是個殘疾皇子最楷,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Python語言特性 1 Python的函數(shù)參數(shù)傳遞 看兩個如下例子,分析運行結(jié)果: 代碼一: a = 1 def...
    伊森H閱讀 3,063評論 0 15
  • 前言 首先,本次立項項目只是為了做網(wǎng)絡爬蟲火俄,本身不需要Python完整的知識鏈犯建。因此,對于基本語法烛占,我會浮光掠影胎挎,...
    OzanShareing閱讀 1,156評論 3 2
  • 周日,我和幾個小伙伴在院子里玩“老鷹捉小雞”的游戲忆家。小紅扮演“老鷹”犹菇,我扮演“母雞”,小明和小亮扮演“小雞”...
    榮賢閱讀 402評論 0 1
  • 一提起我的同桌称杨,數(shù)不清有多少個,我最想說一說的就是這個愛哭鼻子“大男孩”——xxx筷转,說他大姑原,他就是占了個子大,眼睛...
    走過不惑閱讀 432評論 0 0
  • 《那年,我畢業(yè)了》—穿石—十五六載初學成袭蝗,背井離鄉(xiāng)踏人生唤殴。始入社會何以立,孝悌誠信善厚德到腥。踏遍南山憶往昔朵逝,渡盡渭水...
    東方詩空閱讀 170評論 6 4