摘要:常量中,通常用大寫的變量名表示常量。含有中文的無法用編碼,因?yàn)橹形木幋a的范圍超過了編碼的范圍,會(huì)報(bào)錯(cuò)。個(gè)中文字符經(jīng)過編碼后通常會(huì)占用個(gè)字節(jié),而個(gè)英文字符只占用個(gè)字節(jié)。
寫在前面的話
不知不覺畢業(yè)已經(jīng)三年多了,現(xiàn)在的工作中,極少涉及代碼的工作。主要接觸的項(xiàng)目是BI的建設(shè),做的更多的類似產(chǎn)品經(jīng)理的工作,或者比較初級(jí)的數(shù)據(jù)分析的工作。
因?yàn)闆]有美工和測(cè)試小伙伴,所以還額外承包了這兩項(xiàng)工作的我,偶爾也能接觸到代碼,比如echarts的使用,比如sql語句的編寫。除此之外,有時(shí)候還有視頻制作和文案撰寫的工作。整體來說,整個(gè)工作生涯算是比較“充實(shí)”,什么都嘗試過,所以在即將四周年的時(shí)候,我想,我該做點(diǎn)改變,再不瘋狂我就老了。
考慮過文案策劃及后期制作的工作,但是考慮到三年累計(jì)的工作經(jīng)驗(yàn),且屈服于現(xiàn)實(shí)的狀況,我還是選擇繼續(xù)數(shù)據(jù)分析的工作,或許這個(gè)轉(zhuǎn)折也挺生硬的,而且我其實(shí)更喜歡做后期制作的工作(例如明星大偵探里有毒的后期),但是當(dāng)我做下了這個(gè)決定,我就準(zhǔn)備努力沖啦!
我不害怕可能會(huì)有復(fù)雜的困難,我只害怕自己不曾努力,然后在老了之后才追悔莫及。
畢竟,我已經(jīng)丟了三年。
所以,無論如何,加油吧!
所以下面是認(rèn)真開始學(xué)習(xí)的正文
數(shù)據(jù)分析,我決定從python入手,主要的學(xué)習(xí)途徑是廖雪峰的官方網(wǎng)站。
python的簡(jiǎn)介和安裝
這一步可以跳過,因?yàn)橹熬鸵呀?jīng)嘗試安裝過。
第一個(gè)python程序
無論如何,hello world!
print("hello world!")
python交互模式和命令行模式的不同
執(zhí)行.py文件只能在命令行模式下執(zhí)行。
在windows下不能直接運(yùn)行.py文件,但是,在Mac和Linux上是可以的,方法是在.py文件的第一行加上一個(gè)特殊的注釋:
#!/usr/bin/env python3 print("hello, world")
然后,通過命令給hello.py以執(zhí)行權(quán)限:
$ chmod a+x hello.py
就可以直接運(yùn)行hello.py了。(然鵝,現(xiàn)在并沒有Mac,攤手)
輸入和輸出
print()函數(shù)可以接受多個(gè)字符串,用逗號(hào)“,”隔開,就可以連成一串輸出,遇到逗號(hào)“,”會(huì)輸出一個(gè)空格。
input()函數(shù)用于輸入,在輸入的同時(shí),在變量中存儲(chǔ)了輸入的參數(shù)。
input()可以顯示字符串來提醒用戶。
Python基礎(chǔ)
python的注釋是用#,使用縮進(jìn)方式的語法,當(dāng)以:結(jié)尾時(shí),視為代碼塊。
按照約定俗成的管理,應(yīng)該始終堅(jiān)持使用4個(gè)空格的縮進(jìn)。
請(qǐng)務(wù)必注意,Python程序是大小寫敏感的,如果寫錯(cuò)了大小寫,程序會(huì)報(bào)錯(cuò)。
數(shù)據(jù)類型
整數(shù)、浮點(diǎn)數(shù)、字符串。
如果字符串里面有很多字符都需要轉(zhuǎn)義,就需要加很多,為了簡(jiǎn)化,Python還允許用r""表示""內(nèi)部的字符串默認(rèn)不轉(zhuǎn)義
如果字符串內(nèi)部有很多換行,用n寫在一行里不好閱讀,為了簡(jiǎn)化,Python允許用"""..."""的格式表示多行內(nèi)容,注意在輸入多行內(nèi)容時(shí),提示符由>>>變?yōu)?..,提示你可以接著上一行輸入,注意...是提示符,不是代碼的一部分。
布爾值 使用and or not 計(jì)算。
空值 None 但不等同與0,因?yàn)?是有意義的。
變量 可以是任意數(shù)據(jù)類型,也可以重復(fù)賦值。
| 動(dòng)態(tài)語言和靜態(tài)語言的區(qū)別。靜態(tài)語言在定義變量時(shí)候必須指定變量類型(eg:Java)。
| 理解變量在內(nèi)存中的表示。
常量 Python中,通常用大寫的變量名表示常量。
| 除法 地板除 求余數(shù)
10 / 3 無論除數(shù)與被除數(shù)是否為整數(shù),結(jié)果都為浮點(diǎn)數(shù) 10 // 3 只取結(jié)果的整數(shù)部分 10 % 3 得出余數(shù)
字符串與編碼
對(duì)于單個(gè)字符的編碼,Python提供了ord()函數(shù)獲取字符的整數(shù)表示,chr()函數(shù)把編碼轉(zhuǎn)換為對(duì)應(yīng)的字符。
由于Python的字符串類型是str,在內(nèi)存中以Unicode表示,一個(gè)字符對(duì)應(yīng)若干個(gè)字節(jié)。如果要在網(wǎng)絡(luò)上傳輸,或者保存到磁盤上,就需要把str變?yōu)橐宰止?jié)為單位的bytes。
ython對(duì)bytes類型的數(shù)據(jù)用帶b前綴的單引號(hào)或雙引號(hào)表示
x = b"ABC" y = "ABC"
x與y是不同的,x是字節(jié)型的,y是str,x的每個(gè)字符只占用一個(gè)字節(jié)
純英文的str可以用ASCII編碼為bytes,內(nèi)容是一樣的,含有中文的str可以用UTF-8編碼為bytes。含有中文的str無法用ASCII編碼,因?yàn)橹形木幋a的范圍超過了ASCII編碼的范圍,Python會(huì)報(bào)錯(cuò)。
在bytes中,無法顯示為ASCII字符的字節(jié),用x##顯示。
反過來,如果我們從網(wǎng)絡(luò)或磁盤上讀取了字節(jié)流,那么讀到的數(shù)據(jù)就是bytes。要把bytes變?yōu)閟tr,就需要用decode()方法。
如果bytes中包含無法解碼的字節(jié),decode()方法會(huì)報(bào)錯(cuò)。
如果bytes中只有一小部分無效的字節(jié),可以傳入errors="ignore"忽略錯(cuò)誤的字節(jié)。
len()函數(shù)計(jì)算的是str的字符數(shù),如果換成bytes,len()函數(shù)就計(jì)算字節(jié)數(shù)。
1個(gè)中文字符經(jīng)過UTF-8編碼后通常會(huì)占用3個(gè)字節(jié),而1個(gè)英文字符只占用1個(gè)字節(jié)。
為了保證源文件以u(píng)tf-8讀出,需要在開頭注釋:
#!/usr/bin/env python3 ---告訴Linux/OS X系統(tǒng),這是一個(gè)Python可執(zhí)行程序,Windows系統(tǒng)會(huì)忽略這個(gè)注釋; # -*- coding: utf-8 -*- ---告訴Python解釋器,按照UTF-8編碼讀取源代碼,否則,你在源代碼中寫的中文輸出可能會(huì)有亂碼。
如果要保證源文件是utf-8編碼,需要在編輯器中進(jìn)行設(shè)定。
格式化
%和format()
使用list和tuple
| list為有序集合。是使用方括號(hào)的朋友
| 用len()可以獲取元素個(gè)數(shù)。索引從0開始,最后一個(gè)元素的索引為len(list)-1。獲取最后一個(gè)元素,還可以用-1作為索引,直接獲得最后一個(gè)元素。
| list為可變的有序表,可以append()追加元素到末尾;可以insert()到指定位置;可以pop()刪除最末尾元素,參數(shù)可以為i,即索引位置;可以直接賦值給對(duì)應(yīng)的索引位置list[i] = value;內(nèi)里的元素類型也可以各自不同,或者為另一個(gè)list。當(dāng)list里面啥都沒有的時(shí)候,len(list)輸出為0。
| tuple->元祖,一旦初始化就不能修改。因?yàn)椴豢勺儯愿踩?b>是使用圓括號(hào)的朋友
定義一個(gè)只有1個(gè)元素的tuple,要使用(1,),加上逗號(hào),不產(chǎn)生歧義,否則可能會(huì)誤認(rèn)為數(shù)學(xué)計(jì)算。
t = (1,)
理解“可變的tuple”
>>> t = ("a", "b", ["A", "B"]) >>> t[2][0] = "X" >>> t[2][1] = "Y" >>> t ("a", "b", ["X", "Y"])
其實(shí)變化的是tuple里的list的指向,所以并不是tuple本身發(fā)生了變化。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/42823.html
摘要:目標(biāo)很簡(jiǎn)單,因?yàn)槲蚁胍酪幌伦C券化率,然后可視化輸出結(jié)果。證券化率的基礎(chǔ)就是上市公司的總市值,對(duì)于證券化率其實(shí)還蠻多說法的,比如雪球的這篇文。我們可以利用這個(gè)回調(diào)函數(shù)來顯示當(dāng)前的下載進(jìn)度。 寫在前面的叨叨 折騰了這么久,我終于在喝完一聽快樂肥宅水后下定決心來學(xué)習(xí)寫爬蟲了。目標(biāo)很簡(jiǎn)單,因?yàn)槲蚁胍酪幌伦C券化率,然后可視化輸出結(jié)果。證券化率的基礎(chǔ)就是上市公司的總市值,對(duì)于證券化率其實(shí)還蠻多...
摘要:而程序員和醫(yī)生律師的不同點(diǎn)在于持續(xù)學(xué)習(xí)上。兩個(gè)小問題是需要收費(fèi),一年大概刀圖書都是英文的。的視頻基本都有英文字幕,配合作者的,英語不好的同學(xué)學(xué)習(xí)也沒有問題。英文好的有技術(shù)功底的同學(xué)多發(fā)表一些觀點(diǎn),其他的同學(xué)都 摘要: 行業(yè)發(fā)展得太快,你必須學(xué)習(xí),純靠經(jīng)驗(yàn)積累行不通,技術(shù)淘汰的速度遠(yuǎn)大于你經(jīng)驗(yàn)積累的速度。 非雞湯:不要和程序員談自己的編程歷史,很多的經(jīng)驗(yàn)在今天已經(jīng)不適用了。只要2-3年...
摘要:前言設(shè)計(jì)模式填坑系列,緊接前文距離上次寫筆記又過去了一個(gè)多月,我也不知道怎么加班加著加著就一個(gè)月了正文定義工廠模式是指提供一個(gè)創(chuàng)建對(duì)象的接口而不保留具體的創(chuàng)建邏輯,可以根據(jù)輸入類型創(chuàng)建對(duì)象。 前言 設(shè)計(jì)模式填坑系列,緊接前文(距離上次寫筆記又過去了一個(gè)多月,我也不知道怎么加班加著加著就一個(gè)月了-_-!) 正文 定義 工廠模式是指提供一個(gè)創(chuàng)建對(duì)象的接口而不保留具體的創(chuàng)建邏輯,可以根據(jù)輸入...
閱讀 1299·2021-11-15 11:37
閱讀 3495·2021-11-11 16:55
閱讀 1741·2021-08-25 09:39
閱讀 3207·2019-08-30 15:44
閱讀 1729·2019-08-29 12:52
閱讀 1397·2019-08-29 11:10
閱讀 3230·2019-08-26 11:32
閱讀 3216·2019-08-26 10:16