国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

????新生代農(nóng)民工爆肝8萬(wàn)字,整理Python編程從入門到實(shí)踐(建議收藏)已碼:6萬(wàn)字????

wthee / 2446人閱讀

人生苦短,我用Python


開(kāi)發(fā)環(huán)境搭建

  • Pycharm
  • Python3
  • window10/win7

安裝 Python

  1. 打開(kāi)Python官網(wǎng)地址

  2. 下載 executable installer,x86 表示是 32 位機(jī)子的,x86-64 表示 64 位機(jī)子的。

  3. 開(kāi)始安裝

    • 雙擊下載的安裝包,彈出如下界面

      這里要注意的是:
    1. 將python加入到windows的環(huán)境變量中,如果忘記打勾,則需要手工加到環(huán)境變量中
    2. 在這里我選擇的是自定義安裝,點(diǎn)擊“自定義安裝”進(jìn)行下一步操作
    • 自定義安裝
    • 等待安裝成功
      ![在這里插入圖片描述](https://img-blog.csdnimg.cn/20200805162907553.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xhb3podV9QeXRob24=,size_16,color_FFFFFF,t_70#p ic_center)

驗(yàn)證是否安裝成功

  • 按 Win+R 鍵,輸入 cmd 調(diào)出命令提示符,輸入 python:

安裝Pycharm

  1. 打開(kāi)Pycharm官網(wǎng)下載鏈接
  2. 選擇下載的版本(當(dāng)前下載的是Windows下的社區(qū)版)
  3. 專業(yè)版收費(fèi)的,當(dāng)前下載的社區(qū)版免費(fèi)

配置pycharm

  • 外觀配置(推薦使用Darcula)
  • 配色方案(推薦使用Monokai)
  • 代碼編輯區(qū)域字體及大設(shè)置(推薦使用Consolas)
  • 控制臺(tái)字體選擇及大小設(shè)置
  • 文件模版配置

編碼規(guī)范

  • 類名采用駝峰命名法,即類名的每個(gè)首字母都大寫,如:class HelloWord,類名不使用下劃線
  • 函數(shù)名只使用小寫字母和下劃線
  • 定義類后面包含一個(gè)文檔字符串且與代碼空一行,字符串說(shuō)明也可以用雙三引號(hào)
  • 頂級(jí)定義之間空兩行
  • 兩個(gè)類之間使用兩個(gè)空行來(lái)分隔
  • 變量等號(hào)兩邊各有一個(gè)空格 a = 10
  • 函數(shù)括號(hào)里的參數(shù) = 兩邊不需要空格
  • 函數(shù)下方需要帶函數(shù)說(shuō)明字符串且與代碼空一行
  • 默認(rèn)參數(shù)要寫在最后,且逗號(hào)后邊空一格
  • 函數(shù)與函數(shù)之間空一行
  • if語(yǔ)句后的運(yùn)算符兩邊需要空格
  • 變量名,函數(shù)名,類名等不要使用拼音
  • 注釋要離開(kāi)代碼兩個(gè)空格

基本語(yǔ)法規(guī)則

保留字

  • 保留字即關(guān)鍵字,我們不能把它們用作任何標(biāo)識(shí)符名稱。
  • Python 的標(biāo)準(zhǔn)庫(kù)提供了一個(gè) keyword 模塊,可以輸出當(dāng)前版本的所有關(guān)鍵字
import keywordkeyword.kwlist# 關(guān)鍵字列表["False", "None", "True", "and", "as", "assert", "break", "class", "continue", "def", "del", "elif", "else", "except", "finally", "for", "from", "global", "if", "import", "in", "is", "lambda", "nonlocal", "not", "or", "pass", "raise", "return", "try", "while", "with", "yield"]

單行注釋

Python中單行注釋以 # 開(kāi)頭,實(shí)例如下:

  # 第一個(gè)注釋   print ("Hello, Python!") # 第二個(gè)注釋

多行注釋

多行注釋可以用多個(gè) # 號(hào),還有’’"和 “”“xxxx”"":

# 第一個(gè)注釋  # 第二個(gè)注釋    """   第三注釋  第四注釋   """     """   第五注釋  第六注釋 

行與縮進(jìn)

  • python最具特色的就是使用縮進(jìn)來(lái)表示代碼塊,不需要使用大括號(hào) {}
  • 縮進(jìn)的空格數(shù)是可變的,但是同一個(gè)代碼塊的語(yǔ)句必須包含相同的縮進(jìn)空格數(shù)。實(shí)例如下:
  # 正確行與縮進(jìn)  if True:         print ("True")    else:          print ("False")    # 錯(cuò)誤的行與縮進(jìn)     if True:      print ("Answer")      print ("True")  else:      print ("Answer")    print ("False")    # 縮進(jìn)不一致,會(huì)導(dǎo)致運(yùn)行錯(cuò)誤

多行語(yǔ)句

  • Python 通常是一行寫完一條語(yǔ)句,但如果語(yǔ)句很長(zhǎng),我們可以使用反斜杠()來(lái)實(shí)現(xiàn)多行語(yǔ)句,例如:
  total = item_one + /          item_two + /          item_three

在 [], {}, 或 () 中的多行語(yǔ)句,不需要使用反斜杠(),例如:

 total = ["item_one", "item_two", "item_three",          "item_four", "item_five"]

數(shù)據(jù)類型

  • Python中數(shù)字有四種類型:整數(shù)、布爾型、浮點(diǎn)數(shù)和復(fù)數(shù)。

    int (整數(shù)), 如 1, 只有一種整數(shù)類型 int,表示為長(zhǎng)整型,沒(méi)有 python2 中的 Long。
    bool (布爾), 如 True和False
    float (浮點(diǎn)數(shù)), 如 1.23
    complex (復(fù)數(shù)), 如 1 + 2j、 1.1 + 2.2j

  • 查看類型,用type()方法

  • 字符串
    python中單引號(hào)和雙引號(hào)使用完全相同
    使用三引號(hào)(’’"或""")可以指定一個(gè)多行字符串

空行

  def hello():  	pass  # 此處為空行  def word():    	pass

等待用戶輸入

  input("請(qǐng)輸入你的名字")

print輸出

  x = "a"  y = "b"  # 換行輸出  print( x )  print( y )     print("---------")  # 不換行輸出  print( x, end=" " )  print( y, end=" " )  print()

運(yùn)算符

本章節(jié)主要說(shuō)明Python的運(yùn)算符。舉個(gè)簡(jiǎn)單的例子 1 +2 = 3 。 例子中,11、2 被稱為操作數(shù),"+" 稱為運(yùn)算符。

Python語(yǔ)言支持以下類型的運(yùn)算符:

  • 算術(shù)運(yùn)算符
  • 比較(關(guān)系)運(yùn)算符
  • 賦值運(yùn)算符
  • 邏輯運(yùn)算符
  • 成員運(yùn)算符
  • 身份運(yùn)算符
  • 運(yùn)算符優(yōu)先級(jí)

算術(shù)運(yùn)算符

以下假設(shè)變量:a=10,b=20

運(yùn)算符描述實(shí)例
+加: 兩個(gè)對(duì)象相加a + b 輸出結(jié)果 30
-減 - 得到負(fù)數(shù)或是一個(gè)數(shù)減去另一個(gè)數(shù)a - b 輸出結(jié)果 -10
*乘: 兩個(gè)數(shù)相乘a * b 輸出結(jié)果 200
返回一個(gè)被重復(fù)若干次的字符串,如:HI*3HI,HI,HI
/除: x除以y(即兩個(gè)數(shù)的商)b / a 輸出結(jié)果 2
%取模:返商的余數(shù)b % a 輸出結(jié)果 0
**冪:返回x的y次冪a**b 為10的20次方,輸出結(jié)果100000000000000000000
//取整除: 返回商的整數(shù)部分9//2 輸出結(jié)果 4 , 9.0//2.0 輸出結(jié)果 4.0

注:加號(hào)也可用作連接符,但兩邊必須是同類型的才可以,否則會(huì)報(bào)錯(cuò),如:23+ “Python” ,數(shù)字23和字符串類型不一致


比較運(yùn)算符

以下假設(shè)變量a為10,變量b為20

運(yùn)算符描述實(shí)例
==等于:比較對(duì)象是否相等(a == b) 返回 False
!=不等于:比較兩個(gè)對(duì)象是否不相等(a != b) 返回 True
>大于:返回x是否大于y(a > b) 返回 False
<小于:返回x是否小于y(a < b) 返回 True。
>=大于等于:返回x是否大于等于y(a >= b) 返回 False
<=小于等于:返回x是否小于等于y(a <= b) 返回 True

注:所有比較運(yùn)算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價(jià)。注意True和False第一個(gè)字母是大寫


賦值運(yùn)算符

以下假設(shè)變量a為10,變量b為20

運(yùn)算符描述實(shí)例
=簡(jiǎn)單的賦值運(yùn)算符c = a + b 將 a + b 的運(yùn)算結(jié)果賦值為 c
+=加法賦值運(yùn)算符c += a 等效于 c = c + a
-=減法賦值運(yùn)算符c -= a 等效于 c = c - a
*=乘法賦值運(yùn)算符c *= a 等效于 c = c * a
/=除法賦值運(yùn)算符c /= a 等效于 c = c / a
%=取模賦值運(yùn)算符c %= a 等效于 c = c % a
**=冪賦值運(yùn)算符c **= a 等效于 c = c ** a
//=取整除賦值運(yùn)算符c //= a 等效于 c = c // a

邏輯運(yùn)算符

Python語(yǔ)言支持邏輯運(yùn)算符,以下假設(shè)變量 a 為 10, b為 20:

運(yùn)算符邏輯表達(dá)式描述實(shí)例
andx and y布爾"與":如果 x 為 False,x and y 返回 False,否則它返回 y 的計(jì)算值(a and b) 返回 20
orx or y布爾"或" :如果 x 是非 0,它返回 x 的值,否則它返回 y 的計(jì)算值(a or b) 返回 10
notnot x布爾"非":如果 x 為 True,返回 False 。如果 x 為 False它返回 Truenot(a and b) 返回 False

成員運(yùn)算符

運(yùn)算符描述實(shí)例
in如果在指定的序列中找到值返回 True,否則返回 Falsex 在 y 序列中 , 如果 x 在 y 序列中返回 True
not in如果在指定的序列中沒(méi)有找到值返回 True,否則返回 Falsex 不在 y 序列中 , 如果 x 不在 y 序列中返回 True

身份運(yùn)算符

身份運(yùn)算符用于比較兩個(gè)對(duì)象的存儲(chǔ)單元

運(yùn)算符描述實(shí)例
isis 是判斷兩個(gè)標(biāo)識(shí)符是不是引用自一個(gè)對(duì)象x is y, 類似 id(x) == id(y) , 如果引用的是同一個(gè)對(duì)象則返回 True,否則返回 False
is notis not 是判斷兩個(gè)標(biāo)識(shí)符是不是引用自不同對(duì)象x is not y , 類似 id(a) != id(b)。如果引用的不是同一個(gè)對(duì)象則返回結(jié)果 True,否則返回 False。

運(yùn)算符優(yōu)先級(jí)

以下表格列出了從最高到最低優(yōu)先級(jí)的所有運(yùn)算符:

運(yùn)算符描述
**指數(shù) (最高優(yōu)先級(jí))
~ + -按位翻轉(zhuǎn), 一元加號(hào)和減號(hào) (最后兩個(gè)的方法名為 +@ 和 -@)
* / % //乘,商,取余和取整除
+ -加法減法
>> <<右移,左移運(yùn)算符
&位 ‘AND’
^ |位運(yùn)算符
<= < > >=比較運(yùn)算符
<> == !=等于運(yùn)算符
= %= /= //= -= += *= **=賦值運(yùn)算符
is is not身份運(yùn)算符
in not in成員運(yùn)算符
not or and邏輯運(yùn)算符

字符串

  • 字符串是由數(shù)字,字母、下劃線組成的一串字符
  • 創(chuàng)建字符串,可以使用單引號(hào)(’’)和雙引號(hào)("")
# -*- coding: utf-8 -*-# @Author : 碼上開(kāi)始var1 = "Hello World!"var2 = "Hello World!"

訪問(wèn)字符串中的值

  • Python 訪問(wèn)子字符串,可以使用方括號(hào) [] 來(lái)截取字符串
# -*- coding: utf-8 -*-# @Author : 碼上開(kāi)始var = “Hello World”print(var[0])#運(yùn)行結(jié)果H

字符串更新

# -*- coding: utf-8 -*-# @Author : 碼上開(kāi)始print(var1[0:6] + “Python”) #運(yùn)行結(jié)果:Hello Python另一種寫法:print(var1[:6] + “Python”)#運(yùn)行結(jié)果:Hello Python

合并連接字符串

  • 使用+號(hào)連接字符
  • +兩邊類型必須一致
#-*- coding: utf-8 -*-#@Author : 碼上開(kāi)始first_word = “碼上”last_word = “開(kāi)始”print(first_word + last_word)#運(yùn)行結(jié)果為:碼上開(kāi)始

刪除空白

  • ” Python”和”Python ”表面上看兩個(gè)字符串是一樣的,但實(shí)際代碼中是認(rèn)為不相同的
  • 因?yàn)楹竺娴淖执锌瞻祝敲慈绾稳サ艨瞻祝?/li>
