python基礎學習筆記1(環境搭建、基礎語法、流程控制、函數)

學習一門技術仍是推薦從官方教程學起,其餘資料做爲輔助html

官網:https://www.python.org/java

python3官方教程:https://docs.python.org/zh-cn/3/tutorial/index.htmlpython

環境搭建

安裝解釋器

  • 經過官網下載適合操做系統的安裝包(個人是windows x64)

  • 增長環境變量

PATH變量增長python安裝目錄,例如C:\Users\Administrator\AppData\Local\Programs\Python\Python37windows

  • 執行解釋器

環境變量設置好後執行python進入解釋器,若是打印解釋器版本等信息證實安裝成功數組

解釋器支持交互式的代碼執行,咱們能夠直接在解釋器命令行錄入代碼並執行獲得結果。例如:app

  •  建立代碼文件

建立test.py文件並錄入如下代碼less

#!/usr/bin/python3

print("Hello, World!")
  • 執行代碼

執行test.py文件輸出執行結果。函數

 

IDE開發工具

  • 開發工具使用PyCharm

PyCharm是JetBrains公司旗下的python集成開發工具。java開發時就常用IDEA因此值得信賴。工具

官網地址:https://www.jetbrains.com/pycharm/學習

  • 下載PyCharm

在官網下載安裝包,目前咱們只要下載免費的社區版便可。

  • 安裝PyCharm

windows環境的安裝沒有什麼特別。在安裝時咱們能夠選擇是否創建快捷方式和菜單項、是否關聯.py文件、是否建立環境變量

  • 配置編譯器

添加一個已安裝的編譯器

  • 執行項目

咱們能夠經過右上角功能區,執行或debug項目

 

基礎語法

數學計算(Numbers)

+ - * / 加減乘除

 

// 除法取整 23//8 = 2
% 除法取餘 23%8 = 7
** 冪值計算 5**3 = 125
j 複數虛部表示 3+5j
= 變量賦值符號  

邏輯運算

<,>,== 小於,大於,等於  
<=,>=,!= 小於等於,大於等於,不等於  
in 包含
input = 'yes'
if input in ('y','ye','yes'):
    print('input suceess')
else:
    print('input error')

字符串(Strings)

‘...’或「...」 表示一個字符串  
\ 轉義字符。如\n表明回車  
r"..." 字符串前加r表示忽略轉義字符
print(r"c:\name")
"""...""" 或'''...''' 三引號表示一個段落
'''
produces the 
following output
'''
+ 字符串鏈接符。  
相鄰字符串 多個相鄰字符串會自動鏈接。可是這種方式只支持吃字符串變量和表達式要使用+
print("I ""like ""python")輸出I like python
* 字符串重複符
print("python"*3)輸出pythonpythonpython
字符數組 字符串也是一個字符列表,咱們能夠經過下標獲取某個字符
string = "Python"
print(string[2]) # 輸出 t
# 從右面取值
print(string[-2]) # 輸出 o
# 取中間一部分(前包後不包)
print(string[1:3]) # 輸出 yt
# 從頭開始
print(string[:3]) # 輸出 Pyt
# 一直到結束
print(string[-3:]) # 輸出 hon
len()

計算字符串長度

len( "Python")等於6

列表(Lists)

[... , ...]

列表是用中括號括起,用逗號分割的一組數據。

一般狀況列表中的數據類型都是一致的,可是不一致也是容許的。

[1, 2.4, '32131', [1, 2, 3]]
列表索引 列表可使用[標號]進行索引。
num = [4,10,13,14,23,26,10]
# 從左取值
print(num[2]) # 輸出 13
# 從右取值
print(num[-2]) # 輸出 26
# 取中間一部分(前包後不包)
print(num[1:3]) # 輸出 [10, 13]
# 從頭開始
print(num[:3]) # 輸出 [4, 10, 13]
# 一直到結束
print(num[-3:]) # 輸出 [23, 26, 10]
+ 列表連接符
num = num + [66,88,99]
print(num) # 輸出 [4, 10, 13, 14, 23, 26, 10, 66, 88, 99]
append(...)
添加新內容
num.append(101)
print(num) # 輸出 [4, 10, 13, 14, 23, 26, 10, 101]
= 賦值,能夠經過賦值改變列表內容。
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
letters[2:5] = ['C', 'D', 'E']
print(letters) # 輸出 ['a', 'b', 'C', 'D', 'E', 'f', 'g']
letters[2:5] = []
print(letters) # 輸出 ['a', 'b', 'f', 'g']
letters[:] = []
print(letters) # 輸出 []
len() 計算列表長度  
列表副本

