第一周python學(xué)習(xí)2018-12-23

源碼

Python解釋器:從文件第一行開(kāi)始,一直運(yùn)行到文件末尾,會(huì)執(zhí)行文件中的每一行python代碼。

Python標(biāo)準(zhǔn)庫(kù):是一組豐富的軟件模塊,提供了大量預(yù)建(且高質(zhì)量)的可重用代碼,每個(gè)模塊中又有很多子模塊或者函數(shù)。

Datetime模塊

os模塊:?? getcwd函數(shù)

import os

os.getcwd()-------------得出代碼所在文件夾的名字

os.environ----------訪問(wèn)系統(tǒng)的全部環(huán)境變量

os.getenv(‘HOME’)--------單獨(dú)訪問(wèn)某一個(gè)環(huán)境變量


sys模塊:了解運(yùn)行解釋器的系統(tǒng)

import sys

sys.platform------了解運(yùn)行解釋器的系統(tǒng)

sys.version-----------了解關(guān)于所運(yùn)行的Python版本的大量信息


datetime模塊

import datetime

datetime.date.today()------今天的日期

datetime.date.today().year------今天日期的組成成分

datetime.date.today().month

datetime.date.today().day


datetime.date.iosformat(datetime.date.today())-----今天的日期轉(zhuǎn)換為一個(gè)字符串


time模塊

import time

time.strftime(“%H:%M”)------24小時(shí)制的時(shí)間

time.strftime(“%A &p”)-----星期及上下午


HTML模塊

Import html

html.escape(……….)-----字符串轉(zhuǎn)換

html.unescape(……….)


< ------<

>------->

心號(hào)------?


內(nèi)置電池----Python的標(biāo)準(zhǔn)庫(kù)

內(nèi)置數(shù)據(jù)結(jié)構(gòu):

???????????????????? 列表:[?? ]

?????????????????????????????? 可以包含任何類(lèi)型的數(shù)據(jù)


Python變量會(huì)動(dòng)態(tài)賦值

在Python中,第一次使用變量時(shí),變量就會(huì)立即存在,不需要預(yù)聲明,Python變量會(huì)從所賦對(duì)象的類(lèi)型得到自己的類(lèi)型信息。


可以向變量賦值? 一個(gè)方法調(diào)用的結(jié)果。


Python的“超級(jí)操作符”:in: 檢查一個(gè)對(duì)象是不是在另一個(gè)對(duì)象里


Python的代碼塊:縮進(jìn)形式劃分代碼塊,還有冒號(hào):,冒號(hào)后必須縮進(jìn),表示引入一個(gè)新的代碼組


If??-----else

elif

12/14

循環(huán)

for?????提前知道需要多少次迭代

for i in [1,2,3]:

????? print(i)

While?????不知道需要多少次迭代


range??? 接收一個(gè)整數(shù)參數(shù),指示for循環(huán)要運(yùn)行多少次。

for num in range(5):

???????????? print(‘HeadFirst Rocks!’)


模塊調(diào)用

Import time

time.sleep(5)----讓執(zhí)行暫停5秒

import random

random.randint(1,60)----在1-60中隨機(jī)生成一個(gè)數(shù)字


12/15/18

列表數(shù)據(jù)---處理有序數(shù)據(jù)

1、數(shù)字、字符串、對(duì)象

2、內(nèi)置數(shù)據(jù)結(jié)構(gòu):

列表:有序的可變對(duì)象集合。

[?? ]?? ;??? ,


字面列表


元組:有序的不可變對(duì)象集合,是常量列表

字典:無(wú)序可變數(shù)據(jù)結(jié)構(gòu)。字典中每個(gè)唯一鍵有一個(gè)與之關(guān)聯(lián)的值,字典可以包含多個(gè)鍵/值對(duì)。與鍵關(guān)聯(lián)的值可以是任意對(duì)象。

集合:無(wú)序的唯一對(duì)象集合,集合可以根據(jù)需要擴(kuò)展(和收縮)。集合不允許有重復(fù)的對(duì)象。


