python知识点整理归档【不定期更新】

文章目录

  • >知识点详解及一些题目练习
    • >知识点
      • >分支结构知识点
      • >基础标准函数学习
      • >random随机库学习
      • >循环学习
      • >递归方法求解阶乘
      • >函数方法求解阶乘
    • > 练习题及刷题网站(答案不唯一,仅提供一种参考喔~)
      • >刷题网站
      • >练习题
        • >1.求水仙花数
        • >2.M\N组合数
        • >3.辗转相除法求最小公倍数
        • >4.求两个数的公约数个数
        • >5.摘苹果问题
        • >6.判断互质数
        • >7.判断N-M路线数
        • >8.污染海域问题
        • >9.搬运问题
        • >10.冰雹猜想
  • >常用库及其使用方法
    • 一、海龟库
    • 二、随机库
    • 三、json库
    • 四、pyecharts库
    • 五、PyQt5
  • >常用知识点
    • 1 - 变量的命名规则
    • 2 - 逻辑/布尔运算(and、or、not)
      • >and
      • >or
      • >not
    • 3 - 变量的自增、自减、自乘、自除
    • 4 - range的奥秘
      • >range(x)
      • >range(x,y)
      • >range(x,y,z)
    • 5 - if name == "main":
    • 6 - for循环的常用格式
      • >for i in range:
      • >for i in 列表:
    • 7 - 切片
    • 8 - 正则表达式(具体re模块见知识点9)
      • (一)常用正则
      • (二)正则表达式的使用
    • 9 - re模块
    • 10 - 深拷贝和浅拷贝
    • 11 - 不同数据类型及其特点
      • 【int 长整形】
      • 【float 浮点型】
      • 【string 字符类型】
      • 【boolean 布尔类型】
      • 【list 列表】
      • 【tuple 元组】
      • 【dict 字典】
      • 【set 集合】
      • 不同类型转换
    • 12 - 排序函数(主要考察序列排序)
      • 1.sorted(list,reverse=True)
      • 2.sort()
      • 3.sort()和sorted()的区别:
    • 13 - 字符串的操作方式
      • 1.字符串索引
      • 2.字符串截取
      • 3.字符串拼接:“+”
      • 4.字符串复用:“*“
    • 14 - 递归
      • >什么是递归
      • >为什么要使用递归
      • >递归的特征
      • >递归的典型例题:求解斐波那契数
    • 15 - 动态规划
      • >什么是动态规划
      • >动态规划的核心思想
      • >规划分类和代表性问题
        • >带备忘录的递归解法(自顶向下)
        • >自底向上的动态规划
      • >动态规划的解题套路
      • >动态规划的解题思路
        • >1.穷举分析
        • >2.确定边界
        • >3. 找规律,确定最优子结构
        • >4.写出状态转移方程
        • >5. 代码实现
    • 16 - 面向对象主要有四大特性
      • 1、抽象
      • 2、封装
      • 3、继承
      • 4、多态
  • >常见报错以及基本解决方法
    • 1 - PermissionError
    • 2 - FileNotFoundError
    • 3 - SyntaxError 之 invalid syntax
    • 4 - AttributeError
    • 5 - OSError
    • 6 - NameError
    • 7 - AssertionError
    • 8 - No such file or directory
    • 9 - SyntaxError 之 position argument follows keyword argument
    • 10 - IndexError
    • 11 - TypeError
    • 12 - UnboundLocalError
    • 13 - UnicodeDecodeError
    • 14 - KeyError
  • >其他好物
    • ● 一个傻瓜式构建可视化 web的 Python 神器 -- streamlit
    • ● 一行代码将Python程序转换为图形界面应用
    • ● 如何在 Win上写 Python 代码?最佳攻略来袭!
    • ● pyside2官方文档
    • ● pyecharts老版本官网
    • ● QT Creator安装网址
    • ● 640页超全Python基础教程
    • ● 《点燃我,温暖你》中的跳动爱心代码
    • ● 泊松分布
    • ● 【0基础学爬虫】爬虫基础之自动化工具 Selenium 的使用
    • ● 太极库(Taichi)
    • ● 关于 Taichi,你最想搞懂的问题都在这了!
    • ● 自从学了这个模块,我基本告别了print
    • ● python屏幕取色器(记得更改屏幕大小)