# -*- coding: utf-8 -*-# @Author : 碼上開(kāi)始language = "Python " language.rstrip() # 刪除右邊空格language = " Python" language.lstrip() # 刪除左邊空格language = " Python " # language.strip() # 刪除左右空白

startswith()方法

  # str傳入的是字符串  str.startswith(str, beg=0,end=len(string))
  • 方法用于檢查字符串是否是以指定子字符串開(kāi)頭,如果是則返回 True,否則返回 False。

  • 如果參數(shù) beg 和 end 指定值,則在指定范圍內(nèi)檢查。

# -*- coding: utf-8 -*-# @Author : 碼上開(kāi)始str = "this is string example....wow!!!"# 默認(rèn)從坐標(biāo)0開(kāi)始匹配this這個(gè)字符print str.startswith( "this" )# 指定下標(biāo)從2到4匹配isprint str.startswith( "is", 2, 4 )# 同上print str.startswith( "this", 2, 4 )# 運(yùn)行結(jié)果TrueTrueFalse

傳入的值為元組時(shí)

  • 元組中只要任一元素匹配則返回True,反之為False
# -*- coding: utf-8 -*-# @Author : 碼上開(kāi)始string = "Postman"# 元組中只要任一元素匹配則返回True,反之為Falseprint(string.startswith(("P", "man"),0))# 雖然元組元素Po/man都存在字符中,但不匹配開(kāi)始的下標(biāo),所以仍返回值Flaseprint(string.startswith(("Po", "man"),1))