12/19/18

問(wèn)題:本來(lái)很疑惑為什么列表切片中,letters[開(kāi)始:結(jié)束:步長(zhǎng)],其中并不包括“結(jié)束”這個(gè)索引值,但是使用letter[::1]時(shí),就包含了最后一個(gè)索引值,于是就試了幾下:

[if !vml]

[endif]

可以看到,當(dāng)“結(jié)束”索引值是4的時(shí)候,并不包含4位置也就是最后一個(gè)位置上的元素。但是當(dāng)“結(jié)束”索引值是5或者更大的數(shù)字時(shí),就包含了最后一個(gè)元素。定義上說(shuō)“如果沒(méi)有指定結(jié)束值,則取列表允許的最大值”,實(shí)驗(yàn)證明,列表允許的最大值可以是5、6、7等超過(guò)列表元素的值。因而當(dāng)處于默認(rèn)狀態(tài)時(shí),就意味著取無(wú)限大。

經(jīng)專(zhuān)業(yè)人士解釋?zhuān)鹤箝]右開(kāi)。。。。


注意:

[if !vml]

[endif]

在’’.join()中,只允許有一個(gè)數(shù)組,所以如圖中有多個(gè)元素時(shí),需要加上[],變成’’.join([…,….,……,……])




《HeadFirst Python》第二章結(jié)束

第二章:列表數(shù)據(jù):處理有序數(shù)據(jù)

在python中,一切都是對(duì)象,意味著所有對(duì)象都可以賦給變量。

內(nèi)置數(shù)據(jù)結(jié)構(gòu):列表,元組,字典,集合

列表:可異構(gòu),動(dòng)態(tài)變化

外形特點(diǎn):[?? ]???,

字面列表:一次性完成創(chuàng)建和填充

函數(shù):len()? 會(huì)報(bào)告一個(gè)對(duì)象的大小

Found = []

Len(found)

輸出顯示:0


“擴(kuò)展”列表:

函數(shù):append()

found.append(‘a(chǎn)’)

len(found)

輸出:1

found

輸出:0


if…..in…..

if……not in…….

vowels = [‘a(chǎn)’,’e’,’i’,’o’,’u’]

word = “Milliways”

for letters in word:

?????? if letter invowels:

?????????? if letternot in found:

???????????????found.append(letter)

for vowel in found:

?????? print(vowel)


word = input(“provide a word to search for vowels:”)


從列表中刪除對(duì)象:

remove()?? 取一個(gè)對(duì)象值最為唯一參數(shù)

pop()?? 取一個(gè)可選的索引值作為參數(shù)

用對(duì)象擴(kuò)展列表:

extend()?? 取一個(gè)對(duì)象列表作為唯一參數(shù)

insert()??? 取一個(gè)索引值和一個(gè)對(duì)象作為參數(shù)


list()?? 將字符串轉(zhuǎn)換為列表

copy()?? 復(fù)制列表


列表擴(kuò)展中的中括號(hào)記法:

letter[start:stop:step]


letter[3:]????? 跳過(guò)前三個(gè)字母,然后給出其余的所有字母

letter[:10]?? 直到(但不包含)索引位置的10的所有字母

letter[::2]? 步長(zhǎng)為2


‘’.join()?? 將列表轉(zhuǎn)換為字符串

list()


列表切片——非破壞性的







Python

缺點(diǎn):第一個(gè)缺點(diǎn)就是運(yùn)行速度慢,和C程序相比非常慢,因?yàn)镻ython是解釋型語(yǔ)言,你的代碼在執(zhí)行時(shí)會(huì)一行一行地翻譯成CPU能理解的機(jī)器碼,這個(gè)翻譯過(guò)程非常耗時(shí),所以很慢。而C程序是運(yùn)行前直接編譯成CPU能執(zhí)行的機(jī)器碼,所以非???。

