欢迎光临散文网 会员登陆 & 注册

Python个人学习记录(有误望大佬指出)

2023-02-16 12:56 作者:Re_Aloha  | 我要投稿

本人学习python不久,深知上网大海捞针找免费资源的难处。特此在这里贴出自己的学习记录,一来是抛砖引玉,二来是希望能给同样在编程语言的路上起步的同学们一个参考。

可以复制到自己的编程工具里面打开,这样还可以看到跑代码的结果,也更加美观不是嘛

正文咳咳:


# -*- coding:utf-8 -*-

#python笔记

#此为个人网上自学记录,可能有不系统不规范的地方。

#学习进展大约在类的运用

#更基础的条件语句等可以忽略掉创建函数创建类这些关键句只看相关部分

#每一对 ''' ''' 分隔开的一个代码块都是一个新的学习记录

'''

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的值')


'''

'''


#给集合随机排序

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}次,历经{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)


#报错:变量c没有定义

#原因:未区分全局变量和局部变量

'''

'''

#insert()尝试

a = ['a','例子1','栗子2']

a.insert(-100,{'b','c'})

a.insert(-20,'d')

print(a)



#复习时新增

a.insert(-1,'qwq')

print(a)


#结论:列表.insert('任意数字',一个元素(此元素可呈任意形式))

#上一行中的任意数字代表意义:自然数表示新增元素的位置前有几个元素,负整数表示新增元素的位置后有几个元素

#为何为任意数字:数字代表位置超标(abs(那个数字)超过列表元素总数)时,自动在列表一端(正数在右端,负数左端)新增新增元素


#尝试完毕

'''

'''

#extend()尝试

a = ['a','例子1','栗子2']

b = ('b','粒子3','离子4','例子1','栗子2')

a.extend(b)

print(a)


#结论:将b列表(元组也行)中元素依次插入a列表末位,不会排除重复元素

#结论二:a必须为列表不可以为元组


#尝试完毕

'''

'''

#根据insert(),自定义排除重复元素的extendn()函数

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)#此行报错:result没有定义  原因是result是add函数的局部变量,外界不能引用


add1(1,2)


'''

'''

#尝试sort()排序列表


a = [1,2,3,4]

b = [4,2,3,1]

a.sort()

b.sort()


print(a)

print(b)


#升序排序成功,不过不知道依据什么来升序的

#盲猜是按照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)



#元组,列表,字典相互转换,其中转字典会报错(可能错了什么格式)

'''


'''

#'|'为并集符号∪

#'&'为交集符号∩

#'-'为差集符号

#'^'为对称差分符号:'^'左右两侧集合中仅单独一边有的符号(两边相同情况不会被记入)(异或计算)

'''

'''

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')


#此内为装饰函数,对于@的理解尚不清楚,待查。

#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__(),再其次是成员函数.


'''


'''

class A:

    def a(self):

        print('a')


class B(A):

    def b(self):

        print('b')


#类B为类A的子类


qwq = B()   #创建类B的实例'qwq'


qwq.a()     #子类实例qwq访问父类A的成员函数


qwq.b()     #子类实例qwq访问该子类B的成员函数



#子类函数建立成功


'''

'''

#尝试理解抽象类,抽象方法


from abc import ABCMeta,abstractmethod #调用抽象类模块(别称:库)


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.a()

c.a()


#在不同子类中,父抽象类类中的抽象方法在不同子类中有不同表达形式

#类的多态


'''

'''

#一个问题,类中方法要求不同参数,参数怎么区分?


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)



#问题解决:初始化时要求给出初始化要求的参数(也可设置初始值)

#          调用类中的方法时再给出该方法要求的参数.

'''

'''

#建立类方法


class A:


    x = '1'

    

    def __init__(self):

        self.str = 'newcomer'


    @classmethod

    def clsmethod(cls):

        print(cls.x) #可以靠cls访问类静态变量x但不可以访问初始化变量self.str


'''


'''

a = 0

while a <= 1000000000:

    a += 1


print('finish')

'''

'''

#尝试random.choice编写自定义随机密码

#方式1:指定位数全随机密码


import random


size = int(input('输入密码预期位数:'))

times = int('0')

password = str('')

while times <= size:

    times +=1

    password += random.choice('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()_+-={}[]:";\'<>,.|\\?/')

    print(f'第{times}位密码生成成功')


print('密码生成成功')

print(password)


#尝试成功

'''

'''


#书接上回,欸嘿

#方法二:自定义密码位数,自定义字母数字符号个数


import random

total_size = int(input())

num_size = int(input())



#未完成,理论上只是方式1的重复并在最后合并字母数字符号时候进行一次打乱

'''


'''

#range的特性range(num)

for i in range(19):

    print(i)


#复习完成,从0开始到num-1

'''


'''

#这一段代码可以保证每次输入一个数字然后进行排序,奇前偶后

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 = ' ')


'''


'''

#尝试编写数字判断与处理 

num = input('输入任意整数')

mid = str(int(num))

times = len(mid)

print(times)

#输出位数


strnum = str(mid)


for i in range(times):

    if i < times-1:

        print(f'{strnum[i]}',end = ' ')

    else:

        print(f'{strnum[i]}')

#输出每一位数

for i in range(times):

    print(f'{strnum[times-1-i]}',end = '')

#倒序输出


'''


'''

#列表各项功能尝试


a = []#创建列表

#复习append

a.append('awa1')

print(a)#预期结果['awa1']


#学习clear

a.clear()

print(a)#预期结果[]


#学习copy

b = a.copy()

print(b)#预期结果[]


#复习count

a = ['qa','zxw','sev','rf','t','awa','qwq','awq','b','y','n','h','ujm']

print(a.count('q'))#预期输出4   !!实际输出为0,应该检测的是每一个项


#复习count 尝试

print(a.count('qa'))#预期输出1   对了上一条的理解是对的


#由上俩count尝试,灵感:count用于字符串

print('qwqqwq'.count('q'))#预期输出4   成功了。这个灵感没有问题


'''


'''

#最基础类的创建

class awa:

    def __init__(self):

        self.num = 0

        print('创建成功')

    def __del__(self):

        print('再见啦')

    def shownum(self):

        print(f'{self.num}')


'''

正文结束。。

希望自己能帮上大家的忙,哪怕有些代码大家看起来荒谬可笑也能当反面教材不是awa

我自己还在继续学习中,也希望能有大佬前来指路。

如果有人愿意分享自己的学习经历那真是万分感谢!

Python个人学习记录(有误望大佬指出)的评论 (共 条)

分享到微博请遵守国家法律