endswith()方法

  # 語(yǔ)法  str.endswith(string,[, start[, end]])
  • Python endswith() 方法用于判斷字符串是否以指定后綴結(jié)尾,如果以指定后綴結(jié)尾返回True,否則返回False。

  • 可選參數(shù)"start"與"end"為檢索字符串的開(kāi)始與結(jié)束位置。

# -*- coding: utf-8 -*-# @Author : 碼上開(kāi)始string = "this is string example....wow!!!"; str = "wow!!!"print(string.endswith(str))print(string.endswith(str,20)) str1 = "is"print(string.endswith(str1, 2, 4))print(string.endswith(str1, 2, 6))# 運(yùn)行結(jié)果TrueTrueTrueFalse

字符串格式化

  • **%格式化:**占位符%,搭配%符號(hào)一起使用
  • 傳整數(shù)時(shí):%d
  • 傳字符串時(shí):%s
  • 傳浮點(diǎn)數(shù)時(shí):%f
# -*- coding: utf-8 -*-# @Author : 碼上開(kāi)始age = 29print("my age is %d" %age)#my age is 29name = "makes"print("my name is %s" %name)#my name is makesprint("%f" %2.3)#2.300000
  • **format()格式化:**占位符{},搭配format()函數(shù)一起使用

    • 位置映射

    • print("{}:{}".format("192.168.0.100",8888))#192.168.0.100:8888

    • 關(guān)鍵字映射

    • print("{server}{1}:{0}".format(8888,"192.168.1.100",server="Web Server Info :"))#Web Server Info :192.168.1.100:8888  

