python入门的琐碎知识点1(自用)

本文介绍了Python编程的基础知识,包括方法定义与调用、列表、元组、字典和字符串的操作,如遍历、修改、查找等。还涉及循环控制(break,continue)、异常处理(try-except)、文件操作以及面向对象编程的基础,如类的定义、继承、方法覆盖。此外,文章提到了局部和全局变量、函数的返回值以及默认参数的使用。
摘要由CSDN通过智能技术生成

1 python定义方法可以在本方法内调用其他的方法

2 要在另一个python中使用别的方法要引用该方法所在模块

3 一个函数内出现return,则代表函数结束

4 and or 是逻辑运算符

5 del关键字,把变量从内存中删除,可以是列表的元素

6 列表操作符:列表的下标索引与c类似 [list]

append(event)加到后面加一个元素,extend(list)可以加一堆

insert(num,string)把string插到num后面

pop(num)删除指定位置上的元素

remove(event),指定删除这个元素

clear()清除全部的元素

index(event)显示元素在列表中的位置

len(list)查看该列表元素个数

count(event),统计event出现的次数

sort()默认是升序排序,若要降序则sort(reverse=True)则代表着列表降序排序

del list[num]直接删除列表中的元素

在使用列表时,可以通过for循环来遍历列表中的所有元素

7 元组操作符(tuple)

取值与列表类似,下标取值

index(event)得出event在元组中的位置

count(event)得出event出现的次数

len(tuple)得出元组长度

遍历的时候与列表类似,使用for循环 for char in mytuple:

8 格式化字符串"%s年龄是%d身高%.2f" % ('xiaoming', 18, 1.75)

9 字典操作符{dict}

定义:字典是由键值对构成{'key':num}

取值:dict['key'],用字典名加键的名字即可得到对应得值

修改的话与取值的操作类似

pop('key'),删除键对应的值

len(dict),计算键值对数量

update(dict)合并两个字典,括号里的字典加载在后面,类似于extend()

clear()清空字典

字典的遍历与前面两个有一点不一样,是成对出现的

for key in xiaoming_dict:

print("%s - %s" % (key, dict['key']))

应用场景,在列表内当做不同人信息的分割,可以当作信息管理系统的东西

10 字符串的应用,

str='***'可以通过下标来访问str[num],

及字符串名字来输出,遍历与列表元组类似

count(event),计算event出现的次数,没有结果为0

index(event),找出这个event在字符串内第一次出现的位置

isspace()判断字符串内是否有空格,有的话True

isdigit()判断是否纯数字(不能判断小数)

isdecimal()判断是否10进制

isnumeric()判断是否都是数值

startswith(string)判断字符串是否以string开头

endswith(string)判断字符串是否以string结尾

find(string)查找指定字符串,找不到会报错

replace(string1,string2),用string2替换原来字符串里的string1,

且不改变原来字符串,等于新建了一个字符串

strip()删除字符串内的空格

split(char)以char把字符串拆分,拆完的格式是列表的形式

'string2'.join(string1),把字符串string2拼接到string1的后面

字符串遍历的应用str.center(num,'char'),字符串长度num,且居中,空白处char填补

str.rjust(num,'char'),右对齐

str.ljust(num,'char'),左对齐

11 break跳出当前循环,进入下面的代码块

12 continue 跳出当此循环,进入下一次循环

13 注意代码块对其格式for后面也能跟else

例for**:

else:

如果其中有break达成条件后,直接跳出for循环,不执行else内容

break是对循环来讲的,if是分支语句不在break的范畴内

14 局部变量和全局变量的区别,局部变量的生存周期只在其所在的方法内,出了之后就消除,而全局变量,在整个python文件内都可以调用。函数是不能修改全局变量的值

若想要用函数来修改全局变量的值,要告诉解释器在函数内不创造局部变量,用关键字

global num 来声明num,然后对其进行操作。全局变量一般放在函数开头,模块导入处

15 return多个返回值,返回的是一个元组

