Python基礎(一)

2021-02-20 Python開發

為了照顧小白,我把之前的博客上的Python基礎分享過來。好像是18年的時候,大一的東西。

一共四篇,聲明下:Python的入門難度為0,比Java,C++根本不能比,你會英語基本沒問題。

原文首發於CSDN:https://maoli.blog.csdn.net/article/details/89304506

基本概念

(1)python中數有四種類型:整數、長整數、浮點數和複數。

(2)字符串(字符的序列)

使用三引號('''或""")可以指定一個多行字符串。

自然字符串, 通過在字符串前加r或R。如r"this is a line with \n" 則\n會顯示,並不是換行。

python允許處理unicode字符串,加前綴u或U, 如 u"this is an unicode string"。

按字面意義級聯字符串,如"this " "is " "string"會被自動轉換為this is string。(3)標識符的命名

(4) 對象

python程序中用到的任何「東西」都成為「對象」。

(5)邏輯行和物理行

邏輯行:是指原始碼經過預編譯後,代碼所在的那一行。

Python假定每個物理行都對應著一個邏輯行。例如:print( "Hello World" ) 就是一個物理行,Python希望每行只有一個語句,因為這樣看起來更加易讀。

如果你想要在一個物理行中使用多於一個邏輯行,那麼你需要使用分號(; )來特別地標明這種用法。分號表示一個邏輯行/語句的結束。

例如:

count = 5
print ( "count" )

與下面的語句等同:

count = 5;
print ( "count" );

當然也可以寫成下面這種:

count = 5 ; print ( "count" );

甚至可以寫成這樣:

count = 5 ; print ( "count" )

我們使用\的換行

print \
("Runsen")

(6) 縮進空白在python是非常重要的,行首的空白是最重要的,又稱為縮進。行首的空白(空格和制表符)用來決定邏輯行的縮進層次,從而決定語句。

運算符與表達式

(1) 運算符與其用法

運算符名稱例子+兩個對象相加加法,如3 + 5得到8,字符也可以相加'a' + 'b'得到'ab'-一個數減去另一個數5 - 2得到3*乘 兩個數相乘或是返回一個被重複若干次的字符串2 * 3得到6,'a' * 3得到'aaa'**冪 返回x的y次冪3 ** 4得到81(即3 * 3 * 3 * 3)/除 x除以y4/3得到1(整數的除法得到整數結果)。4.0/3或4/3.0得到1.3333//取整除 返回商的整數部分4 // 3.0得到1.0%取模 返回除法的餘數8%3得到2。-25.5%2.25得到1.5<<左移,把一個數的二進位左移一定數目,也就是在右邊補多少個0,如 2 << 2得到8,二進位10變成1000>>右移 把一個數的比特向右移一定數目,也就是在右邊刪除位數10>>2得到2,二進位1010變成10,直接刪除後面2位&按位與數的按位與 9 & 13得到9,二進位1001&1101,變成1001,兩個值相應的位置都為1,那麼該結果就是1,不然就是0|按位或數的按位或 5 | 3得到7。二進位101&11,變成111,如果兩個值相應的位置有一個是1,那麼該結果就是1,也就是如果都是0,該結果就是0,101和11沒有都是0,所以111^按位異或數的按位異或 5 ^ 3得到6,二進位101&11,變成110,兩個值相應的位置相同,那麼該結果就是0,也就是如果都是0或者都是1,該結果就是0,101和11,第一個都是1,所以110~按位翻轉x的按位翻轉是-(x+1) ~5得到6<小於 返回x是否小於y。所有比較運算符返回1表示真,返回0表示假。 5 < 3返回0(即False)而3 < 5返回1(即True)。還可以被任意連接:3 < 5 < 7返回True。>大於 返回x是否大於y5 > 3返回True。如果兩個操作數需要都是數字<=小於等於 返回x是否小於等於yx = 3; y = 6; x <= y返回True>=大於等於 返回x是否大於等於yx = 4; y = 3; x >= y返回True==等於 比較對象是否相等x = 2; y = 2; x == y返回True!=不等於 比較兩個對象是否不相等x = 2; y = 3; x != y返回True。not布爾「非」 如果x為True,返回Falsex = True; not y返回False。or布爾「或」 如果x是True,它返回True,否則它返回y的計算值。x = True; y = False; x or y返回True

(2).運算符優先級(從低到高)

運算符描述lambdaLambda表達式or布爾「或」and布爾「與」not x布爾「非」in,not in成員測試is,is not同一性測試<,<=,>,>=,!=,==比較|按位或^按位異或|按位或&按位與<<,>>移位+,-加法與減法*,/,%乘法、除法與取餘+x,-x正負號~x按位翻轉**指數~x按位翻轉x.attribute屬性參考x[index]下標x[index:index]尋址段f(arguments...)函數調用(experession,...)綁定或元組顯示[expression,...]列表顯示{key:datum,...}字典顯示'expression,...'字符串

(3) python 控制臺輸出 使用print

print ("abc"  )  #列印abc並換行
print ("abc%s" % "d" )  #列印abcd
print ("abc%sef%s" % ("d", "g") )  #列印abcdefg

控制流

(4) if 語句

i = 10
n = int(input("enter a number:"))

if n == i:
print( "equal")
elif n < i:
print( "lower")
else:
print ("higher")

(5) while語句

while True:
pass
else:
pass
#else語句可選,當while為False時,else語句被執行。pass是空語句。

(6)for 循環 for..in

for i in range(0, 5):
print (i)
else:
pass
# 列印0到4

註:當for循環結束後執行else語句;range(a, b)返回一個序列,從a開始到b為止,但不包括b,range默認步長為1,可以指定步長,range(0,10,2);

(7)break語句

終止循環語句,如果從for或while中終止,任何對應循環的else將不執行。(8)continue語句

continue語句用來調過當前循環的剩餘語句,然後繼續下一輪循環。

下面就是 break 和 continue 主要的 區別:

continue:跳出本次循環,繼續執行下一次循環希望大家牢記。函數

函數通過def定義。def關鍵字後跟函數的標識符名稱,然後跟一對圓括號,括號之內可以包含一些變量名,該行以冒號結尾;接下來是一塊語句,即函數體。

def sumOf(a, b):
return a + b

(1) 函數形參

函數中的參數名稱為『形參』,調用函數時傳遞的值為『實參』

(2) 局部變量

在函數內定義的變量與函數外具有相同名稱的其他變量沒有任何關係,即變量名稱對於函數來說是局部的。這稱為變量的作用域。

global語句, 為定義在函數外的變量賦值時使用global語句。

def func():
global x
print( "x is ", x)
x = 1

x = 3
func()
print(x)
#3
#1

(3)默認參數

通過使用默認參數可以使函數的一些參數是『可選的』。

def say(msg, times =  1):
print(msg * times)

say("Runsen")
say("Runsen", 3)

注意:只有在形參表末尾的那些參數可以有默認參數值,即不能在聲明函數形參的時候,先聲明有默認值的形參而後聲明沒有默認值的形參,只是因為賦給形參的值是根據位置而賦值的。 (4)關鍵參數

如果某個函數有很多參數,而現在只想指定其中的部分,那麼可以通過命名為這些參數賦值(稱為『關鍵參數』)。優點:不必擔心參數的順序,使函數變的更加簡單;假設其他參數都有默認值,可以只給我們想要的那些參數賦值。

def func(a, b=2, c=3):
print ("a is %s, b is %s, c is %s") % (a, b, c)

func(1) #a is 1, b is 2, c is 3
func(1, 5) #a is 1, b is 5, c is 3
func(1, c = 10) #a is 1, b is 2, c is 10
func(c = 20, a = 30) #a is 30, b is 2, c is 20

(5) return 語句

return語句用來從一個函數返回,即跳出函數。可從函數返回一個值。 沒有返回值的return語句等價於return None。None表示沒有任何東西的特殊類型。

(6) __doc__(文檔字符串)

def func():
'''This is self-defined function
Do nothing
'''
pass

print(func.__doc__)

#This is self-defined function
#
#Do nothing

模塊

模塊就是一個包含了所有你定義的函數和變量的文件,模塊必須以.py為擴展名。模塊可以從其他程序中『輸入』(import)以便利用它的功能。

在python程序中導入其他模塊使用'import', 所導入的模塊必須在sys.path所列的目錄中,因為sys.path第一個字符串是空串''即當前目錄,所以程序中可導入當前目錄的模塊。(1) 字節編譯的.pyc文件

導入模塊比較費時,python做了優化,以便導入模塊更快些。一種方法是創建字節編譯的文件,這些文件以.pyc為擴展名。

pyc是一種二進位文件,是py文件經編譯後產生的一種byte code,而且是跨平臺的(平臺無關)字節碼,是有python虛擬機執行的,類似於

java或.net虛擬機的概念。pyc的內容,是跟python的版本相關的,不同版本編譯後的pyc文件是不同的。

(2) from .. import

如果想直接使用其他模塊的變量或其他,而不加'模塊名+.'前綴,可以使用from .. import。

例如想直接使用sys的argv,from sys import argv 或 from sys import *

(3) 模塊的__name__

每個模塊都有一個名稱,py文件對應模塊名默認為py文件名,也可在py文件中為__name__賦值;如果是__name__,說明這個模塊被用戶

(4)  dir()函數

dir(sys)返回sys模塊的名稱列表;如果不提供參數,即dir(),則返回當前模塊中定義名稱列表。

(5)  del

del -> 刪除一個變量/名稱,del之後,該變量就不能再使用。

數據結構

python有三種內建的數據結構:列表、元組和字典。

(1)   列表  list是處理一組有序項目的數據結構,列表是可變的數據結構。列表的項目包含在方括號[]中,

eg: [1, 2, 3], 空列表[]。判斷列表中是否包含某項可以使用in,

比如 l = [1, 2, 3]; print 1 in l; #True;

支持索引和切片操作;索引時若超出範圍,則IndexError;

使用函數len()查看長度;使用del可以刪除列表中的項,eg: del l[0] # 如果超出範圍,則IndexError    list函數如下:

append(value)  ---向列表尾添加項value
l = [1, 2, 2]
l.append(3) #[1, 2, 2, 3]

count(value)  ---返回列表中值為value的項的個數
l = [1, 2, 2]
print( l.count(2)) # 2

extend(list2)  ---向列表尾添加列表list2
l = [1, 2, 2]
l1 = [10, 20]
l.extend(l1)
print (l ) #[1, 2, 2, 10, 20]

index(value, [start, [stop]])  ---返回列表中第一個出現的值為value的索引,如果沒有,則異常 ValueError

l = [1, 2, 2]
a = 4
try:
print( l.index(a))
except ValueError, ve:
print( "there is no %d in list" % a
    insert(i, value))  ---向列表i位置插入項vlaue,如果沒有i,則添加到列表尾部

l = [1, 2, 2]

l.insert(1, 100)
print l #[1, 100, 2, 2]

l.insert(100, 1000)
print l #[1, 100, 2, 2, 1000]

pop([i])  ---返回i位置項,並從列表中刪除;如果不提供參數,則刪除最後一個項;如果提供,但是i超出索引範圍,則異常IndexError

l = [0, 1, 2, 3, 4, 5]

print( l.pop()) # 5
print( l) #[0, 1, 2, 3, 4]

print( l.pop(1)) #1
print( l) #[0, 2, 3, 4]

try:
l.pop(100)
except IndexError, ie:
print( "index out of range")

remove(value)  ---刪除列表中第一次出現的value,如果列表中沒有vlaue,則異常ValueError

l = [1, 2, 3, 1, 2, 3]

l.remove(2)
print (l )#[1, 3, 1, 2, 3]

try:
l.remove(10)
except ValueError, ve:
print ("there is no 10 in list")

reverse()  ---列表反轉

l = [1, 2, 3]
l.reverse()
print (l) #[3, 2, 1]

sort(cmp=None, key=None, reverse=False)  ---列表排序

l5 = [10, 5, 20, 1, 30]
l5.sort()
print( l5) #[1, 5, 10, 20, 30]

l6 = ["bcd", "abc", "cde", "bbb"]
l6.sort(cmp = lambda s1, s2: cmp(s1[0],s2[1]))
print( l6) #['abc', 'bbb', 'bcd', 'cde']

l7 = ["bcd", "abc", "cde", "bbb", "faf"]
l7.sort(key = lambda s: s[1])
print (l7) #['faf', 'abc', 'bbb', 'bcd', 'cde']

相關焦點

  • python基礎學習教程:Python基礎語法
    在本章中我們將來學習 Python 的基礎語法,讓你快速學會 Python 編程。第一個 Python 程序交互式編程交互式編程不需要創建腳本文件,是通過 Python 解釋器的交互模式進來編寫代碼。>>> '''在學習過程中有什麼不懂得可以加我的python學習交流扣扣qun,934109170群裡有不錯的學習教程、開發工具與電子書籍。與你分享python企業當下人才需求及怎麼從零基礎學習好python,和學習什麼內容。'''
  • python語法基礎
    學一門語言,基礎語法一定要紮實。很多入門的編程書籍,都會花大量的篇幅來介紹基礎語法,對於毫無編程經驗的新手而言,這樣的書籍無疑是很友好的,但是對於有編程經驗的開發者而言,很多的基礎語法是通用的, 只需花費較少的時間瀏覽下基礎語法,將精力集中在語言獨有的特徵上即可。
  • 【Python雜貨鋪】速學python基礎
    「人生苦短,我學python」是編程屆的名言。用python寫小腳本的便捷性,讓很多其他語言的學習者把python當作輔助語言。擁有了某一個語言的功底,再來學習另外一種語言應該是十分快速的。編程理念都十分相似,只是看看語言的差異性。帶著Java的基礎,學習Python,準備上路了。
  • Python零基礎入門-03-Python基礎語法
    Python零基礎入門-03-Python基礎語法本節課的知識點:1,python系列教程的學習方法。2,熟悉Python的基礎語法內容。1,python系列課程學習方法由於python屬於腳本語言,如果單純的解釋語法沒有什麼實在的意義,所以我python系列的課程都是以視頻講解為主,至於這裡的文章,是給你複習用的。2. 基礎語法python的基礎語法都將以小例子作為驅動來講解。如果你有其他程式語言的基礎,那麼直接看文章就會很快上手。
  • 小白python入門基礎——Python安裝教程
    且學會python後運用python能極大地提高工作效率等等。今天就來教大家如何安裝python,走向新世界的大門!1.首先,我們在瀏覽器上搜索python,進入python官網。7.接下來我們就可以開始我們的編程之旅了!
  • Python 基礎一 (列表)
    , 2, 3, 4, 5 ]list3 = ["a", "b", "c", "d"]list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']列表的定義list()使用list()將其他可迭代的數據類型轉換為列表>>> s = 'python
  • Python基礎篇-10 Windows安裝Python(圖解)
    Hello,大家好,我是小777很多小白不知道Python基礎從哪裡開始學習,從今開始我每日會分享一篇從零基礎學Python編程基礎。還有很多不知道學Python能幹什麼?在這裡我會為大家一一分享,我感覺還是很有意思的。雖然對於那些會的人不難,但是對於小白來說這確實是很好的一種學習思路。
  • Python基礎 | 大學小白如何入門Python程序設計
    一、 問題闡述對於剛剛進入大學小白的我們對許許多多課程感到陌生,例如高數、大學計算機網絡、Python語言程序設計等一些課程對於我們剛剛進入大學小白的我們很多時間就聽不懂老師在講什麼,大學和高中完全是不一樣的,大學更多的時間是需要自己去自學,僅僅靠老師上課講的那一點時間是完全不夠的,更多的需要自己課後的練習
  • Python基礎
    usr/bin/python#coding=utf-8print("hello world!");Python 基礎語法$ python test.py以下劃線開頭的標識符是有特殊意義的。python中單行注釋採用 # 開頭。python 中多行注釋使用三個單引號(''')或三個雙引號(""")。縮進相同的一組語句構成一個代碼塊,我們稱之代碼組。
  • python基礎---異常處理
    程序的異常處理今天霖小白心血來潮想來分享一下python基礎中的如何異常處理,使程序有更好的用戶體驗。前言python程序對用戶的輸入有一定的要求,所以當實際輸入不滿足程序要求時,可能在程序運行過程中會直接報錯無法進行下一步的運行。
  • Python的爬蟲基礎知識及安裝
    Python的基礎知識的學習流程 首先我們來看Python的基礎知識的學習流程:1.認識Python2.判斷語句和循環語句3.字符串、列表、元組、字典4.函數,即將重複執行的語句簡單化5.文件操作6.錯誤與異常Python的初識 Python的圖標是兩條小蛇
  • 【Python基礎】python使用python-docx操作word
    1、python-docx庫介紹該模塊兒可以創建、修改Word(.docx)文件;python-docx使用官網:python-docx官網我們在安裝此模塊兒使用的是pip install python-docx,但是在導入的時候是import docx;2、Python讀取Word文檔內容注意:每進行一個操作,必須保存一下,否則等於白做;1)word文檔結構介紹在這裡插入圖片描述2)python-docx
  • 慢步學python,編程基礎知識,列表
    大家好,我百家號是:地鐵慢步,目前致力於python學習與分享。今天寫的是 python編程基礎知識: 列表python裡面最基礎的兩種數據類型是:數值和字符串。列表可以理解為一種數據結構。列,即有順序的隊列,有先後概念。
  • python運算符優先級,加減乘除只是基礎,學習python第2天
    在計算機編程中少不了運算,而python運算符有哪些呢?python運算符優先級順序又是怎麼樣的?就像數學一樣,加減乘除只是基礎,了解python運算符才能解決實際性的問題。python運算符及其優先級python運算符及其優先級python程序中支持多種運算符,常見的有加減乘除、賦值運算符、算術運算符、邏輯運算符
  • Python基礎篇-13 Python不是內部或外部命令的解決方法
    公眾號關注「專攻python」,設為「星標」重磅文章,第一時間送達!!
  • Python基礎知識
    (input)不難發現,python2 中的 input 相當於對 raw_input 函數返回的結果進行 eval 一下,即input ()相當於 eval(raw_input()) 在 python3 中只有 input,但 python3 的 input 和 python2 的 raw_input 的使 用方法是一樣的,返回的值都是一個字符串。
  • 零基礎菜鳥如何快速上手Python
    零基礎菜鳥如何快速上手Python為了幫助大家更輕鬆的學好Python,無私分享一套Python學習資料,希望對正在學習的你有所幫助!網上充斥著太多免費的Python學習的博客,網站,視頻等等,但真正能面對零基礎小白的Python入門真的不多。
  • Python編程基礎,數字及數學運算
    慢步越來越喜歡看「官網」了,一本python的二級教材大略看完,架構有了,發現還有很多細節沒有,網上各種網站找太複雜,這不,還是官網好。慢步去看了python的官網,純英文這個閱讀會比較難受,但收穫還是有很多的。發現了很多二級教材中沒有的細項內容。
  • Python 基礎語法
    Python 可以同一行顯示多條語句,方法是用分號 ; 分開,如:>>> print ('nihao');print ('python');行和縮進學習 Python 與其他語言最大的區別就是,Python 的代碼塊不使用大括號 {} 來控制類,函數以及其他邏輯判斷。python 最具特色的就是用縮進來寫模塊。
  • 我的Python筆記·BioPython(一)
    簡介Biopython(https://biopython.org/)是一個計算分子生物學模塊的集合,用它可以實現許多生物信息學項目中的基本任務