字符串運(yùn)算符

下表實(shí)例變量 a 值為字符串 “Hello”,b 變量值為 “Python”:

操作符描述實(shí)例
+字符串連接a + b ‘HelloPython’
*重復(fù)輸出字符串a * 2 ‘HelloHello’
[]通過(guò)索引獲取字符串中字符a[1] ‘e’
[ : ]截取字符串中的一部分a[1:4] ‘ell’
in成員運(yùn)算符 - 如果字符串中包含給定的字符返回 True“H” in a True
not in成員運(yùn)算符 - 如果字符串中不包含給定的字符返回 True“M” not in a True
r/R原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思來(lái)使用,沒(méi)有轉(zhuǎn)義特殊或不能打印的字符。 原始字符串除在字符串的第一個(gè)引號(hào)前加上字母"r"(可以大小寫)以外,與普通字符串有著幾乎完全相同的語(yǔ)法。>>>print r’/n’ /n >>> print R’/n’ /n

列表

  • 列表:用于存儲(chǔ)任意數(shù)目、任意類型的數(shù)據(jù)集合。

1.基本語(yǔ)法[]創(chuàng)建

a = [1, "jack", True, 100]b = []

2. list()創(chuàng)建

使用list()可以將任何可迭代的數(shù)據(jù)轉(zhuǎn)化成列表