>知识点详解及一些题目练习

>知识点

>分支结构知识点

#单分支结构,由一个if组建的分支结构
#格式为
# if <判断条件> :
#    <语句块>
print("------------(单分支结构)--------------")
a = int(input("请输入一个数"))
if a % 2 == 0:
    print("该数为偶数")
print("----------------------------------------")

#二分支结构/双分支结构,由if……else组建的分支结构
#格式为
# if <判断条件>:
#    <语句块1>
# else:
#    <语句块2>
print("------------(二分支结构)--------------")
a = int(input("请输入一个数"))
if a % 2 == 0:
    print("该数为偶数")
else:
    print("该数为奇数")
print("----------------------------------------")   

#多分支结构,由if……elif……else组建的分支结构
#格式为
# if <判断条件1>:
#    <语句块1>
# elif <判断条件2>:
#    <语句块2>
# else:
#    <语句块3>
print("------------(多分支结构)--------------")
a = int(input("请输入你的年龄"))
if a < 18:
    print("您小于18岁")
elif 18 < a < 30:
    print("您大于18岁,但小于30岁")
else:
    print("您大于30岁")
print("----------------------------------------") 

#分支结构的嵌套,分支结构可以嵌套,可以包含多个分支结构
#格式为
# if <判断条件1>:
#    <语句块1>
#    if <判断条件2>:
#       <语句块2>
#    else:
#       <语句块3>
# else:
#    <语句块4>
print("-----------(分支结构嵌套)-------------")
a = int(input("请输入你的年龄"))
if a < 18:
    print("您小于18岁")
else:
    if 18 < a < 30:
        print("您大于18岁,但小于30岁")
    else:
        print("您大于30岁")
print("----------------------------------------") 

>基础标准函数学习

# min() 获取最小值函数,可以求得两数或一个列表中的最小值
print("----------min----------")
a = [1,2,3,4,5]
print("列表{}中最小数为{}".format(a,min(a) ) )

# max() 获取最大值函数,可以求得两数或一个列表中的最大值
print("----------max----------")
a = [1, 2, 3, 4, 5]
print("列表{}中最小数为{}".format(a, max(a) ) )

# sum() 求总和
print("----------sum----------")
a = [1, 2, 3, 4, 5]
print("列表数总和为{}".format(sum(a) ) )

# eval() 转换表达式,对字符串进行处理,相当于直接去除字符串的引号
print("----------eval---------")
a = "1+2+3"
b = eval(a) #eval()去除引号相当于是1+2+3=6,所以最后结果是6
print("转换后为{}".format(b) )

# len() 获取列表、字典、字符串、元组、集合的长度,不能获取数字长度
print("----------len----------")
a = [1, 2, 3, 4, 5]
print("列表长度为{}".format(len(a) ) )

# round() 保留n位小数,取四舍五入后的结果
# 注意!如果round()直接传入数值,则直接四舍五入到整数部分
print("---------round---------")
a = 1.234
print("1.234保留两位小数后是{}".format(round(a,2) ) )
b = 1.234
print("1.234直接传入round后得{}".format(round(a) ) )

# pow() 幂运算,pow(x,y)得到x的y次方
print("----------pow----------")
a = pow(2,3)
print("2的3次方为{}".format(a))

# range() 范围函数,后面可以加上一个、两个、或三个参数
# 一个参数时,表 0 ~ x-1
# 以下打印结果,我转换成列表,便于观看
print("-------range(x)--------")
a = list(range(5))
print("range(5)为{}".format(a))
# 两个参数时,表 x ~ y-1
print("------range(x,y)-------")
a = list(range(1,5))
print("range(1,5)为{}".format(a))
# 三个参数时,表 x ~ y-1,每z个取一个
print("-----range(x,y,z)------")
a = list(range(1, 5, 2))
print("range(1,5,2)为{}".format(a))