但是大量的應(yīng)用程序不需要這么快的運(yùn)行速度,因?yàn)橛脩舾靖杏X(jué)不出來(lái)。例如開(kāi)發(fā)一個(gè)下載MP3的網(wǎng)絡(luò)應(yīng)用程序,C程序的運(yùn)行時(shí)間需要0.001秒,而Python程序的運(yùn)行時(shí)間需要0.1秒,慢了100倍,但由于網(wǎng)絡(luò)更慢,需要等待1秒,你想,用戶能感覺(jué)到1.001秒和1.1秒的區(qū)別嗎?這就好比F1賽車(chē)和普通的出租車(chē)在北京三環(huán)路上行駛的道理一樣,雖然F1賽車(chē)?yán)碚摃r(shí)速高達(dá)400公里,但由于三環(huán)路堵車(chē)的時(shí)速只有20公里,因此,作為乘客,你感覺(jué)的時(shí)速永遠(yuǎn)是20公里。

第二個(gè)缺點(diǎn)就是代碼不能加密。如果要發(fā)布你的Python程序,實(shí)際上就是發(fā)布源代碼,這一點(diǎn)跟C語(yǔ)言不同,C語(yǔ)言不用發(fā)布源代碼,只需要把編譯后的機(jī)器碼(也就是你在Windows上常見(jiàn)的xxx.exe文件)發(fā)布出去。要從機(jī)器碼反推出C代碼是不可能的,所以,凡是編譯型的語(yǔ)言,都沒(méi)有這個(gè)問(wèn)題,而解釋型的語(yǔ)言,則必須把源碼發(fā)布出去。

這個(gè)缺點(diǎn)僅限于你要編寫(xiě)的軟件需要賣(mài)給別人掙錢(qián)的時(shí)候。好消息是目前的互聯(lián)網(wǎng)時(shí)代,靠賣(mài)軟件授權(quán)的商業(yè)模式越來(lái)越少了,靠網(wǎng)站和移動(dòng)應(yīng)用賣(mài)服務(wù)的模式越來(lái)越多了,后一種模式不需要把源碼給別人。

再說(shuō)了,現(xiàn)在如火如荼的開(kāi)源運(yùn)動(dòng)和互聯(lián)網(wǎng)自由開(kāi)放的精神是一致的,互聯(lián)網(wǎng)上有無(wú)數(shù)非常優(yōu)秀的像Linux一樣的開(kāi)源代碼,我們千萬(wàn)不要高估自己寫(xiě)的代碼真的有非常大的“商業(yè)價(jià)值”。那些大公司的代碼不愿意開(kāi)放的更重要的原因是代碼寫(xiě)得太爛了,一旦開(kāi)源,就沒(méi)人敢用他們的產(chǎn)品了。



Python交互模式和命令模式執(zhí)行python代碼的區(qū)別:

Python交互模式的代碼是輸入一行,執(zhí)行一行,而命令行模式下直接運(yùn)行.py文件是一次性執(zhí)行該文件內(nèi)的所有代碼??梢?jiàn),Python交互模式主要是為了調(diào)試Python代碼用的,也便于初學(xué)者學(xué)習(xí),它不是正式運(yùn)行Python代碼的環(huán)境!

在Python交互式模式下,可以直接輸入代碼,然后執(zhí)行,并立刻得到結(jié)果。

在命令行模式下,可以直接運(yùn)行.py文件。


Python的縮進(jìn)格式利弊:

縮進(jìn)有利有弊。好處是強(qiáng)迫你寫(xiě)出格式化的代碼,但沒(méi)有規(guī)定縮進(jìn)是幾個(gè)空格還是Tab。按照約定俗成的管理,應(yīng)該始終堅(jiān)持使用4個(gè)空格的縮進(jìn)。

縮進(jìn)的另一個(gè)好處是強(qiáng)迫你寫(xiě)出縮進(jìn)較少的代碼,你會(huì)傾向于把一段很長(zhǎng)的代碼拆分成若干函數(shù),從而得到縮進(jìn)較少的代碼。