a = list()  # 創(chuàng)建一個(gè)空列表b = list(range(5))  # [0, 1, 2, 3, 4]c = list("nice")  # ["n", "i", "c", "e"]

3. 通過(guò)range()創(chuàng)建整數(shù)列表

range()可以幫助我們非常方便的創(chuàng)建整數(shù)列表,這在開(kāi)發(fā)中及其有用。語(yǔ)法格式為:`range([start,]end[,step])

start參數(shù):可選,表示起始數(shù)字。默認(rèn)是0。
end參數(shù):必選,表示結(jié)尾數(shù)字。
step參數(shù):可選,表示步長(zhǎng),默認(rèn)為1。
python3中range()返回的是一個(gè)range對(duì)象,而不是列表。我們需要通過(guò)list()方法將其轉(zhuǎn)換成列表對(duì)象。

a = list(range(-3, 2, 1))  # [-3, -2, -1, 0, 1]b = list(range(2, -3, -1))  # [2, 1, 0, -1, -2] 

4. 列表推導(dǎo)式

a = [i * 2 for i in range(5) if i % 2 == 0]  # [0, 4, 8]points = [(x, y) for x in range(0, 2) for y in range(1, 3)]print(points)  # [(0, 1), (0, 2), (1, 1), (1, 2)]

列表元素的增加

當(dāng)列表增加和刪除元素時(shí),列表會(huì)自動(dòng)進(jìn)行內(nèi)存管理,大大減少了程序員的負(fù)擔(dān)。但這個(gè)特點(diǎn)涉及列表元素的大量移動(dòng),效率較低。除非必要,我們一般只在列表的尾部添加元素或刪除元素,這會(huì)大大提高列表的操作效率

  • append()
>>>a = [20,40]>>>a.append(80)>>>a[20,40,80]
  • +運(yùn)算符
    并不是真正的尾部添加元素,而是創(chuàng)建新的列表對(duì)象;將原列表的元素和新列表的元素依次復(fù)制到新的列表對(duì)象中。這樣,會(huì)涉及大量的復(fù)制操作,對(duì)于操作大量元素不建議使用。
>>> a = [3, 1, 4]>>> b = [4, 2]>>> a + b[3, 1, 4, 4, 2]
  • extend()

將目標(biāo)列表的所有元素添加到本列表的尾部,屬于原地操作,不創(chuàng)建新的列表對(duì)象。

>>> a = [3, 2]>>> a.extend([4, 6])>>> a[3, 2, 4, 6]
  • insert()

使用insert()方法可以將指定的元素插入到列表對(duì)象的任意指定位置。這樣會(huì)讓插入位置后面所有的元素進(jìn)行移動(dòng),會(huì)影響處理速度。涉及大量元素時(shí),盡量避免使用。類似發(fā)生這種移動(dòng)的函數(shù)還有:remove()、pop()、del(),它們?cè)趧h除非尾部元素時(shí)也會(huì)發(fā)生操作位置后面元素的移動(dòng)。

>>> a = [2, 5, 8]>>> a.insert(1, "jack")>>> a[2, "jack", 5, 8]
  • 乘法
    使用乘法擴(kuò)展列表,生成一個(gè)新列表,新列表元素時(shí)原列表元素的多次重復(fù)。
>>> a = [4, 5]>>> a * 3[4, 5, 4, 5, 4, 5]

適用于乘法操作的,還有:字符串、元組。

列表元素的刪除

  • del()
    刪除列表指定位置的元素。
>>> a = [2, 3, 5, 7, 8]>>> del a[1]>>> a[2, 5, 7, 8]
  • pop()
    刪除并返回指定位置元素,如果未指定位置則默認(rèn)操作列表最后一個(gè)元素。
>>> a = [3, 6, 7, 8, 2]>>> b = a.pop()>>> b2>>> c = a.pop(1)>>> c6
  • remove()
    刪除首次出現(xiàn)的指定元素,若不存在該元素拋出異常。
>>> a=[10,20,30,40,50,20,30,20,30]>>> a.remove(20)>>> a[10, 30, 40, 50, 20, 30, 20, 30]
  • clear()
    清空一個(gè)列表。
a = [3, 6, 7, 8, 2]a.clear()print(a)  # []

列表元素的訪問(wèn)

  • 通過(guò)索引直接訪問(wèn)元素
>>> a = [2, 4, 6]>>> a[1]4
  • index()獲得指定元素在列表中首次出現(xiàn)的索引
    index()可以獲取指定元素首次出現(xiàn)的索引位置。語(yǔ)法是:index(value,[start,[end]])。其中,startend指定了搜索的范圍。
>>> a = [10, 20, 30, 40, 50, 20, 30, 20, 30]>>> a.index(20)1>>> a.index(20, 3)5>>> a.index(20, 6, 8)7

列表元素出現(xiàn)的次數(shù)

返回指定元素在列表中出現(xiàn)的次數(shù)。

>>> a = [10, 20, 30, 40, 50, 20, 30, 20, 30]>>> a.count(20)3

切片(slice)

[起始偏移量start:終止偏移量end[:步長(zhǎng)step]]
  • 三個(gè)量為正數(shù)的情況下
    | 操作和說(shuō)明 | 示例 | 結(jié)果 |
    | ---------------------------------------------------- | ------------------------------------- | -------------- |
    | [:] 提取整個(gè)列表 | [10, 20, 30][:] | [10, 20, 30] |
    | [start:] 從start索引開(kāi)始到結(jié)尾 | [10, 20, 30][1:] | [20, 30] |
    | [:end] 從頭開(kāi)始到 end-1 | [10, 20, 30][:2] | [10, 20] |
    | [start:end] 從 start 到 end-1 | [10, 20, 30, 40][1:3] | [20, 30] |
    | [start:end:step] 從 start 提取到 end-1,步長(zhǎng)是step | [10, 20, 30, 40, 50, 60, 70][1:6:2] | [20, 40, 60] |

  • 三個(gè)量為負(fù)數(shù)的情況
    | 示例 | 說(shuō)明 | 結(jié)果 |
    | ------------------------------------- | ---------------------- | ------------------------ |
    | [10, 20, 30, 40, 50, 60, 70][-3:] | 倒數(shù)三個(gè) | [50, 60, 70] |
    | [10, 20, 30, 40, 50, 60, 70][-5:-3] | 倒數(shù)第五個(gè)至倒數(shù)第四個(gè) | [30, 40] |
    | [10,20,30,40,50,60,70][::-1] | 逆序 | [70,60,50,40,30,20,10] |

t1 = [11, 22, 33, 44, 55, 66, 77, 88, 99]print(t1[100:])  # []print(t1[0:-1])  # [11, 22, 33, 44, 55, 66, 77, 88]print(t1[1:5:-1])  # []print(t1[-1:-5:-1])  # [99, 88, 77, 66]print(t1[-5:-1:-1])  # []print(t1[5:-1:-1])  # []print(t1[::-1])  # [99, 88, 77, 66, 55, 44, 33, 22, 11]# 注意以下兩個(gè)print(t1[3::-1])  # [44, 33, 22, 11]print(t1[3::1])  # [44, 55, 66, 77, 88, 99]123456789101112131415161718

列表的排序

  • 修改原列表,不創(chuàng)建新列表的排序
a = [3, 2, 8, 4, 6]print(id(a))  # 2180873605704a.sort()  # 默認(rèn)升序print(a)  # [2, 3, 4, 6, 8]print(id(a))  # 2180873605704a.sort(reverse=True)print(a)  # [8, 6, 4, 3, 2]12345678# 將序列的所有元素隨機(jī)排序import randomb = [3, 2, 8, 4, 6]random.shuffle(b)print(b)  # [4, 3, 6, 2, 8]12345
  • 創(chuàng)建新列表的排序
    通過(guò)內(nèi)置函數(shù)sorted()進(jìn)行排序,這個(gè)方法返回新列表,不對(duì)原列表做修改。
a = [3, 2, 8, 4, 6]b = sorted(a)  # 默認(rèn)升序c = sorted(a, reverse=True)  # 降序print(b)  # [2, 3, 4, 6, 8]print(c)  # [8, 6, 4, 3, 2]12345
  • 冒泡排序
list1 = [34,54,6,5,65,100,4,19,50,3]#冒泡排序,以升序?yàn)槔?外層循環(huán):控制比較的輪數(shù)for i in range(len(list1) - 1):    #內(nèi)層循環(huán):控制每一輪比較的次數(shù),兼顧參與比較的下標(biāo)    for j in range(len(list1) - 1 - i):        #比較:只要符合條件則交換位置,        # 如果下標(biāo)小的元素 > 下標(biāo)大的元素,則交換位置        if list1[j] < list1[j + 1]:            list1[j],list1[j + 1] = list1[j + 1],list1[j]print(list1)
  • 選擇排序
li = [17, 4, 77, 2, 32, 56, 23]# 外層循環(huán):控制比較的輪數(shù)for i in range(len(li) - 1):    # 內(nèi)層循環(huán):控制每一輪比較的次數(shù)    for j in range(i + 1, len(li)):        # 如果下標(biāo)小的元素>下標(biāo)大的元素,則交換位置        if li[i] > li[j]:            li[i], li[j] = li[j], li[i]print(li)

列表元素的查找

  • 順序查找
# 順序查找# 1.需求:查找指定元素在列表中的位置list1 = [5, 6, 5, 6, 24, 17, 56, 4]key = 6for i in range(len(list1)):    if key == list1[i]:        print("%d在列表中的位置為:%d" % (key,i))# 2.需求:模擬系統(tǒng)的index功能,只需要查找元素在列表中第一次出現(xiàn)的下標(biāo),如果查找不到,打印not found# 列表.index(元素),返回指定元素在列表中第一次出現(xiàn)的下標(biāo)list1 = [5, 6, 5, 6, 24, 17, 56, 4]key = 10for i in range(len(list1)):    if key == list1[i]:        print("%d在列表中的位置為:%d" % (key,i))        breakelse:    print("not found")# 3.需求:查找一個(gè)數(shù)字列表中的最大值以及對(duì)應(yīng)的下標(biāo)num_list = [34, 6, 546, 5, 100, 16, 77]max_value = num_list[0]max_index = 0for i in range(1, len(num_list)):    if num_list[i] > max_value:        max_value = num_list[i]        max_index = iprint("最大值%d在列表中的位置為:%d" % (max_value,max_index))# 4.需求:查找一個(gè)數(shù)字列表中的第二大值以及對(duì)應(yīng)的下標(biāo)num_list = [34, 6, 546, 5, 100, 546, 546, 16, 77]# 備份new_list = num_list.copy()# 升序排序for i in range(len(new_list) - 1):    for j in range(len(new_list) - 1 - i):        if new_list[j] > new_list[j + 1]:            new_list[j],new_list[j + 1] = new_list[j + 1],new_list[j]print(new_list)# 獲取最大值max_value = new_list[-1]# 統(tǒng)計(jì)最大值的個(gè)數(shù)max_count = new_list.count(max_value)# 獲取第二大值second_value = new_list[-(max_count + 1)]# 查找在列表中的位置:順序查找for i in range(len(num_list)):    if second_value == num_list[i]:        print("第二大值%d在列表中的下表為:%d" % (second_value,i))
  • 二分法查找
# 二分法查找的前提:有序li = [45, 65, 7, 67, 100, 5, 3, 2, 35]# 升序new_li = sorted(li)key = 100# 定義變量,表示索引的最小值和最大值left = 0right = len(new_li) - 1# left和right會(huì)一直改變# 在改變過(guò)程中,直到left==rightwhile left <= right:    # 計(jì)算中間下標(biāo)    middle = (left + right) // 2    # 比較    if new_li[middle] < key:        # 重置left的值        left = middle + 1    elif new_li[middle] > key:        # 重置right的值        right = middle - 1    else:        print(f"key的索引為{li.index(new_li[middle])}")        breakelse:    print("查找的key不存在")

列表的其他方法

  • reverse()
    用于列表中數(shù)據(jù)的逆序排列。
a = [3, 2, 8, 4, 6]a.reverse()print(a)  # [6, 4, 8, 2, 3]
  • copy()

復(fù)制列表,屬于淺拷貝。

a = [3, 6, 7, 8, 2]b = a.copy()print(b)  # [3, 6, 7, 8, 2]

列表相關(guān)的內(nèi)置函數(shù)

  • max()min()
    返回列表中的最大值和最小值
a = [3, 2, 8, 4, 6]print(max(a))  # 8print(min(a))  # 2
  • sum()

對(duì)數(shù)值型列表的所有元素進(jìn)行求和操作,對(duì)非數(shù)值型列表運(yùn)算則會(huì)報(bào)錯(cuò)。

a = [3, 2, 8, 4, 6]print(sum(a))  # 23

字典

字典的特點(diǎn)

  • 字典中的元素是key: value的形式存儲(chǔ)數(shù)據(jù),即鍵值對(duì)
  • 字典是無(wú)序數(shù)據(jù),即沒(méi)有索引值
  • key是唯一的,如果key重復(fù), 則覆蓋前面的值,支持?jǐn)?shù)據(jù)類型有:int,float, bool, str, 元組(不能為列表)
  • value支持任

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/119689.html

相關(guān)文章

  • ??爆肝十二萬(wàn)字python精通教程》,零教你變大佬??建議收藏

    文章目錄 強(qiáng)烈推薦系列教程,建議學(xué)起來(lái)!! 一.pycharm下載安裝二.python下載安裝三.pycharm上配置python四.配置鏡像源讓你下載嗖嗖的快4.1pycharm內(nèi)部配置 4.2手動(dòng)添加鏡像源4.3永久配置鏡像源 五.插件安裝(比如漢化?)5.1自動(dòng)補(bǔ)碼神器第一款5.2漢化pycharm5.3其它插件 六.美女背景七.自定義腳本開(kāi)頭八、這個(gè)前言一定要看九、pyt...

    booster 評(píng)論0 收藏0
  • ??整理萬(wàn)字帶你走進(jìn)C語(yǔ)言(詳細(xì)講解+代碼演示+圖解)??(強(qiáng)烈建議收藏!!!)

    目錄 一、什么是C語(yǔ)言? 二、第一個(gè)C語(yǔ)言程序 代碼 程序分析 ?程序運(yùn)行 一個(gè)工程中出現(xiàn)兩個(gè)及以上的main函數(shù) 代碼 運(yùn)行結(jié)果 分析 三、數(shù)據(jù)類型 數(shù)據(jù)各種類型 為什么會(huì)有這么多的數(shù)據(jù)類型? 計(jì)算機(jī)單位 ?各個(gè)數(shù)據(jù)類型的大小 ?注意事項(xiàng) 數(shù)據(jù)類型的使用 四、變量和常量 變量的分類 變量的使用 變量的作用域和生命周期 ?常量 五、字符串+轉(zhuǎn)義字符+注釋 字符串 ?轉(zhuǎn)義字符 注釋 六、選擇語(yǔ)句 ?...

    邱勇 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<