>random随机库学习

import random

#random.randint(a,b)
#randint 括号中写两个数字,表示随机a~b之间的随机【整数】
print("----------randint----------")
a = random.randint(1,3)
print("随机数为",a)

#random.choice(List)
# choice 括号中接上一个列表,表示从【列表】中随机取一个
print("----------choice----------")
List = [1,2,3,4,5]
a = random.choice(List)
print("随机数为",a)

#random.choices(List,k = n)
# choices 括号中除了列表,还可以多加一个数值,表示从【列表】中随机n次取值,最后返回一个列表
#注意!这里在设置n次取值时,是 k = n的格式!
print("----------choices----------")
List = [1,2,3,4,5]
a = random.choices(List,k = 2)
print("随机数为",a)

#random.random()
# random 括号中不需要加东西,表示随机选择0-1之间的【浮点数(小数)】
#注意!包含0,但不包含1
print("----------random----------")
a = random.random()
print("随机数为",a)

#random.uniform(a,b)
# uniform 括号中写两个数字,表示随机a~b之间的随机【浮点数】
print("----------uniform----------")
a = random.uniform(1,3)
print("随机数为",a)

#random.sample(List,n)
# sample,括号中写两个数据,一个是要随机取值的列表,一个是随机取值的个数
#注意!这里在设置随机取值的个数的时候,可以直接写数值,也可以使用 k = n的格式
print("----------sample----------")
List = [1,2,3,4,5]
a = random.sample(List,2)
print("随机数为",a)

#random.shuffle(List)
# shuffle,括号中加上一个列表,表示随机打乱列表的顺序,但有一点要注意,shuffle之后是没有返回值的!
print("----------shuffle----------")
List = [1,2,3,4,5]
a = random.shuffle(List)
print("shuffle没有返回值")

>循环学习

#普通循环
# # 循环变量i从0开始不断递增,range()里的数字代表循环执行的次数
for i in range(3):
    print(i)

# 进阶循环
# range()传入2个数字,第一个代表的是起点(不传入默认为0),第二个代表的是终点(不包含这个数)。
for i in range(1, 3):
    print(i)

#range()传入3个数字,第一个是起点,第二个是终点,第三个是步长间距。
for i in range(1, 10, 2):
    print(i)

#循环结合列表,会按照顺序一个一个的取到列表里的元素,把它放到i里面(第一次循环取到列表里的第一个元素,此时i里面就存放的列表第一个元素)
#举例:列表中的元素可以想象成一群排好队的小朋友,i是当天做值日的同学
# 第一天是第一个同学值日,所以第一次循环,i是列表中第一个元素,第二天是第二个同学值日,第二次循环,i是列表中的第二个元素
for i in [1, 2, 3, 4]:
    print(i)

for i in ['a', 'b', 'c']:
    print(i)

#循环结合字符串,规则和上面列表一模一样,字符串当中的每一个字符成员都可以按照顺序取出来
for i in "12345":
    print(i)

#break退出循环
i = 0
while i < 5:
    i += 1
    print(i)
    if i == 2:
        break


#continue跳过本轮循环开始下一次
i = 0
while i < 5:
    i += 1
    print(i)
    if i == 2:
        print("continue之前的语句可以被执行")
        continue
        print("continue之后的语句无法被执行")

>递归方法求解阶乘

def fac(n):
    if n < 2:
        return 1
    else:
        return n*fac(n-1)
def Fsum(n):
    if n == 1:
        return 2
    elif n == 0:
        return 1
    else:
        return fac(n)+Fsum(n-1)
num = int(input("请输入一个正整数"))
print(Fsum(num))

>函数方法求解阶乘

import math

a = int(input("请输入一个正整数"))
b = 

你可能感兴趣的:(python)