中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python入門基礎知識點實例分析

發布時間:2022-11-16 09:39:37 來源:億速云 閱讀:148 作者:iii 欄目:編程語言

這篇文章主要介紹“Python入門基礎知識點實例分析”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Python入門基礎知識點實例分析”文章能幫助大家解決問題。

標識符

在 Python 中,所有標識符可以包括英文(區分大小寫的)、數字以及下劃線(_),但不能以數字開頭。

單下劃線開頭 _foo 的代表不能直接訪問的類屬性,需通過類提供的接口進行訪問,不能用 from xxx import * 而導入。

雙下劃線開頭的 __foo 代表類的私有成員

雙下劃線開頭和結尾的 __ foo__ 代表 Python 里特殊方法專用的標識,如 __init__() 代表類的構造函數。

語句

Python 的代碼塊中必須使用相同數目的行首縮進空格數

python中單行注釋采用 # 開頭。

python 中多行注釋使用三個單引號(‘’')或三個雙引號(“”")。

# Python語句中一般以新行作為語句的結束符。但是我們可以使用【斜杠( \)】將一行的語句分為多行顯示,
# 語句中包含 [], {} 或 () 括號就不需要使用多行連接符。
# Python可以在同一行中使用多條語句,語句之間使用【分號(;)】分割
total = item_one + \
        item_two + \
        item_three
days = ['Monday', 'Tuesday', 'Wednesday',
        'Thursday', 'Friday']

# Python可以在同一行中使用多條語句,語句之間使用【分號(;)】分割。
import sys; x = 'runoob'; sys.stdout.write(x + '\n')

# Python 可以使用【引號( ' )、雙引號( " )、三引號( ''' 或 """ ) 】來表示字符串
word = 'word'
sentence = "這是一個句子。"
paragraph = """這是一個段落。
包含了多個語句"""

# print 默認輸出是換行的,如果要實現【不換行需要在變量末尾加上逗號】 。
print x,y

變量

Python3 中有六個標準的數據類型:

  • Number(數字)

  • String(字符串)

  • List(列表)

  • Tuple(元組)

  • Set(集合)

  • Dictionary(字典)

Python3 的六個標準數據類型中:

不可變數據(3 個):Number(數字)、String(字符串)、Tuple(元組);

可變數據(3 個):List(列表)、Dictionary(字典)、Set(集合)。

Number(數字)

int、float、bool、complex(復數)

內部函數中,strings, tuples, 和 numbers 是不可更改的對象,全局變量必須為init變量或者在函數中用self定義;而 list,dict 等則是可以修改的對象,內部函數可以直接使用函數中的局部變量。

counter = 100 # 賦值整型變量
miles = 1000.0 # 浮點型
name = "John" # 字符串

二進制轉換:
int('10',2) 
> 2
bin(10)
> '0b1010'
bin(10)[2:]

ord(c) # c為字符
# 返回值:對應的十進制整數(ASCll數值)
int(c) # c為字符,轉化為對應的數字

float('-inf') # 最小值
-inf

a = b = c = 1
a, b, c = 1, 2, "john"

all() # 函數用于判斷給定的可迭代參數 iterable 中的所有元素是否都為 TRUE,如果是返回 True,否則返回 False。

# 從左到右索引默認【0開始的】,最大范圍是字符串【長度少1】
# 從右到左索引默認【-1開始的】,最大范圍是【字符串開頭】
# 第三個參數,參數作用是【截取的步長】
s = "a1a2···an"   # n>=0

向上取整:math.ceil()
向下取整:math.floor()、整除"//"
四舍五入:round()——奇數向遠離0取整,偶數去尾取整;或言之:奇數進位,偶數去尾
向0取整:int()

List(列表)

tinylist = [123, 'john']
print list[0]            # 輸出列表的第一個元素
print list[1:3]          # 輸出第二個至第三個元素 
print list[2:]           # 輸出從第三個開始至列表末尾的所有元素

# 二維數組
num_list = [ [0] * 5 for i in range(2)]
dp = [[1]*n] + [[1]+[0] * (n-1) for _ in range(m-1)]

clone_node.neighbors = [self.cloneGraph(n) for n in node.neighbors] 

# 加號 + 是列表連接運算符,星號 * 是重復操作
print tinylist * 2       # 輸出列表兩次
print list + tinylist    # 打印組合的列表

list.append('Google')   # 使用 append() 添加元素
del list[2]			# 可以使用 del 語句來刪除列表的元素
list.pop(3)			# 指定pop參數,將會刪除該位置的元素;無參數時默認刪除最后一個元素

list.append(sublist) # 引用傳遞
list.append([]+sublist) # 值傳遞
list.append(list(path))

len([1, 2, 3])	3	#長度
[1, 2, 3] + [4, 5, 6]	[1, 2, 3, 4, 5, 6]	#組合
['Hi!'] * 4	['Hi!', 'Hi!', 'Hi!', 'Hi!']	#重復
3 in [1, 2, 3]	True	#元素是否存在于列表中
for x in [1, 2, 3]: print x,	1 2 3	#迭代

[::-1] # 數組反轉

max(list) # 求list的最大值

sum(sp[i] for i in range(n)) #求和
sum(s in jewelsSet for s in stones)

nums.sort() # 排序
score.sort(reverse=True)
list有一個sort方法,list.sort()將list進行排序,返回None
sort(*,key = None,reverse = False)
key是一個函數,這個函數的作用是從list的每個元素中提取用于當作排序依據的屬性
默認是從小到大,即reserve為False的時候,如果reserve為True,排列順序就是從大到小
def f(item):
    return item[1]
list.sort(key = f)
list.sort(key = lambda item:item[0])

sorted(iterable,*,key=None,reverse=False) # 默認正序排列
sorted(dict.items(),key=lambda item:item[0])
res = sorted(hash,key = lambda word:(-hash[word],word)) # 第一個參數 -hash[word] 即單詞出現次數的相反數
# 當詞頻相同時,用第二個參數 word 進行排序,即字母正序排列

列表解析 List Comprehensions
表達式:[expression for iter_val in iterable if cond_expr]
[expression]:最后執行的結果
[for iter_val in iterable]:這個可以是一個多層循環
[if cond_expr]:兩個for間是不能有判斷語句的,判斷語句只能在最后;順序不定,默認是左到右。

print[(x,y)for x in [1,2]for y in [3,4]]

for (k1, v1), (k2, v2) in zip(dict_one, dict_two): # 遍歷兩個list或者dict

for item in product([1,2],[10,20]): # 對矩陣做笛卡爾積
    print(item)
for i, j in product(range(m), range(n)):


neighbors = [(1,0), (1,-1), (0,-1), (-1,-1), (-1,0), (-1,1), (0,1), (1,1)]
for neighbor in neighbors:
	r = (row + neighbor[0])
	c = (col + neighbor[1])
for u,v in neighbors:
	
s = [1, 2, 3, 4, 5]
# 從指定索引1開始
for index, value in enumerate(s, 1):

list(str(n)) # int轉化為字符串,轉化為list

next(word for word,f in freq.items() if f==maxFreq) # next()取list第一個值

map(max, grid) # 求每行的最大值
map(max, zip(*grid)) # 求每列的最大值
strs = map(str,nums) # 轉換為list(str)
r1,m1 = map(int, num1[:-1].split('+')) # list(str)轉化為list(int)
list(map(list,numSet))

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # 返回一個對象
>>> zipped
<zip object at 0x103abc288>
>>> list(zipped)  # list() 轉換為列表
[(1, 4), (2, 5), (3, 6)]
>>> list(zip(a,c))              # 元素個數與最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> a1, a2 = zip(*zip(a,b))          # 與 zip 相反,zip(*) 可理解為解壓,返回二維矩陣式
>>> list(a1)
[1, 2, 3]
>>> list(a2)
[4, 5, 6]

tuple(元組)

# 元組用 () 標識。內部元素用逗號隔開。但是元組不能二次賦值,相當于只讀列表。
tinytuple = (123, 'john')

Dict(字典)

# 字典用"{ }"標識。字典由索引(key)和它對應的值value組成。
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"

# 值可以取任何數據類型,但鍵必須是不可變的,如字符串,數字或 元組 。 用列表就不行
dict[tuple(count)]

# 以列表返回字典中的所有值
dict.values()
list(dict.values())

for key in dict:
    print (key)

tinydict = {'name': 'runoob','code':6734, 'dept': 'sales'}
print dict['one']          # 輸出鍵為'one' 的值
print dict[2]              # 輸出鍵為 2 的值

print tinydict             # 輸出完整的字典
print tinydict.keys()      # 輸出所有鍵
print tinydict.values()    # 輸出所有值
maxFreq = max(freq.values()) # 求value的最大值

tinydict['Age'] = 8 # 更新
tinydict['School'] = "RUNOOB" # 添加

del tinydict['Name']  # 刪除鍵是'Name'的條目
tinydict.clear()      # 清空字典所有條目
del tinydict          # 刪除字典

defaultdict(list)   defaultdict(int) # defaultdict類的初始化函數接受一個類型作為參數,當所訪問的鍵不存在的時候,可以實例化一個值作為默認值:

count.get(c, 0) # 默認值為0

items():返回所有(key,value)元組的數組,類似于‘列表’
[s for s, c in cnt.items() if c == maxCnt] # 遍歷dict

dict排序
sorted(dict.items(),key=lambda item:item[0])

items = [(-val, key) for key, val in count.items()] # 變更為tuple
for val, key in sorted(items): # 遍歷排序后的tuple

set(集合)

parame = {value01,value02,...}
或者
set(value)

s.add( x )

s.update( x ) # 參數可以是列表,元組,字典等

s.remove( x )

s.discard( x )

len(s)

s.clear()

x in s

for key in set:
    print (key)

運算符

/ 除 - x除以y
% 取模 - 返回除法的余數
** 冪 - 返回x的y次冪
// 取整除 - 返回商的整數部分(向下取整)

and x and y 布爾"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y 的計算值。
or x or y 布爾"或" - 如果 x 是非 0,它返回 x 的計算值,否則它返回 y 的計算值。
not not x 布爾"非" - 如果 x 為 True,返回 False 。

is is 是判斷兩個標識符是不是引用自一個對象
is not is not 是判斷兩個標識符是不是引用自不同對象
is 與 == 區別
is 用于判斷兩個變量引用對象是否為同一個(同一塊內存空間), == 用于判斷引用變量的值是否相等。

條件語句

if num == 3:            # 判斷num的值
    print 'boss'        elif num == 2:
    print 'user'elif num == 1:
    print 'worker'elif num < 0:           # 值小于零時輸出
    print 'error'else:
    print 'roadman'     # 條件均不成立時輸出

循環語句

i = 1
while i < 10:   
    i += 1
    if i%2 > 0:     # 非雙數時跳過輸出
        continue
    print i         # 輸出雙數2、4、6、8、10
    
i = 1
while 1:            # 循環條件為1必定成立
    print i         # 輸出1~10
    i += 1
    if i > 10:     # 當i大于10時跳出循環
        break

flag = 1
while (flag): print 'Given flag is really true!'

fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        # 第二個實例
   print ('當前水果: %s'% fruit)

fruits = ['banana', 'apple',  'mango']
for index in range(len(fruits)):
   print ('當前水果 : %s' % fruits[index])

for i in reversed(range(length - 1)): # 逆序

for letter in 'Python':     # 第一個實例
   if letter == 'h':
      break
   print '當前字母 :', letter

for i, ch in enumerate(s):
	if frequency[ch] == 1:
		return i

diff = [(a,b) for a,b in zip(s,goal) if a!=b]

字符串

+	字符串連接	
>>>a + b
'HelloPython'

*	重復輸出字符串	
>>>a * 2
'HelloHello'

[]	通過索引獲取字符串中字符	
>>>a[1]
'e'

[ : ]	截取字符串中的一部分	
>>>a[1:4]
'ell'

in	成員運算符 - 如果字符串中包含給定的字符返回 True	
>>>"H" in a
True
not in	成員運算符 - 如果字符串中不包含給定的字符返回 True	
>>>"M" not in a
True

r/R	原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思來使用,沒有轉義特殊或不能打印的字符。 原始字符串除在字符串的第一個引號前加上字母"r"(可以大小寫)以外,與普通字符串有著幾乎完全相同的語法。	
>>>print r'\n'
\n
>>> print R'\n'
\n

strs = 'abcd'
for ch in strs:
    print(ch)

strs = 'abcd'
for index in range(len(strs)):
    print(strs[index], end=' ')

res += 'a'*3 # 'aaa'

s.split(" ") # 將字符串分割成單詞列表

" ".join(list) # 將單詞列表轉換為字符串,以空格分隔

f'{bulls}A{cows}B' # {}計算格式化

a = list(str(n)) # int轉成list
a[i-1] = str(int(a[i-1]) - 1) # 操作字符
int("".join(a)) # list轉化為int

isdigit # 函數判斷是否數字
isalpha # 判斷是否字母

字符串格式化

print "My name is %s and weight is %d kg!" % ('Zara', 21) 
%s	 格式化字符串
%d	 格式化整數
%f	 格式化浮點數字,可指定小數點后的精度

三引號

允許一個字符串跨多行,字符串中可以包含換行符、制表符以及其他特殊字符
 >>> hi = '''hi 
there'''
>>> hi   # repr()
'hi\nthere'
>>> print hi  # str()
hi 
there

函數

string.count(str, beg=0, end=len(string))
# 返回 str 在 string 里面出現的次數,如果 beg 或者 end 指定則返回指定范圍內 str 出現的次數

string.endswith(obj, beg=0, end=len(string))
# 檢查字符串是否以 obj 結束,如果beg 或者 end 指定則檢查指定的范圍內是否以 obj 結束,如果是,返回 True,否則返回 False.

string.find(str, beg=0, end=len(string))
# 檢測 str 是否包含在 string 中,如果 beg 和 end 指定范圍,則檢查是否包含在指定范圍內,如果是返回開始的索引值,否則返回-1

string.format()
# 格式化字符串

string.index(str, beg=0, end=len(string))
# 跟find()方法一樣,只不過如果str不在 string中會報一個異常.

string.join(seq)
# 以 string 作為分隔符,將 seq 中所有的元素(的字符串表示)合并為一個新的字符串

string.replace(str1, str2,  num=string.count(str1))
# 把 string 中的 str1 替換成 str2,如果 num 指定,則替換不超過 num 次.

string.split(str="", num=string.count(str))
# 以 str 為分隔符切片 string,如果 num 有指定值,則僅分隔 num+1 個子字符串

函數

在 python 中,strings, tuples, 和 numbers 是不可更改的對象,而 list,dict 等則是可以修改的對象。

不可變類型:變量賦值 a=5 后再賦值 a=10,這里實際是新生成一個 int 值對象 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當于新生成了a。
可變類型:變量賦值 la=[1,2,3,4] 后再賦值 la[2]=5 則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。

在Python中,數字、字符或者元組等不可變對象類型都屬于值傳遞,而字典dict或者列表list等可變對象類型屬于引用傳遞
如果要想修改新賦值后原對象不變,則需要用到python的copy模塊,即對象拷貝。
copy.copy屬于淺拷貝,拷貝的是第一層list,而copy.deepcopy屬于深拷貝,對list所有子元素都進行深拷貝。

#可寫函數說明
def printinfo( name, age = 35 ):
   "打印任何傳入的字符串"
   print "Name: ", name
   print "Age ", age
   return
#調用printinfo函數
printinfo( age=50, name="miki" )
printinfo( name="miki" )


# 可寫函數說明
def printinfo( arg1, *vartuple ):
   "打印任何傳入的參數"
   print "輸出: "
   print arg1
   for var in vartuple:
      print var
   return
# 調用printinfo 函數
printinfo( 10 )
printinfo( 70, 60, 50 )

import copy
l1 = [[1, 2], 3]
l2 = copy.copy(l1)
l3 = copy.deepcopy(l1)
l2.append(4)
l2[0].append(5)
l3[0].append(6)
l1 = [[1, 2, 5], 3]
l2 = [[1, 2, 5], 3, 4]
l3 = [[1, 2, 6], 3]

匿名函數

# 可寫函數說明
sum = lambda arg1, arg2: arg1 + arg2
# 調用sum函數
print "相加后的值為 : ", sum( 10, 20 )
print "相加后的值為 : ", sum( 20, 20 )

模塊

import support

from fib import fibonacci

from math import *

搜索路徑
1、當前目錄
2、如果不在當前目錄,Python 則搜索在 shell 變量 PYTHONPATH 下的每個目錄。
3、如果都找不到,Python會察看默認路徑。UNIX下,默認路徑一般為/usr/local/lib/python/。
模塊搜索路徑存儲在 system 模塊的 sys.path 變量中。變量里包含當前目錄,PYTHONPATH和由安裝過程決定的默認目錄。

Python中的包
包是一個分層次的文件目錄結構,它定義了一個由模塊及子包,和子包下的子包等組成的 Python 的應用環境。

簡單來說,包就是文件夾,但該文件夾下必須存在 __init__.py 文件, 該文件的內容可以為空。 __init__.py 用于標識當前文件夾是一個包。

考慮一個在 package_runoob 目錄下的 runoob1.py、runoob2.py、 __init__.py 文件,test.py 為測試調用包的代碼,目錄結構如下:
test.py
package_runoob
|-- __init__.py
|-- runoob1.py
|-- runoob2.py

# 導入 Phone 包from package_runoob.runoob1 import runoob1from package_runoob.runoob2 import runoob2
 
runoob1()runoob2()

文件

str = input("請輸入:")
print "你輸入的內容是: ", str

fo = open("foo.txt", "w")
print "文件名: ", fo.name
print "是否已關閉 : ", fo.closed
print "訪問模式 : ", fo.mode
print "末尾是否強制加空格 : ", fo.softspace

# 打開一個文件
fo = open("foo.txt", "w")
str = fo.read(10)
fo.write( "www.runoob.com!\nVery good site!\n")
# 關閉打開的文件
fo.close()

文件和文件夾

import os
os.rename( "test1.txt", "test2.txt" )
os.remove("test2.txt")

os.mkdir("test")
# 將當前目錄改為"/home/newdir"
os.chdir("/home/newdir")
# 給出當前的目錄
print os.getcwd()
# 刪除”/tmp/test”目錄
os.rmdir( "/tmp/test"  )

異常

try:
    正常的操作
   ......................
except:
    發生異常,執行這塊代碼
   ......................
else:
    如果沒有異常執行這塊代碼

try:
    fh = open("testfile", "w")
    fh.write("這是一個測試文件,用于測試異常!!")
except IOError:
    print "Error: 沒有找到文件或讀取文件失敗"
else:
    print "內容寫入文件成功"
    fh.close()

try-finally 語句無論是否發生異常都將執行最后的代碼。
try:
<語句>
finally:
<語句>    #退出try時總會執行
raise

try:
    fh = open("testfile", "w")
    try:
        fh.write("這是一個測試文件,用于測試異常!!")
    finally:
        print "關閉文件"
        fh.close()
except IOError:
    print "Error: 沒有找到文件或讀取文件失敗"

面向對象

class Employee:
   '所有員工的基類'
   empCount = 0
 
   def __init__(self, name, salary):
      self.name = name
      self.salary = salary
      Employee.empCount += 1
   
   def displayCount(self):
     print "Total Employee %d" % Employee.empCount
 
   def displayEmployee(self):
      print "Name : ", self.name,  ", Salary: ", self.salary
 
"創建 Employee 類的第一個對象"
emp1 = Employee("Zara", 2000)
"創建 Employee 類的第二個對象"
emp2 = Employee("Manni", 5000)
emp1.displayEmployee()
emp2.displayEmployee()
print "Total Employee %d" % Employee.empCount

empCount 變量是一個類變量,它的值將在這個類的所有實例之間共享。你可以在內部類或外部類使用 Employee.empCount 訪問。

第一種方法__init__()方法是一種特殊的方法,被稱為類的構造函數或初始化方法,當創建了這個類的實例時就會調用該方法

self 代表類的實例,self 在定義類的方法時是必須有的,雖然在調用時不必傳入相應的參數。

繼承

class A:        # 定義類 A
.....

class B:         # 定義類 B
.....

class C(A, B):   # 繼承類 A 和 B
.....

登錄后復制

重寫

class Parent:        # 定義父類
   def myMethod(self):
      print '調用父類方法'
 
class Child(Parent): # 定義子類
   def myMethod(self):
      print '調用子類方法'

運算符重載

class Parent:        # 定義父類
   def myMethod(self):
      print '調用父類方法'
 
class Child(Parent): # 定義子類
   def myMethod(self):
      print '調用子類方法'

類屬性和方法

類的私有屬性
__private_attrs:兩個下劃線開頭,聲明該屬性為私有,不能在類的外部被使用或直接訪問。在類內部的方法中使用時 self.__private_attrs。

類的方法
在類的內部,使用 def 關鍵字可以為類定義一個方法,與一般函數定義不同,類方法必須包含參數 self,且為第一個參數

類的私有方法
__private_method:兩個下劃線開頭,聲明該方法為私有方法,不能在類的外部調用。在類的內部調用 self.__private_methods

單下劃線、雙下劃線、頭尾雙下劃線說明:
__foo__: 定義的是特殊方法,一般是系統定義名字 ,類似 __init__() 之類的。

_foo: 以單下劃線開頭的表示的是 protected 類型的變量,即保護類型只能允許其本身與子類進行訪問,不能用于 from module import *

__foo: 雙下劃線的表示的是私有類型(private)的變量, 只能是允許這個類本身進行訪問了。

關于“Python入門基礎知識點實例分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湖口县| 基隆市| 平和县| 吉安市| 刚察县| 梨树县| 渝中区| 旌德县| 滨州市| 曲阜市| 姚安县| 新竹县| 南华县| 昌宁县| 邛崃市| 光山县| 珲春市| 伊金霍洛旗| 平江县| 抚远县| 和林格尔县| 鹤岗市| 江门市| 连云港市| 中宁县| 肥城市| 西城区| 宁明县| 伊吾县| 巩义市| 灵宝市| 汝阳县| 岳阳县| 兴宁市| 当阳市| 兖州市| 鹰潭市| 右玉县| 德钦县| 巴东县| 安福县|