16 python里面两个数字进行交换,不需要用第3个变量来交换,直接a,b=b,a,就可以将二者 值交换

17 缺省参数问题:如果一个方法内有固定的参数,则在调用该方法的时候可以省略那个已 经确定了的参数

例如

def print_info(name, gender=True):

print_info("老王")

print_info("小美", False)

18 类的定义一般在括号内加object,修改参数来改变初始值 初始化方法_init_(self)

class Cat(object):

def __init__(self, new_name):

print("这是一个初始化方法")

self.name = new_name

def eat(self):

print("%s 爱吃鱼" % self.name)

tom = Cat("Tom")

19 类中的_del_方法 _del_(self)

def __del__(self):

print("%s我去了" % self.name)

del tom

使用后,直接删除这个对象

20 类中的_str_方法 _str_(self)

def __str__(self):

return "我是小猫[%s]" % self.name

这些方法都会被调用

_str_如果类内定义了_str_(self)方法,return一定会被类创建的对象调用

如果用类创建了对象object,那么print(object),结果就是返回_str_内的值

21 私有属性和方法

def __init__(self, name):

self.name = name

self.__age = 18

# __age,两下划线私有属性

# def __secret(self):

def secret(self):

print("%s 的年龄是%d" % (self.name, self.__age))

# 对象的方法内部能够正常访问

#私有方法也不能在外界调用使用

虽然外界不能直接使用私有属性,但是可以由创建的对象来调用私有方法,从而访问私有属性

但是可以加类名来访问私有属性

class Women:

def __init__(self, name):

self.name = name

self.__age = 18

# __age,两下划线私有属性

def __secret(self):

# def secret(self):

print("%s 的年龄是%d" % (self.name, self.__age))

# 对象的方法内部能够正常访问

# 私有方法也不能在外界调用使用

# 可以用_加类名访问私有属性

xiaofang = Women("小芳")

print(xiaofang._Women__age)

xiaofang._Women__secret()

22 继承子类拥有父类的所有属性和方法

class Animal:

def eat(self):

print("吃")

class Dog(Animal): # 继承

def bark(self):

print("汪汪叫")

就是用子类创建一个对象时,可以调用父类的eat(),还可以使用自己的bark()

继承还具有传递性,儿子继承父亲,父亲继承爷爷,就是儿子同时拥有父亲和爷爷的所有方法和属性

23 子类方法覆盖父类,在子类中重新定义该方法即可,在对象调用时优先调用子类的方法,要想在子类内继续用父类的方法,可以用到super

def bark(self):

print("叫的跟神一样")

# 在子类中重写该方法

# 为了子类重写后仍能调用父类的方法

super().bark()

# Dog.bark(self)或者这样,必须有self

print("awdwadawdad")

# 自己不能调用自己,不然死循环

24 子类对象调用父类私有属性及方法的方式

让子类创建一个对象,可以直接调用父类的共有初始化参数,可以调用父类的共有方法,让父类的共有方法去调用父类的私有方法即可,私有方法再去调用私有初始话参数

25 多继承:一个子类可以继承多个父类

class C(A, B):

多继承的父类属性相同时,谁先被子类继承,则用的是谁的方法,先入为主

26 类属性:每创建一个对象,类初始化方法就被调用一次

class Tool(object):

count = 0

def __init__(self, name):

self.name = name

# 让类属性加1

Tool.count += 1

tool1 = Tool("斧头")

tool2 = Tool("榔头")

tool3 = Tool("起子")

print("工具对象总数 %d "% tool3.count)

print("==>%d" % Tool.count)

27 静态方法、类方法

在方法定义前面加@staticmethod

class Dog(object):

@staticmethod

def run():

print("小狗偶要跑")

# 通过类名.的方式调用静态方法

在方法前面加@classmethod

@classmethod

def show_tool_count(cls):

print("工具对象数量%d" % cls.count)

28_new_()方法,是一种类方法,为对象分配空间

def __new__(cls, *args, **kwargs):

print("创建对象,分配空间")

