Python語言學習(一)(基礎、數據類型、運算符和程序控制結構)

程序設計的基礎知識

  • 人與機器溝通有三種方式:
    1、機器學習人的語言就是自然語言處理;
    2、人學習機器語言,但比較困難;
    3、因此共同學習第三種語言:程序設計語言。

  • c、c++等是編譯型語言,可以理解爲將一種語言的文章整體翻譯成另一種語言;BASTIC、Python等是解釋型語言,可以理解爲同聲傳譯。

  • 解釋型語言的優點是靈活、可移植性高;缺點是執行效率較低。

  • Python特點有:易學易用、可讀性高;支持面向對象、泛型設計、支持函數式編程;豐富的數據結構和第三方函數庫,功能強大。

  • 1991年誕生的第一個python編譯器是用c語言實現的。1994年python1.0發佈,2000年python2.0發佈,2008年python3.0發佈。

  • python的版本號分爲三段,形如A.B.C。其中A表示大版本號,一般當整體重寫,或出現不向後兼容的改變時,增加A;B表示功能更新,出現新功能時增加B;C表示小的改動(如修復了某個Bug),只要有修改就增加C。

  • 在python中,縮進也作爲語法的一部分,需要謹慎排布。

  • 目前Python在Web應用開發、雲基礎設施、DevOps、網絡爬蟲開發、數據分析挖掘、機器學習等領域都有着廣泛的應用,因此也產生了Web後端開發、數據接口開發、自動化運維、自動化測試、科學計算和可視化、數據分析、量化交易、機器人開發、圖像識別和處理等一系列的職位。

  • 在python中,只要是成對的引號,不管是單引號還是雙引號,都可以表示字符串。 以#開始的,井號後面整行都會被註釋掉,稱爲行註釋。

  • 以三個引號開始,三個引號結束,爲塊註釋,其中的所有內容都會註釋,同樣不區分單雙引號。


數據類型

  • python支持五種基本數據類型:字符串str、整數int、浮點數float(其中 2.1E2 表示2.1乘100,E2即10的二次方)、布爾數bool(只有True和False)、複數complex(表示形式如1+1j)。
  • python2中有int與long兩種類型的整數,python3中只有一種,並支持2、8、10、16進制。
  • 字符串以單引號或雙引號括起來,如需要書寫成多行,則需使用成對的三個單引號或雙引號括起來。而如果代碼太長寫成一行不便於閱讀,可以使用\或在外部用()括起來再進行折行。
  • 複數形式形如3+5j,與數學上表示一樣,但虛部的i換成了j。
  • type(具體數據)用來查看數據的類型。
  • 區分整數和浮點數的原因:1、浮點數表示能力更強;2、浮點數有精度損失;3、CPU有專門的浮點數運算部件。

運算符

  • python中使用* *表示指數運算,如2**3即2的三次方。

  • “/”表示向下取整除,整數相除會捨去小數部分,如果其中有浮點數,則結果爲浮點數。

  • "//"表示整數除法,在python新版本中可能“/”只表示浮點除,“//”只表示整除。

  • 不等於可以表達爲“!=”或者“<>”。

  • 邏輯運算符有:and、or、not三種,其中not寫在條件之前。

  • 例如“如果年份y能被4整除但是不能被100整除,或者能被400整除,則是閏年”一句的邏輯關係,在python裏可以表達爲(y % 4 == 0 and y % 100 != 0) or (y %400 == 0)。

  • 在算術運算中,使用括號可以提高括號內運算的優先級,括號內具有最高優先,嵌套括號按照由內而外計算。

運算符 描述
[] [:] 下標,切片
~ + - 按位取反, 正負號
* / % // 乘,除,模,整除
+ - 加,減
>> << 右移,左移
& 按位與
<= < > >= 小於等於,小於,大於,大於等於
== != 等於,不等於
is/is not 身份運算符
in/not in 成員運算符
not/or/and 邏輯運算符
= += -= *= /= %= //= **= &= ^= >>= <<= (複合)賦值運算符

程序控制結構

  • if條件判斷語句的語法:if+條件+:+(換行縮進)+語句塊,如有else判斷,else後也要加冒號。
  • 如在else中仍然要進行條件判斷,則else寫成elif,並在其後跟條件進行判斷,示例如下:
if a >= 90:
    print('A')
elif a >= 80:
    print('B')
else:
    print('C')
  • while循環結構語法需注意以下三點:1、循環體外設定循環可執行的初始條件;2、循環體內書寫需重複執行的代碼;3、設定循環條件並在循環體內設定條件改變語句。
  • 示例如下:
count = 0
while count < 5:
    print('Programming is fun!')
    count += 1
  • while ture表示循環始終成立。
  • for循環的語法爲:”for 變量/元素 in 對象:“,後跟嵌套循環體。
  • range(起始值,結束值,步數)函數可以有多個參數,不寫起始值就會從0累增到離結束值差一個單位的數值,不設置步數就默認爲1。例如,range(10,2,-1)即{10,9,8,7,6,5,4,3}。
  • for-in循環:明確地循環執行的次數或者要對一個容器進行迭代;while循環:不知道具體循環次數,用產生的bool表達式來控制循環。
  • break能終止它所在的那個循環,continue可以用來放棄本次循環後續的代碼直接進入下一輪循環。
  • while循環更通用,任何for循環都可以用while循環代替。for循環適用於已知循環的範圍,while循環適用於其他情況。

擴展

  • input()函數用來讀取鍵盤輸入,將所有輸入作爲字符串看待。input()的括號中可以填寫提示符,如input(‘a=’),顯示結果就是”a=輸入內容“。
  • print()函數中如需添加提示語句或格式化輸出,需要在單引號後添加%再添加要輸出的變量,單引號中可以對輸出格式化或進行文字補充說明。print輸出默認換行,如不需換行,應寫成print(x,end=’’)的形式。
  • print中"end="表示每次輸出後跟的內容,可以將結果輸出到同一行,或者在輸出的末尾添加不同的字符,如end=’ '即在輸出不換行,end=‘\n’即默認換行。
  • 在python中\n表示回車,\t表示tab,\表示一個\,\a表示響鈴,'表示一個單引號,\“表示一個雙引號。
  • 模塊(module)是實現一定功能的python腳本集合,math模塊可以支持更多的算術運算,引入模塊的方法:import 模塊名,查看模塊所含元素的方法:dir(模塊名)。
  • math中的sqrt()函數可以返回鍵入值的平方根,abs()函數返回給定參數的絕對值,參數可以是實數(整數、浮點數等)或複數,如果參數是複數,則返回複數的模(即實部和虛部平方和的正平方根)。
  • 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()
  • ord()函數可以將鍵入字符轉化成其對應的ASCLL數值或Unicode數值,而chr()可以將整數轉化成該編碼所對應的字符串(一個字符)。
  • int()、float()、str()可以將指定對象轉化成它們對應的數據類型。
  • getpass模塊提供了可移植的密碼輸入,包括.getpass()和.getuser()兩個函數,用來獲取密碼和用戶名,但pycharm不支持該模塊。
  • random模塊中的randint函數可以生成指定範圍的隨機數來模擬擲骰子,如a=randint(1,6),但在使用該函數時要注意首先from random import randint。
  • map()函數會根據提供的函數對指定序列做映射,例如map(int,a)即將序列a轉化爲int類型。值得注意的是,在python3中,使用map函數返回的是map類型,如果需要得到如列表類型的序列,則應當寫成‘payIntList = list(map(int,payList))’的形式。
  • factorial()函數用來求階乘。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章