Python知识点整理(适合基础入门)

Python知识点

此处结合《Python编程从入门到实践》这本书,罗列了一些比较基础的但很受用的知识点,强烈建议读者自行实践一波。欢迎点赞收藏观看

字符串

  1. 字符串可以用 ‘’ 也可以用 “”
message = "hello world"
message = 'hello world'
message = "hello 'world' "
message = 'hello "world" ' #便于灵活输出单引号和双引号
#若是单双都要输出,用反斜杠即可
message = "hello \"world\" "
  1. title() 将首字母大写,空格,数字和其他字符后面的字母均大写
message = "hello world 1a!b[][]c"
print(message.title())
输出:Hello World 1A!B[][]C
  1. lower() 字符串字母全小写,upper() 字符串字母全大写
  2. 合并字符串用 +
  3. lstrip() 删除字符串开头的空白,rstrip() 删除字符串末尾的空白,strip() 删除字符串两端的空白

数字

  1. ** 表示乘方
3**2 = 9
  1. int 转 字符串 用str()
age = 23
print(str(age))
  1. 浮点数
print(3/2) #与C语言不同的是
输出:1.5

列表

  1. list = [ , , ]
  2. 索引,list[0],指向第一个元素,索引从0开始
  3. list[-1] 指向最后一个元素,list[-2] 指向倒数第二个列表元素
  4. 修改列表元素 list[0] = “new one”
  5. 添加列表元素 list.append(“new one”)
  6. 插入列表元素 list.insert(0, “new one”) 在位置0添加元素,0以及其后的元素往右移一个位置
  7. 删除列表元素 del list[0]
  8. list = [] 创建一个空列表
  9. pop() 删除列表末尾元素,并返回一个值。
  10. pop(i) 可以删除第i个位置的元素。
  11. 根据值删除元素,remove(“new one”) 只能删除一个值,如果列表中有重复,则要用循环来判断是否删除了所有元素
list = [1, 2, 1]
print(list)
list.remove(1)
print(list)
输出:
[1, 2, 1]
[2, 1]
  1. sort() 对列表永久性排序 默认ASCII从小到大的顺序
  2. sort(reserve=True) ASCII从大到小的顺序
  3. sorted() 对列表临时排序
  4. sorted(reverse=True)
  5. reverse() 反转列表顺序
  6. len() 确定列表长度
  7. 列表为空时,list[-1]会出错
  8. 遍历
list = [1, 3, 2]
for i in list:
    print(i)
输出:
1
3
2
  1. 创建数值列表,range(1, 5) 生成1,2,3,4
for i in range(1, 5):
    print(i)
输出
1
2
3
4
  1. range创建数字列表
print(range(1, 5))
print(list(range(1, 5)))
输出
range(1, 5)
[1, 2, 3, 4]
  1. range(1, 10, 2) 指定 [1,10) 步长为2 的的列表
    range(30) 表示0-29
print(list(range(1,9,2)))
[1, 3, 5, 7]
  1. min() 找数字列表最小
  2. max()找数字列表最大
  3. sum()求数字列表总和
  4. 列表解析
squares = [value**2 for value in range(1, 11)]
等价于
squares = []
for value in range(1, 11):
	squares.append(value**2)
  1. 切片 list[0:3] 或 list[:3] 前三名 (索引 0 1 2)
  2. 切片 list[-3:] 最后三名
  3. list[:]
list2 = list[:] #list2和list是两个元素一样的单独的列表
list2 = list    #list2和list是同一个,对其中一个操作,另一个也改变

元组

  1. 不可变的列表 tuple = ( , )
  2. 可以给元组变量赋值,tuple = (1, 2)

if语句

  1. if
a = 2
if a == 1:
    print(a)
elif a == 2:
    print(a+1)
else:
    print(a+2)
  1. 多个条件用 and ,or
  2. 检查是否在列表中,可以用 in
tuple = (1, 2)
if 1 in tuple:
    print("yes")
  1. 检查是否不在列表中,用 not in
  2. if list: 可以检查list是否为空

字典

  1. dict = {key : val}
  2. dict[key] = val
  3. 添加键值对,直接 dict[new key] = new val, dict必须原先初始化过
  4. dict = {} 空字典
  5. del dict[key] 删除键值对
dict = {
    'a': 1,
    'b': 2, #有逗号也没事
}
  1. 遍历
for key, value in dict.items():
    print(key)
    print(value)
  1. 遍历字典中所有键
dict = {
    'a': 1,
    'b': 2,
}
for key in dict.keys(): #也可以省略.keys(),默认是遍历key
    print(key)
输出
a
b
  1. if ‘a’ in dict.keys():
  2. 遍历字典中所有值, for value in dict.values():
  3. 剔除重复项,可以用set()
for value in set(dict.values()):
  1. 嵌套
    { key: [ ] }
    [ { } ]
    [ [ ] ]
    { { } }
  2. print 若想不换行
print("ha",end= ' ') #以空格符替代结尾符号,本来默认是\n

用户输入

  1. input()
message = input("your name:")