縮進(jìn)的壞處就是“復(fù)制-粘貼”功能失效了,這是最坑爹的地方。當(dāng)你重構(gòu)代碼時(shí),粘貼過(guò)去的代碼必須重新檢查縮進(jìn)是否正確。此外,IDE很難像格式化Java代碼那樣格式化Python代碼。

最后,請(qǐng)務(wù)必注意,Python程序是大小寫(xiě)敏感的,如果寫(xiě)錯(cuò)了大小寫(xiě),程序會(huì)報(bào)錯(cuò)。


Python數(shù)據(jù)類(lèi)型:

如果字符串內(nèi)部既包含'又包含"怎么辦?可以用轉(zhuǎn)義字符\來(lái)標(biāo)識(shí),比如:

'I\'m \"OK\"!'

表示的字符串內(nèi)容是:

I'm "OK"!





源代碼

源碼就是指編寫(xiě)的最原始程序的代碼。運(yùn)行的軟件是要經(jīng)過(guò)編寫(xiě)的,程序員編寫(xiě)程序的過(guò)程中需要他們的“語(yǔ)言”。音樂(lè)家用五線譜和音符,建筑師用圖紙和筆,那程序員的工作的語(yǔ)言就是“源碼”了。源代碼不能直接運(yùn)行,必須編譯后才能運(yùn)行。源碼經(jīng)過(guò)編譯處理后就可以直接在操作系統(tǒng)下運(yùn)行了。

人們平時(shí)使用軟件時(shí)就是程序把“源碼”翻譯成我們可直觀的形式表現(xiàn)出來(lái)供我們使用的。?

任何一個(gè)網(wǎng)站頁(yè)面,換成源碼就是一堆按一定格式書(shū)寫(xiě)的文字和符號(hào),但我們的瀏覽器幫我們翻譯成眼前的模樣了。


源代碼是指原始代碼,可以是任何語(yǔ)言代碼。

匯編碼是指源代碼編譯后的代碼,通常為二進(jìn)制文件,比如共享庫(kù)、可執(zhí)行文件、.NET中間代碼、JAVA中間代碼等。

高級(jí)語(yǔ)言通常指C/C++、BASIC、C#JAVA、PASCAL、易語(yǔ)言等等。匯編語(yǔ)言就是ASM,只有這個(gè),比這個(gè)更低級(jí)的就是機(jī)器語(yǔ)言了。



源碼主要功用有如下2種作用:

1.生成目標(biāo)代碼,即計(jì)算機(jī)可以識(shí)別的代碼。

2.對(duì)軟件進(jìn)行說(shuō)明,即對(duì)軟件的編寫(xiě)進(jìn)行說(shuō)明。為數(shù)不少的初學(xué)者,甚至少數(shù)有經(jīng)驗(yàn)的程序員都忽視軟件說(shuō)明的編寫(xiě),因?yàn)檫@部分雖然不會(huì)在生成的程序中直接顯示,也不參與編譯。但是說(shuō)明對(duì)軟件的學(xué)習(xí)、分享、維護(hù)和軟件復(fù)用都有巨大的好處。因此,書(shū)寫(xiě)軟件說(shuō)明在業(yè)界被認(rèn)為是能創(chuàng)造優(yōu)秀程序的良好習(xí)慣,一些公司也硬性規(guī)定必須書(shū)寫(xiě)。

需要指出的是,源代碼的修改不能改變已經(jīng)生成的目標(biāo)代碼。如果需要目標(biāo)代碼做出相應(yīng)的修改,必須重新編譯。



源碼組合

編輯

網(wǎng)站源碼作為軟件的特殊部分,可能被包含在一個(gè)或多個(gè)文件中。一個(gè)程序不必用同一種格式的源代碼書(shū)寫(xiě)。例如,一個(gè)程序如果有C語(yǔ)言庫(kù)的支持,那么就可以用C語(yǔ)言;而另一部分為了達(dá)到比較高的運(yùn)行效率,則可以用匯編語(yǔ)言編寫(xiě)。