列表賦值時傳遞的是列表引用,如word1=word在word1作出變化時也會影響到word。

若是但願複製一個副本可使用word1=word[:]

word1 = word # 複製引用
word1 = word[:] # 複製副本
word1 = word[2:5] # 複製部分副本

字典(Dictionary)

{'a':1,'b':2} 字典相似於java的map用於存儲鍵值對  
     
     

通用語法

縮進 標識代碼模塊至關於java的{},同一層 級的代碼縮進數量必須一致。
if 1==1:
    print("true")
else:
    print("false")
\ Python語句中通常以新行做爲語句的結束符,拼接多行語句時使用多行連接符。
total = item_one + \
        item_two + \
        item_three
# 註釋。python沒有多行註釋  
None 空置,至關於java的null。  

變量

  • 變量使用「=」進行賦值
  • 變量聲明與賦值必須同時進行
empty = None # 空置
number = 100  # 數字
string = "python"  # 字符串
list = [1,3.14,"python"] # 列表
tuple = (1,3.14,"python") # 元組
dictionary = {'a':1,'b':3.14,'c':"python"} # 字典
  • 容許多變量同時賦值
a, b = 0, 1
  •  多變量賦值時會先將右邊的表達式按照從左到右的順序進行計算,而後再進行賦值
a, b = b, a+b 
# 先計算 b 再計算 a+b 而後將b賦值給a將a+b賦值給b
#至關於
temp_a = b
temp_b = a+b
a = temp_a
b = temp_b

 

流程控制

if判斷

判斷語句由if、elif、else組成

x = 0
if x == 0:
    print("X is equal to zero")
elif  x < 0:
    print("X is less than zero")
elif  x > 0:
    print("X is greater than zero")
else:
    print("Unable to determine")

while循環

i = 0
while i<10:
    print(i, end=(','))
    i+=1
else:
    print("End of the cycle")

    # 輸出結果:0,1,2,3,4,5,6,7,8,9,End of the cycle

while的else表示,在循環條件結果爲false時執行。

for循環

for常被用來遍歷一個列表。(字符串也是一個字符列表)

# 循環輸出列表
word = ["January","February","March","April","May","June","July","August","September","October","November","December"]
for w in word:
    print(w,len(w),end=(','))
    # 輸出結果:January 7,February 8,March 5,April 5,May 3,June 4,July 4,August 6,September 9,October 7,November 8,December 8,
# 循環輸出字符串
string = "Python"
for s in string:
    print(s,end=(','))
    # 輸出結果:P,y,t,h,o,n,
# 循環指定次數
for i in range(10):
    print(i,end=(','))
    # 輸出結果:0,1,2,3,4,5,6,7,8,9,

range()函數用於生成不可變的數字序列(並非列表),一般用於循環for循環中的特定次數。

# else字句
for i in range(10):
    print(i, end=(','))
else:
    print("End of the cycle")

    # 輸出結果:0,1,2,3,4,5,6,7,8,9,End of the cycle

for循環的else表明循環遍歷完成時執行此內容。

break跳出循環

# 跳出循環
for i in range(10):
    if i==5:
        break
    print(i,end=(','))
    # 輸出結果:0,1,2,3,4,

continue結束本次循環

# 結束本次循環
for i in range(10):
    if i == 5:
        continue
    print(i, end=(','))
    # 輸出結果:0,1,2,3,4,6,7,8,9,

pass佔位

pass語句什麼也不作,用於佔位。

 

函數

定義函數

使用def關鍵字定義函數

def output(s):
    '''
    將對象輸出到控制檯
    :param s: 輸出對象
    :return: 無返回值
    '''
    print(s)

output("I like python")

函數的參數傳遞與java類似,傳遞的是對象的引用。

函數的第一句三引號部分爲文檔字符串(DocStrings),添加文檔字符串是一個良好的習慣。文檔字符串至關於java的方法註釋,方便往後維護。

重命名函數

# 重命名函數
op = output 
op("I like python")

函數的返回值

# 函數的返回值
def sum(a,b):
    '''
    求兩個數的和
    :param a: 數a
    :param b: 數b
    :return: a+b的和
    '''
    return a+b