用户输入返回给message

  1. 用户输入为字符串,int(message) 转换成数值
  2. 求模%

while语句

  1. while i <= 9:
active = True
while active:
	...
	if ... :
		active = False
	else:
		...
  1. break, continue

函数

def fun():
    """这是一个函数 """  #表示注释
    print("hello")
  1. 位置实参 fun(1, 2) 对应的就是如下a,b
def fun(a, b):
  1. 关键字实参
    传递给函数的名称-值对
def fun(a, b):
	print(a+" "+b)

fun(a = 'one', b = 'two')
  1. 默认值
def fun(a, b='two')
  1. 返回值 return, 可返回任意类型的值
  2. 让实参变成可选的
def fun(a, b, c=''):
  1. 在函数中修改传递进来的列表示永久性的
  2. 禁止函数修改列表,可以传入切片,原来的list不会改变
fun(list[:])
  1. 传递任意数量的实参,加一个*
    all表示一个空元组
def fun(*all):
	print(all)

fun()			#()
fun("a")		#('a',)
fun("a","b")	#('a', 'b')
  1. 结合使用位置实参和任意数量实参,传递不同类型的实参
def fun(size, *all):

fun(1,"a")
fun(2,"a","b")
  1. 任意数量的关键字实参,用 **
def fun(**all):
    dict = {}
    for key, value in all.items():
        dict[key] = value
    print(dict)

fun(first='A', second='B'))
  1. 将函数存储在模块中
    一个文件就是一个模块,可以直接import
#main.py
import test

test.fun()
#test.py
def fun():
    print("hello")
  1. 导入特定函数
#main.py
from test import fun

fun()
#test.py
def fun():
    print("hello")
  1. 使用as给函数指定别名
from test import fun as f

f()
  1. 用as给模块指定别名
import test as t
  1. 导入模块中的所有函数
from test import *

  1. 创建类
class Dog():
    """一只狗"""
    def __init__(self, name, age):
        """初始化name和age"""
        self.name = name
        self.age = age
        
    def sit(self):
        print("sit")
  1. 创建实例
my_dog = Dog("haha", 6)
my_dog.sit()
  1. 继承
    子类自动获得父类的所有属性和方法
class Haqi(Dog):  #Dog是父类
    def __init__(self, name, age):
        super().__init__(name, age)  #super指向父类
  1. 重写父类的方法
    重写父类同名函数,在子类调用该函数时,会忽略父类的函数。
  2. 将实例用作属性 相当于C++中的类对象
class A():
    def __init__(self, name):
        self.name = name


class Age():
    def __init__(self, age=10):
        self.age = age


class B(A):
    def __init__(self, name):
        super().__init__(name)
        self.age = Age()

  1. 导入类 from car(文件名) import Car(类名)
  2. 导入多个类, from car import Car, ElectricCar 用逗号隔开

文件和异常

  1. 直接读取read
with open("file/ok.txt") as file:
    c = file.read()
    print(c)
  1. c最后会多一个空行,用.rstrip()去掉
  2. 逐行读取
with open("ok.txt") as file:
    for line in file:
        print(line.rstrip())
  1. 创建一个包含文件各行内容的列表
with open("ok.txt") as file:
    lines = file.readlines()

print(lines)
for line in lines:
    print(line.rstrip())

  1. 写入空文件
with open("ok.txt", 'w') as file:
    file.write("hello world")

  1. ‘w’ 写入模式 ‘r’ 读取模式 ‘a’ 附加模式,‘r+’ 读写都可
  2. python只能将字符串写入文本文件中
  3. 写入的时候不会自动添加换行符。
  4. try-except-else 代码块 处理异常
try:
 	answer = f/s
except ZeroDivisionError:
    print("error")
else:
	print(answer)
  1. FileNotFoundError 文件找不到触发异常
    替换 ZeroDivisionError 即可
  2. split() 以空格为分割,将字符串分成多个部分
s = "a b," \
    "c d"
print(s.split())
#['a', 'b,c', 'd']
  1. 处理异常时一声不吭
try:
 	answer = f/s
except ZeroDivisionError:
    pass
  1. 加法运算,类型判断
  try:
       a = int(input("input a number:"))
       b = int(input("input a number:"))
   except:
       print("error type")
   else:
       print(a + b)

存储数据

  1. 模块 json
    使用 json.dump() 和 json.load()
import json

filename = "num.json"
num = input("input your favorite num:")
with open(filename, 'w') as file:
    json.dump(num, file)

with open(filename, 'r') as file:
    user = json.load(file)
    print("i know it: "+ user)

测试代码

  1. unittest 模块
def fun(city, country):
    return city + ',' + country
import unittest
from city_functions import fun


class NamesTestCase(unittest.TestCase):
    def test_city_country(self):
        formatted_name = fun('santiago', 'chile')
        self.assertEqual(formatted_name, 'santiago,chile')

    def test_city_country2(self):
        formatted_name = fun('sa', 'ch')
        self.assertEqual(formatted_name, 'sa,ch')


if __name__ == "__main__":
    unittest.main()
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值