# 为对象分配空间

instance = super().__new__(cls)

# 返回对象引用

return instance

class MusicPlayer(object):

instance = None

def __new__(cls, *args, **kwargs):

if cls.instance is None:

cls.instance = super().__new__(cls)

return cls.instance

# __new__分配空间

# __init__对象初始化

player1 = MusicPlayer()

print(player1)

player2 = MusicPlayer()

print(player2)

29 类内变量是静态的static

**为模块指定别名

import hm_01_测试模块1 as DogMoule

import hm_02_测试模块2 as CatMoule

从别的模块导入方法,直接用这个方法名就可以

from hm_01_测试模块1 import Dog

from hm_02_测试模块2 import say_hello

从一个模块导入全部方法,好处就是不用每次都打模块的名字了

from hm_01_测试模块1 import *

from hm_02_测试模块2 import *

把需要的方法用as再次改名,用来区分

from hm_01_测试模块1 import say_hello as moudle1_say_hello

from hm_02_测试模块2 import say_hello

30 异常检测,抛出异常

try:

num = int(input("请输入一个整数:"))

except:

print("请输入正常的整数")

print("-"*50)

当输入r的时候不再是直接错误,而是执行except里的内容

当发生错误赋值的时候,一般解释器都会给出错误类型,而我们就可以给出抛出的异常类型

try:

num = int(input("请输入一个整数:"))

result = 8 / num

print(result)

except ZeroDivisionError:

print("除0错误")

except ValueError:

print("请输入正确的整数")

我们可以不管其他的错误,直接当作未知错误

except Exception as result:

print("未知错误 %s" % result)

完整的异常及捕获操作

try:

num = int(input("请输入一个整数:"))

result = 8 / num

print(result)

except ValueError:

print("请输入正确的整数")

except Exception as result:

print("未知错误 %s" % result)

else:

print("尝试成功")

finally:

print("无论是否正确都会执行")

print("-"*50)

抛出异常

# 碰到return直接退出函数,下面代码不执行

def input_password():

pwd = input("请输入密码:")

if len(pwd) >= 8:

return pwd

print("主动抛出异常")

# 1. 创建异常对象

ex = Exception("密码长度不够")

# 2. 主动抛出异常

raise ex

try:

print(input_password())

except Exception as result:

print(result)

31 文件操作

# 1.打开文件

file = open("README")

# 2.读取文件内容

text = file.read()

print(text)

# 3.关闭文件,打开关闭是一对

file.close()

在读取文件后,文件的指针会发生变化,没有关闭文件,再次打开时文件指针指向文件尾部

# 1.打开文件

file = open("README")

# 2.读取文件内容

text = file.read()

print(text)

print(len(text))

print("-"*50)

text = file.read()

print(text)

print(len(text))

# 3.关闭文件,打开关闭是一对

file.close()

文件的一些操作符

file = open("README", "a")

# open默认只读方式打开方式

# a 追加不覆盖

# w 覆盖前面的内容

# r+ 读写打开文件

# w+ 读写打开文件, 文件不存在创建新文件

# a+ 读写,追加, 不存在时创建新文件

file.write("\nhello")

file.close()

分行读取文件

file = open("README")

while True:

text = file.readline()

if text == "": # if not text:

break

print(text)

file.close()

小文件的复制操作

# 小文件的复制操作

# 1. 打开文件

file_read = open("README")

file_write = open("README[附件]", "w")

# 2. 读写操作

text = file_read.read()

file_write.write(text)

# 3. 关闭文件

file_read.close()

file_write.close()

大文件的复制工作,打开要复制的文件,读取它,每次读取的内容,再原封不动的写到空文件里

# 小文件的复制操作

# 1. 打开文件

file_read = open("README")

file_write = open("README[附件]", "w")

# 2. 读写操作

while True:

text = file_read.readline()

if not text:

break

file_write.write(text)

# 3. 关闭文件

file_read.close()

file_write.close()

32 eval函数

eval(input_str)

可以直接计算表达式的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值