較為復(fù)雜的軟件,一般需要數(shù)十種甚至上百種的源代碼的參與。為了降低這種復(fù)雜度,必須引入一種可以描述各個(gè)源代碼之間聯(lián)系,并且如何正確編譯的系統(tǒng)。在這樣的背景下,修訂控制系統(tǒng)(RCS)誕生了,并成為研發(fā)者對(duì)代碼修訂的必備工具之一。

還有另外一種組合:源代碼的編寫(xiě)和編譯分別在不同的平臺(tái)上實(shí)現(xiàn),專(zhuān)業(yè)術(shù)語(yǔ)叫做軟件移植。



執(zhí)行效率

編輯

雖然我們可以通過(guò)不同的語(yǔ)言來(lái)實(shí)現(xiàn)計(jì)算機(jī)的同一功能,但在執(zhí)行效率上則存在不同。普遍規(guī)律是:越高級(jí)的語(yǔ)言,其執(zhí)行效率越低。這也是為什么匯編語(yǔ)言生成的文件比用BASIC語(yǔ)言生成文件普遍要小的原因。

源代碼就是用匯編語(yǔ)言和高級(jí)語(yǔ)言寫(xiě)出來(lái)的代碼。主要對(duì)象是面向開(kāi)發(fā)者;

我們平常使用的應(yīng)用程序都是經(jīng)過(guò)源碼編譯打包以后發(fā)布的,呈現(xiàn)的最后結(jié)果是面向使用者,最終客戶的。

HTML

超文本標(biāo)記語(yǔ)言,標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用。

超文本就是指頁(yè)面內(nèi)可以包含圖片、鏈接,甚至音樂(lè)、程序等非文字元素。

超文本標(biāo)記語(yǔ)言的結(jié)構(gòu)包括頭”部分(英語(yǔ):Head)、和“主體”部分(英語(yǔ):Body),其中“頭”部提供關(guān)于網(wǎng)頁(yè)的信息,“主體”部分提供網(wǎng)頁(yè)的具體內(nèi)容。


制表符(也叫制表位)的功能是在不使用表格的情況下在垂直方向按列對(duì)齊文本。

水平制表符就是水平空出幾個(gè)格,說(shuō)像一下打了幾個(gè)空格一樣。編程里面用“\t”表示。垂直制表符就是垂直空出幾個(gè)格,說(shuō)像一下打了幾個(gè)回車(chē)一樣。編程里面用“\v”表示。

?著作權(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)容

  • 原文鏈接 《Python數(shù)據(jù)分析》(Python for Data Analysis, 2nd Edition)第...
    李紹俊閱讀 8,779評(píng)論 0 5
  • 包(lib)、模塊(module) 在Python中,存在包和模塊兩個(gè)常見(jiàn)概念。 模塊:編寫(xiě)Python代碼的py...
    清清子衿木子水心閱讀 3,914評(píng)論 0 27
  • 〇、前言 本文共108張圖,流量黨請(qǐng)慎重! 歷時(shí)1個(gè)半月,我把自己學(xué)習(xí)Python基礎(chǔ)知識(shí)的框架詳細(xì)梳理了一遍。 ...
    Raxxie閱讀 19,598評(píng)論 17 410
  • 原創(chuàng): 胖頭秋 1. 前段時(shí)間在朋友圈發(fā)了一條文: “他們說(shuō)我們這些80后,已經(jīng)消失在了朋友圈。那么說(shuō)一說(shuō),還留在...
    胖頭秋姑娘閱讀 1,092評(píng)論 2 5
  • 大家好,我是一個(gè)學(xué)習(xí)物理的女生。但是我很慚愧,學(xué)習(xí)了物理這么久,我突然發(fā)現(xiàn),我一直都缺少思考,缺少學(xué)習(xí)物理,不,是...
    偏不取帥氣的名字閱讀 202評(píng)論 0 0

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