Python個人學(xué)習(xí)記錄(有誤望大佬指出)
本人學(xué)習(xí)python不久,深知上網(wǎng)大海撈針找免費(fèi)資源的難處。特此在這里貼出自己的學(xué)習(xí)記錄,一來是拋磚引玉,二來是希望能給同樣在編程語言的路上起步的同學(xué)們一個參考。
可以復(fù)制到自己的編程工具里面打開,這樣還可以看到跑代碼的結(jié)果,也更加美觀不是嘛

正文咳咳:
# -*- coding:utf-8 -*-
#python筆記
#此為個人網(wǎng)上自學(xué)記錄,可能有不系統(tǒng)不規(guī)范的地方。
#學(xué)習(xí)進(jìn)展大約在類的運(yùn)用
#更基礎(chǔ)的條件語句等可以忽略掉創(chuàng)建函數(shù)創(chuàng)建類這些關(guān)鍵句只看相關(guān)部分
#每一對?''' ''' 分隔開的一個代碼塊都是一個新的學(xué)習(xí)記錄
'''
class Game:
? ? def __init__(self,name,score):
? ? ? ? self.name = name
? ? ? ? self.score = score
? ? def print_score(self):
? ? ? ? print(f'{self.name}\'s score is {self.score}')
s1 = Game('tom',8)
s1.print_score()
'''
'''
import random
a = random.randint(0,200)
for i in range(0,200):
? ? if a == i:
? ? ? ? print(f'{i}即為a的值')
? ? ? ? break
? ? else:
? ? ? ? print(f'{i}不為a的值')
'''
'''
#給集合隨機(jī)排序
import random
a = [1,2,3,4,5,6,7,8,9]
b = [1,2,3,4,5,6,7,8,9]
random.shuffle(a)
print(a)
print(b)
tries = 0
n = 0
addup = 0
while a != b and tries <=9:
? ? n = n+1
? ? random.shuffle(a)
? ? if a == b:
? ? ? ? tries = tries+1
? ? ? ? print(f'已成功{tries}次,歷經(jīng){n}次')
? ? ? ? addup += n
? ? ? ? n = 0
? ? ? ? random.shuffle(a)
? ? else:
? ? ? ? pass
print(addup)
print(tries)
print(addup/tries)
'''
'''
def a():
? ? c = 1
? ? b = 0
? ? b = c + 1
a()
print(c,b)
#報(bào)錯:變量c沒有定義
#原因:未區(qū)分全局變量和局部變量
'''
'''
#insert()嘗試
a = ['a','例子1','栗子2']
a.insert(-100,{'b','c'})
a.insert(-20,'d')
print(a)
#復(fù)習(xí)時新增
a.insert(-1,'qwq')
print(a)
#結(jié)論:列表.insert('任意數(shù)字',一個元素(此元素可呈任意形式))
#上一行中的任意數(shù)字代表意義:自然數(shù)表示新增元素的位置前有幾個元素,負(fù)整數(shù)表示新增元素的位置后有幾個元素
#為何為任意數(shù)字:數(shù)字代表位置超標(biāo)(abs(那個數(shù)字)超過列表元素總數(shù))時,自動在列表一端(正數(shù)在右端,負(fù)數(shù)左端)新增新增元素
#嘗試完畢
'''
'''
#extend()嘗試
a = ['a','例子1','栗子2']
b = ('b','粒子3','離子4','例子1','栗子2')
a.extend(b)
print(a)
#結(jié)論:將b列表(元組也行)中元素依次插入a列表末位,不會排除重復(fù)元素
#結(jié)論二:a必須為列表不可以為元組
#嘗試完畢
'''
'''
#根據(jù)insert(),自定義排除重復(fù)元素的extendn()函數(shù)
def extendn(_a_,_b_):
? ? for i in _b_:
? ? ? ? if i not in _a_:
? ? ? ? ? ? _a_.insert(len(_a_),i)
? ? ? ? else:
? ? ? ? ? ? pass
a = ['a','例子1','栗子2']
b = ('b','粒子3','離子4','例子1','栗子2')
extendn(a,b)
print(a)
#wow,定義成功了,可以用,不過格式從a.extend(b)變成了extendn(a,b)
'''
'''
def add(num1,num2):
? ? result = num1+num2
? ? return(result)
add(1,2)
def add1(num1,num2):
? ? result = num1+num2
print(result)#此行報(bào)錯:result沒有定義? 原因是result是add函數(shù)的局部變量,外界不能引用
add1(1,2)
'''
'''
#嘗試sort()排序列表
a = [1,2,3,4]
b = [4,2,3,1]
a.sort()
b.sort()
print(a)
print(b)
#升序排序成功,不過不知道依據(jù)什么來升序的
#盲猜是按照unicode里面的先后順序排序的
'''
'''
a = [1,2,3,4]
#a.后面可以跟許多功能,功能尚不清楚
'''
'''
a = (1,2,3)
b = list(a)
print(b)
c = tuple(b)
print(c)
d = dict()
print(d)
#元組,列表,字典相互轉(zhuǎn)換,其中轉(zhuǎn)字典會報(bào)錯(可能錯了什么格式)
'''
'''
#'|'為并集符號∪
#'&'為交集符號∩
#'-'為差集符號
#'^'為對稱差分符號:'^'左右兩側(cè)集合中僅單獨(dú)一邊有的符號(兩邊相同情況不會被記入)(異或計(jì)算)
'''
'''
def a(b):
? ? print('asas')
? ? return(b)
def b(c):
? ? print('abab')
? ? def d(d):
? ? ? ? print('acac')
? ? return(d)
@a
@b
def func(aba):
? ? print(aba)
func('awa')
#此內(nèi)為裝飾函數(shù),對于@的理解尚不清楚,待查。
#func()功能完全被d()覆蓋
'''
'''
class asad:
? ? def __init__(self):
? ? ? ? self.str = '123'+str(self)
? ? ? ? print('awa')
? ? def __del__(self):
? ? ? ? print(str(self)+':bye~')
? ? def aba(self):
? ? ? ? print(self.str)
? ??
qwq = asad()
#一個成功的類,其中__init__()要在第一個定義,其次則是__del__(),再其次是成員函數(shù).
'''
'''
class A:
? ? def a(self):
? ? ? ? print('a')
class B(A):
? ? def b(self):
? ? ? ? print('b')
#類B為類A的子類
qwq = B()? ?#創(chuàng)建類B的實(shí)例'qwq'
qwq.a()? ? ?#子類實(shí)例qwq訪問父類A的成員函數(shù)
qwq.b()? ? ?#子類實(shí)例qwq訪問該子類B的成員函數(shù)
#子類函數(shù)建立成功
'''
'''
#嘗試?yán)斫獬橄箢?抽象方法
from abc import ABCMeta,abstractmethod #調(diào)用抽象類模塊(別稱:庫)
class A():
? ? __metaclass__ = ABCMeta? #聲明此類為抽象類
? ? @abstractmethod
? ? def a():
? ? ? ? pass
class B(A):
? ? def a(self):
? ? ? ? print('qwq'+str(self))
class C(A):
? ? def a(self):
? ? ? ? print(str(self)+'awa')
a = A()
b = B()
c = C()
A.a()? ?#不會報(bào)錯,也沒有任何結(jié)果
b.a()
c.a()
#在不同子類中,父抽象類類中的抽象方法在不同子類中有不同表達(dá)形式
#類的多態(tài)
'''
'''
#一個問題,類中方法要求不同參數(shù),參數(shù)怎么區(qū)分?
class A:
? ? def __init__(self,x = 0,y = 0,z = 0):
? ? ? ? self.x = x
? ? ? ? self.y = y
? ? ? ? self.z = z
? ? def a(self,a,b):
? ? ? ? if isinstance(a,str) and isinstance(b,str):
? ? ? ? ? ? print(str(self)+a+b)
a = A()
b = A(1,2,3)
#問題解決:初始化時要求給出初始化要求的參數(shù)(也可設(shè)置初始值)
#? ? ? ? ? 調(diào)用類中的方法時再給出該方法要求的參數(shù).
'''
'''
#建立類方法
class A:
? ? x = '1'
? ??
? ? def __init__(self):
? ? ? ? self.str = 'newcomer'
? ? @classmethod
? ? def clsmethod(cls):
? ? ? ? print(cls.x) #可以靠cls訪問類靜態(tài)變量x但不可以訪問初始化變量self.str
'''
'''
a = 0
while a <= 1000000000:
? ? a += 1
print('finish')
'''
'''
#嘗試random.choice編寫自定義隨機(jī)密碼
#方式1:指定位數(shù)全隨機(jī)密碼
import random
size = int(input('輸入密碼預(yù)期位數(shù):'))
times = int('0')
password = str('')
while times <= size:
? ? times +=1
? ? password += random.choice('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()_+-={}[]:";\'<>,.|\\?/')
? ? print(f'第{times}位密碼生成成功')
print('密碼生成成功')
print(password)
#嘗試成功
'''
'''
#書接上回,欸嘿
#方法二:自定義密碼位數(shù),自定義字母數(shù)字符號個數(shù)
import random
total_size = int(input())
num_size = int(input())
#未完成,理論上只是方式1的重復(fù)并在最后合并字母數(shù)字符號時候進(jìn)行一次打亂
'''
'''
#range的特性range(num)
for i in range(19):
? ? print(i)
#復(fù)習(xí)完成,從0開始到num-1
'''
'''
#這一段代碼可以保證每次輸入一個數(shù)字然后進(jìn)行排序,奇前偶后
a = []
for i in range(int(input())):
? ? a.insert(i,int(input()))
b = []
for i in a:
? ? if i % 2 != 0:
? ? ? ? b.insert(len(b),i)
? ? else:
? ? ? ? continue
for i in a:
? ? if i % 2 == 0:
? ? ? ? b.insert(len(b),i)
? ? else:
? ? ? ? continue
for i in b:
? ? print(i,end = ' ')
'''
'''
#嘗試編寫數(shù)字判斷與處理?
num = input('輸入任意整數(shù)')
mid = str(int(num))
times = len(mid)
print(times)
#輸出位數(shù)
strnum = str(mid)
for i in range(times):
? ? if i < times-1:
? ? ? ? print(f'{strnum[i]}',end = ' ')
? ? else:
? ? ? ? print(f'{strnum[i]}')
#輸出每一位數(shù)
for i in range(times):
? ? print(f'{strnum[times-1-i]}',end = '')
#倒序輸出
'''
'''
#列表各項(xiàng)功能嘗試
a = []#創(chuàng)建列表
#復(fù)習(xí)append
a.append('awa1')
print(a)#預(yù)期結(jié)果['awa1']
#學(xué)習(xí)clear
a.clear()
print(a)#預(yù)期結(jié)果[]
#學(xué)習(xí)copy
b = a.copy()
print(b)#預(yù)期結(jié)果[]
#復(fù)習(xí)count
a = ['qa','zxw','sev','rf','t','awa','qwq','awq','b','y','n','h','ujm']
print(a.count('q'))#預(yù)期輸出4? ?!!實(shí)際輸出為0,應(yīng)該檢測的是每一個項(xiàng)
#復(fù)習(xí)count 嘗試
print(a.count('qa'))#預(yù)期輸出1? ?對了上一條的理解是對的
#由上倆count嘗試,靈感:count用于字符串
print('qwqqwq'.count('q'))#預(yù)期輸出4? ?成功了。這個靈感沒有問題
'''
'''
#最基礎(chǔ)類的創(chuàng)建
class awa:
? ? def __init__(self):
? ? ? ? self.num = 0
? ? ? ? print('創(chuàng)建成功')
? ? def __del__(self):
? ? ? ? print('再見啦')
? ? def shownum(self):
? ? ? ? print(f'{self.num}')
'''

正文結(jié)束。。
希望自己能幫上大家的忙,哪怕有些代碼大家看起來荒謬可笑也能當(dāng)反面教材不是awa
我自己還在繼續(xù)學(xué)習(xí)中,也希望能有大佬前來指路。
如果有人愿意分享自己的學(xué)習(xí)經(jīng)歷那真是萬分感謝!