print(sum(666,888))

return返回函數的返回值。沒有return的函數返回None。

參數默認值

定義參數時能夠設置默認值,無默認值的參數調用時是必輸的,有默認值的參數調用時能夠不輸入使用默認值。

# 參數默認值
def sum(a=1,b=2):
    '''
    求兩個數的和
    :param a: 數a
    :param b: 數b
    :return: a+b的和
    '''
    return a+b

print(sum(666,888)) # 結果:1554
print(sum(666))     # 結果:668
print(sum())        # 結果:3

默認值是在定義時進行賦值的,因此要清楚賦值時賦值的是數據仍是引用,這樣才能準確的判斷參數以後的變化狀況。

關鍵字參數

函數能夠經過 關鍵字參數 的形式來調用,形如 keyword = value

# 關鍵字參數
def sum(a,b):
    '''
    求兩個數的和
    :param a: 數a
    :param b: 數b
    :return: a+b的和
    '''
    return a+b

print(sum(a=666,b=888)) # 結果:1554

這種方式在通常狀況下是沒有必要的,可是若是使用可變參數時就能體現出它的做用了

# 以關鍵字參數形式傳遞可變參數
def output(a,**keywords):
    print("a is " + a ,end=',')
    for keyword in keywords:
        print(keyword + " is " + keywords[keyword],end=',')

output("one",b="two",c="three",d="four") # 結果:a is one,b is two,c is three,d is four,

可變參數列表

使用可變參數可接收一組未定義的參數

# 可變參數列表
def output(a,*args):
    print(a ,end=',')
    for arg in args:
        print(arg,end=',')

output("one","two","three","four") # 結果:one,two,three,four,

拆分參數列表

參數也可使用列表或字典的方式傳入

# 經過列表傳遞入參
def output(a,b):
    print("a is " + a ,end=',')
    print("b is " + b)
args=['one','two']
output(*args) # 結果:a is one,b is two
# 經過字典傳遞入參
def output(a,b):
    print("a is " + a ,end=',')
    print("b is " + b)
dic={'a':'three','b':'four'}
output(**dic) # 結果:a is three,b is four

拉姆達表達式(Lambda)

用於快速生成一個匿名函數

# 使用匿名函數進行數學計算
sum = lambda a,b:a+b
print(sum(5,6)) # 結果:11
# 做爲返回值返回匿名函數
def make_incrementor(n):
    return lambda x: x + n
f = make_incrementor(42)
print(f(5)) # 結果:47

文檔字符串

函數的第一句三引號部分爲文檔字符串(DocStrings),添加文檔字符串是一個良好的習慣。文檔字符串至關於java的方法註釋,方便往後維護。

文檔字符串能夠經過__doc__默認變量取出。

def output(s):
    '''
    將對象輸出到控制檯
    :param s: 輸出對象
    :return: 無返回值
    '''
    print(s)

output(output.__doc__)
# 結果:
#     將對象輸出到控制檯
#     :param s: 輸出對象
#     :return: 無返回值

main函數

'__main__' 是頂級代碼執行的名稱。當從單獨腳本或標準輸入執行代碼時,模塊的__name__ 值將被設置爲__main__。

因此咱們能夠經過判斷__name__ == "__main__"來斷定是否爲獨立腳本執行,若是是的話就執行main函數。

if __name__ == "__main__":
    # execute only if run as a script
    main()

這裏執行的並不是必須是main()函數,任意函數均可執行。

編碼風格

編碼風格不是語言自己強制限制的,可是一個良好的編碼習慣能讓代碼的閱讀和修改都變得比較輕鬆。

  • 使用四個空格進行縮進
  • 每行代碼不超過79個字符
  • 使用空行分隔函數和代碼塊
  • 可能的話,儘可能把註釋寫在一行
  • 使用文檔字符串
  • 在運算符周圍和逗號後面增長空格。但不要在括號結構中增長空格。a = f(1, 2) + g(3, 4
  • 使用首字母大寫駝峯式命名,函數使用全小寫加下劃線命名。
  • 所有使用UTF8編碼甚至是ASCII編碼。

固然python有不少自動檢查代碼的工具,使用這些工具可以幫助咱們發現不符合規範的地方,培養良好的編碼習慣。

例如Pylint(推薦)、Pychecker、pyflakes、flake八、mypy等

相關文章
相關標籤/搜索