python基礎學習總結day01
pythonday01
python學習第一天總結
1.環境搭建
a)anaconda環境配置
anacodnda是什么?為什么要用anaconda?以及怎么安裝?
Anaconda 是一個可用于科學計算的 Python 發行版,支持 Linux、Mac、Windows系統,內置了常用的科學計算包。它解決了官方 Python 的兩大痛點。
- 第一:提供了包管理功能,Windows 平臺安裝第三方包經常失敗的場景得以解決。
- 第二:提供環境管理的功能,功能類似 Virtualenv,解決了多版本Python并存、切換的問題。
anaconda安裝過程 —我是按照百度的anaconda安裝的。
b)解釋器
一個用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉換到一個你的計算機使用的語言(二進制代碼,即0和1)。這個過程通過編譯器和不同的標記、選項完成。當你運行你的程序的時候,連接/轉載器軟件把你的程序從硬盤復制到內存中并且運行。而Python語言寫的程序不需要編譯成二進制代碼。你可以直接從源代碼運行程序。
在計算機內部,Python解釋器把源代碼轉換成稱為字節碼的中間形式,然后再把它翻譯成計算機使用的機器語言并運行。事實上,由于你不再需要擔心如何編譯程序,如何確保連接轉載正確的庫等等,所有這一切使得使用Python更加簡單。由于你只需要把你的Python程序拷貝到另外一臺計算機上,它就可以工作了,這也使得你的Python程序更加易于移植。
Python的解釋器如今有多個語言實現,我們常用的是CPython(官方版本的C語言實現),其他還有Jython(可以運行在Java平臺)、IronPython(可以運行在.NET和Mono平臺)、PyPy(Python實現的,支持JIT即時編譯)
2.python初體驗
a)print and input
password = raw_input("請輸入密碼:")
print ('您剛剛輸入的密碼是:', password)
1).
- raw_input()的小括號中放入的是,提示信息,用來在獲取數據之前給用戶的一個簡單提示
- raw_input()會把用戶輸入的任何值都作為字符串來對待
- input()接受表達式輸入,并把表達式的結果賦值給等號左邊的變量
a = input('please input name')
print(a)
報錯:
將zhangsan賦值給了a,若想輸出zhangsan字符串用Python2時需加’zhangsan’
2).python3中
- 沒有raw_input()函數,只有input()
- 并且 python3中的input與python2中的raw_input()功能一樣
- print(“I’m %(name)s. I’m %(age)d year old” % {‘name’:‘Vamei’, ‘age’:99})
格式符號 | 轉換 |
---|---|
%c | 字符 |
%s | 通過str() 字符串轉換來格式化 |
%i | 有符號十進制整數 |
%d | 有符號十進制整數 |
%u | 無符號十進制整數 |
%o | 八進制整數 |
%x | 十六進制整數(小寫字母) |
%X | 十六進制整數(大寫字母) |
%e | 索引符號(小寫’e’) |
%E | 索引符號(大寫“E”) |
%f | 浮點實數 |
%g | %f和%e 的簡寫 |
%G | %f和%E的簡寫 |
3.python基礎講解
a)python變量特性+命名規則
變量 , 其實就是計算機內存中的一塊儲存空間 , 用來存儲CPU需要使用的數據 ,而這個儲存空間需要一個名字 , 這個名字的統稱就叫變量 。
問:怎樣知道一個變量的類型呢?
- 在python中,只要定義了一個變量,而且它有數據,那么它的類型就已經確定了,不需要咱們開發者主動的去說明它的類型,系統會自動辨別
- 可以使用type(變量的名字),來查看變量的類型
google的python的命名規范:
命名樣式 | 命名類型 |
---|---|
module_name | 模塊 |
package_name | 包 |
ClassName | 類 |
method_name, | 方法 |
ExceptionName | 異常 |
function_name | 函數 |
GLOBAL_VAR_NAME | 全局變量 |
instance_var_name | 實例 |
function_parameter_name | 參數 |
local_var_name | 本變量 |
命名規則:
小駝峰式命名法(lower camel case): 第一個單詞以小寫字母開始;第二個單詞的首字母大寫,例如:myName、aDog
大駝峰式命名法(upper camel case): 每一個單字的首字母都采用大寫字母,例如:FirstName、LastName
不過在程序員中還有一種命名法比較流行,就是用下劃線“_”來連接所有的單詞,比如send_buf
3. 類
總是使用首字母大寫單詞串。如MyClass。內部類可以使用額外的前導下劃線。
4. 函數&方法
小寫+下劃線
注意:混合大小寫僅被允許用于這種風格已經占據優勢的時候,以便保持向后兼容。
5. 函數和方法的參數
如果一個函數的參數名稱和保留的關鍵字沖突,通常使用一個后綴下劃線
6. 全局變量
對于from M import *導入語句,如果想阻止導入模塊內的全局變量可以使用舊有的規范,在全局變量上加一個前導的下劃線。
注意:應避免使用全局變量
7. 變量
小寫,由下劃線連接各個單詞。如color = WHITE,this_is_a_variable = 1
注意:
1.不論是類成員變量還是全局變量,均不使用 m 或 g 前綴。
2.私有類成員使用單一下劃線前綴標識。
3.變量名不應帶有類型信息,因為Python是動態類型語言。如 iValue、names_list、dict_obj 等都是不好的命名。
8. 常量
常量名所有字母大寫,由下劃線連接各個單詞如MAX_OVERFLOW,TOTAL。
9. 異常
以“Error”作為后綴。
文件名
全小寫,可使用下劃線
10. 包
應該是簡短的、小寫的名字。如果下劃線可以改善可讀性可以加入。如mypackage。
11. 模塊
與包的規范同。如mymodule。
12. 縮寫
命名應當盡量使用全拼寫的單詞,縮寫的情況有如下兩種:
1.常用的縮寫,如XML、ID等,在命名時也應只大寫首字母,如XmlParser。
2.命名中含有長單詞,對某個單詞進行縮寫。這時應使用約定成俗的縮寫方式。
例如:
function 縮寫為 fn
text 縮寫為 txt
object 縮寫為 obj
count 縮寫為 cnt
number 縮寫為 num,等。
13. 前導后綴下劃線
一個前導下劃線:表示非公有。
一個后綴下劃線:避免關鍵字沖突。
兩個前導下劃線:當命名一個類屬性引起名稱沖突時使用。
兩個前導和后綴下劃線:“魔”(有特殊用圖)對象或者屬性,例如__init__或者__file__。絕對不要創造這樣的名字,而只是使用它們。
注意:關于下劃線的使用存在一些爭議。
14. 特定命名方式
主要是指 xxx 形式的系統保留字命名法。項目中也可以使用這種命名,它的意義在于這種形式的變量是只讀的,這種形式的類成員函數盡量不要重載。如
class Base(object):
def init(self, id, parent = None):
self.id = id
self.parent = parent
def message(self, msgid):
其中 id、parent 和 message 都采用了系統保留字命名法。
b)注釋方法
1.Python中的注釋有單行注釋和多行注釋:
- #單行注釋
- ‘’’
單引號多行注釋
‘’’ - “”"
雙引號多行注釋
“”"
2.pycharm中同時注釋多行代碼快捷鍵:
代碼選中的條件下,同時按住 Ctrl+/,被選中行被注釋,再次按下Ctrl+/,注釋被取消
c)python中的": "作用
1)字典中的key,value。person={name:‘張三’}
列表中list[start : end : step]start:起始位置,end:結束位置,step:步長。
元組中tup2 = (1, 2, 3, 4, 5, 6, 7 )print "tup2[1:5]: ", tup2[1:5]
2)python語法中沒有括號限定子模塊的范圍,用冒號:表示子模塊的開始。有縮緊tab表示語法塊。(類,方法,if,esle,while,for等)
d)學會使用dir()及和help()
dir() 函數不帶參數時,返回當前范圍內的變量、方法和定義的類型列表;帶參數時,返回參數的屬性、方法列表。如果參數包含方法__dir__(),該方法將被調用。如果參數不包含__dir__(),該方法將最大限度地收集參數信息。
help()函數,相對于dir()函數,不光有屬性,還多了屬性介紹。
4. 查看python所有的關鍵字:help(“keywords”)
5. 查看python所有的modules:help(“modules”)
6. 單看python所有的modules中包含指定字符串的modules: help(“modules yourstr”)
7. 查看python中常見的topics: help(“topics”)
8. 查看python標準庫中的module:import os.path + help(“os.path”)
9. 查看python內置的類型:help(“list”)
10. 查看python類型的成員方法:help(“str.find”)
11. 查看python內置函數:help(“open”)
e)import
1)可以使用import將一個源文件導入,并可以使用該模塊的方法。可以單個模塊導入,也可以同時導入多個模塊,還可以導入模塊的部分方法。
- import queryengine#導入一個模塊
- import os,sys#導入多個模塊(不推薦使用)
import sys
sys.path
2)sys.path.append(’…/…/bole_untils’)#可以確保先搜索這個路徑,一般是導入自己的工具包時常用。
3)import queryengine as qe #添加別名,方便使用
4)這種格式用于大型的模塊,可以只導入需要的方法即可。from_future_import division
f) pep8介紹
pep8是python的編碼規范。主要對代碼編排,文檔編排,空格使用、注釋、文檔描述、命名規范以及編碼建議等。在寫程序時如果都遵循這個規則,很大程度提升了代碼的可閱讀性。
Python PEP8 編碼規范中文版
代碼不符合PEP8規范的,在PyCharm中,不符合規范的代碼下面會有波浪線提示。那么有沒有辦法快速格式化代碼使之符合PEP8規范呢?
在pycharm中用ctrl+alt+l對文件自動整理為pep8編碼格式。
4.python數值基礎知識
a)python中的數值類型,int,float,bool,e計數法等
int是整型
float是浮點型
bool True Flase
c = 10e2=1000.0(e計數法是浮點數)
a = 10+6j = complex(10,6)
b)算數運算符
運算符 | 描述 | 實例 |
---|---|---|
& | 按位與運算符:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0 | (a & b) 輸出結果 12 ,二進制解釋: 0000 1100 |
| | 按位或運算符:只要對應的二個二進位有一個為1時,結果位就為1 | (a | b) 輸出結果 61 ,二進制解釋: 0011 1101 |
^ | 按位異或運算符:當兩對應的二進位相異時,結果為1 | (a ^ b) 輸出結果 49 ,二進制解釋: 0011 0001 |
~ | 按位取反運算符:對數據的每個二進制位取反,即把1變為0,把0變為1 。~x 類似于 -x-1 | (~a ) 輸出結果 -61 ,二進制解釋: 1100 0011,在一個有符號二進制數的補碼形式。 |
<< | 左移動運算符:運算數的各二進位全部左移若干位,由 << 右邊的數字指定了移動的位數,高位丟棄,低位補0。 | a << 2 輸出結果 240 ,二進制解釋: 1111 0000 |
>> | 右移動運算符:把">>"左邊的運算數的各二進位全部右移若干位,>> 右邊的數字指定了移動的位數 | a >> 2 輸出結果 15 ,二進制解釋: 0000 1111 |
c)邏輯運算符
運算符 | 邏輯表達式 | 描述 | 實例 |
---|---|---|---|
and | x and y | 布爾"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y 的計算值。 | (a and b) 返回 20。 |
or | x or y | 布爾"或" - 如果 x 是非 0,它返回 x 的值,否則它返回 y 的計算值。 | (a or b) 返回 10。 |
not | not x | 布爾"非" - 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。 | not(a and b) 返回 False |
d)成員運算符
運算符 | 介紹 |
---|---|
in | 如果在指定的序列中找到值返回 True,否則返回 False。x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中沒有找到值返回 True,否則返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
if a in list:
print('is here')
e)身份運算符
運算符 | 描述 | 示例 |
---|---|---|
is | is 是判斷兩個標識符是不是引用自一個對象 | x is y, 類似 id(x) == id(y) , 如果引用的是同一個對象則返回 True,否則返回 False |
is not | is not 是判斷兩個標識符是不是引用自不同對象 | x is not y , 類似 id(a) != id(b)。如果引用的不是同一個對象則返回結果 True,否則返回 False。 |
a = 20
b = 20
if a is b:
print('yes')
f)運算符優先級
運算符 | 描述 |
---|---|
** | 指數 (最高優先級) |
~ + - | 按位翻轉, 一元加號和減號 (最后兩個的方法名為 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法減法 |
>> << | 右移,左移運算符 |
& | 位 ‘AND’ |
^| | 位運算符 |
<= < > >= | 比較運算符 |
<> == != | 等于運算符 |
= %= /= //= -= += *= **= | 賦值運算符 |
is is not | 身份運算符 |
in not in | 成員運算符 |
not and or | 邏輯運算符 |
智能推薦
python學習筆記_day01
1.基礎語法 中文編碼 Python中默認的編碼格式是 ASCII 格式,在沒修改編碼格式時無法正確打印漢字,所以在讀取中文時會報錯。 以上程序執行輸出結果為: 解決方法只要在文件開頭加入 # -- coding: UTF-8 -- 或者 # coding=utf-8 就行了 注意:Python3.X 源碼文件默認使用utf-8編碼,所以可以正常解析中文,無需指定 UTF-8 編碼。 注意:如果你...
python -day01
一、python簡介 1.python的起源 python 的創始人為吉多.范羅蘇姆 1989(1989 年還有一個大事發生)年的圣誕節期間,吉多.范羅蘇姆為了在阿姆斯特丹打發時間,決心開發一個新的解釋程序,作為 ABC 語言的一種繼承(感覺一下什么叫牛人)。 ABC 是由吉多參加設計的一種數學語言,就吉多本人來看,ABC 這種語言非常的優美和強大,是專門為程序員設計的,但是 ABC 語言并沒有成...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
猜你喜歡
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...
統計學習方法 - 樸素貝葉斯
引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...
styled-components —— React 中的 CSS 最佳實踐
https://zhuanlan.zhihu.com/p/29344146 Styled-components 是目前 React 樣式方案中最受關注的一種,它既具備了 css-in-js 的模塊化與參數化優點,又完全使用CSS的書寫習慣,不會引起額外的學習成本。本文是 styled-components 作者之一 Max Stoiber 所寫,首先總結了前端組件化樣式中的最佳實踐原則,然后在此基...