IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python基础学习 -> 正文阅读

[Python知识库]python基础学习

  • 导学
  1. python是一种语言,不是框架。
  2. 想好以后再动手,梳理思路。
  3. 易于上手,难于精通。
  4. 既有动态脚本的特性,又有面向对象的特性,非常具有自己的特点。
  5. 编译型语言(C C++),解释型语言(JS python)。
  6. 运行效率和开发效率不可兼得。更关注开发效率。
  7. python??? 爬虫、大数据与数据分析、自动化运维与自动化测试、web开发、机器学习(tensor flow)、胶水语言
  8. 基础!!!很重要
  9. 《流畅的python》
  10. 1python oj 可以刷题
  11. 先学习python? 然后数据库 然后web开发 Django Flask。
  12. 使用虚拟环境 可以多版本python共同使用。
  13. IDLE
  14. 加不加分号都可以,通过缩进控制代码格式
  • python基本数据类型
  1. 整数int??? 浮点数float(其他语言中单精度用float双精度用double),在pthon中没有单精度和双精度之分,(其他语言中整数有short int long之分),python中没有分别。?? python2中有long 类型。
  2. type(X)

    返回X的类型

  3. 乘法通过*表示? 1*1
  4. 除法通过/表示? 2/2 结果是一个float浮点型?? 2//2得到的结果是一个整型。

  • 各进制的表示与转换
  1. 0b表示二进制?? 0b10==2.
  2. 0o表示八进制??? 0o11==9.
  3. 0x表示十六进制? 0x。
  4. 进制转换? bin(x) 把x转换为二进制?? int 转换为10进制? hex转换为16进制 oct转换为八进制。
  • 布尔类型与复数
  1. bool布尔类型表示真、假。
  2. complex复数
  3. True? False开头一定要大写!!!
  4. int (True)==1? int(False)==0
  5. bool(1)==True??? bool(0)==False? bool(非0)==True
  6. bool(x)? x为空时,也表示False。
  7. None也表示False
  8. 复数x=2.4+5.6j??? x.real获取复数的实部2.4? x.imag获取复数的虚部5.6。

  • 字符串单引号与双引号
  1. 1 和'1'不同,一个是数字,一个是字符串??
  2. 引号要使用英文的
  3. 单引号和双引号的区别:表示字符串时引号成对出现 会不然出错? “let's go”? 或者是'let\'s go'? \是转义字符

  • 多行字符串
  1. 屏幕宽度有限,每行最大字符79.
  2. '''???? 可以放入多行字符'''???????? """????? xxx??????? """? ??
  3. ?\n表示回车?? 输入的\n要起作用的话 要放入print中输出

  • 转义字符
  1. 特殊的字符? 有一部分是为了表示我们无法看见的字符
  2. 有一些是表示与本身语法有冲突的字符
  3. \n 换行 \'单引号 \t横向制表符等?
  4. \r回车? \n换行不是一个概念

?

  • 原始字符串
  1. print('hello \\n word')????? hello \n word?? 用于输出文件路径等
  2. print(r'hello \n word')??????? hello \n word?? 加上r变成了原始字符串。

  • 字符串运算
  1. "hello"+"world"

    ?? 'helloword'

    "hello"*3

    ?? 'hellohellohello'

    "hello world"[0]?

    ?h

    "hello world"[-1]

    d

  1. ? -n? 代表从末尾获取字符
  2. “hello world”[0:5]

    hello

    "hello world"[0:-1]

    hello worl

    "hello world"[6:11]

    world

    “hello world”[6:]

    world

    [-4:]

  3. 后面数字大于长度时,会按照最后一个字符截取。

  • 列表
  1. list? 列表? [1,2,,3,4,5,6,'hello',True]?? 列表是有序的
  2. [[1,2],[True,False]]
  3. [1,2,3][0]?

    ?? 1

    [1,2,3][0:2]??

    [1,2]

    [1,2,3][-1:]

    3

    ?[1,2,3][0:-1]

    [1,2]

  4. 更改列表里面元素的值? [1,2,3]+[4,5]??? [1,2,3,4,5]
  5. [1,2,3]*3? [1,2,3,1,2,3,1,2,3]

?

  • 元组??? tuple
  1. (1,2,3,4)[0]?? 1?? 元组是有序的
  2. (1,2,3)+(4,5)?? (1,2,3,4,5)
  3. (1,2)*3? (1,2,1,2,1,2)
  4. 元组只有一个元素时,显示类型? type((1))? 为ing 类型,会自动识别为()运算符? 一个元素要加逗号(1,)
  5. in??

    ?3 in [1,2,3]??

    True

    not in??

    ?3 not in [1,2,3]?

    False

    len

    ? len([1,2,3])

    ?3

    max

    max([1,2,3])

    3

    min

    min([1,2,3])

    1

    max

    max('helloworld')

    w

    min

    min('helloworld')

    d

  6. 编码问题?? ASCII码?? ord('w')? 119??? ord('d')? 100

  • set集合
  1. {1,2,3,4,5,6}?? set 是无序的
  2. 1 in {1,2,3}??

    True

    1 not in {1,2,3}

    False

    len({1,2,3})

    3

    {1,2,3,4,5}-{3,4}

    {1,2,5}

    {1,2,3,4,5,6} & {3,4}

    {3,4}

    {1,2,3,4,5,6} | {3,4,7}

    {1,2,3,4,5,6,7}

  1. type(set())????? <class'set'>
  2. len(set())??? 0

?

  • dict字典
  1. 由很多key和value组成
  2. {key1:value1,key2:value2…}
  3. type({1:1,2:2,3:3})?

    ?? <class 'dict'>

    {1:1,2:2,3:3}[1]??

    ?1

    {1:1.1,1:2.1,2:3,3:4}[1]

    2.1

  1. 字典不可以有重复的key
  2. value类型可以是任何? str int float list set dict??
  3. key必须是不可变的类型? int str tuple
  4. 空的用{}表示

?

  • 变量
  1. 变量首字符不能是数字,后面可以使字母数字下划线
  2. 系统有保留关键字? and if import等
  3. 变量区分大小写,没有类型的限制

  1. int str tuple是值类型,list? set? dict是引用类型,引用类型是可变的,值类型是不可变的
  1. id 函数? 显示变量在内存中的地址
  2. list? b=[1,2,3]? b.append(4)??? print(b)? [1,2,3,4]
  3. tuple b=(1,2,3)? b.append(4)报错!!
  4. 访问元组里面的列表? a=(1,2,3,[1,2,4])?

    a[3][2]

    4

    a=(1,2,3,[1,2,['a','b','c']])

    a[3][2][1]

    'b'

  1. 元组里面的列表是可以改变的
  • 运算符号
  1. + - * /? // %(余数) **(N次方? 2**5=32)

  • 赋值运算符
  1. =? +=? *=? /=? %=? **=
  2. c=1把1赋值给变量c??? c=c+1? c+=1
  3. python中没有自增和自减运算符
  • 比较运算符
  1. 并非只有数字才能进行比较? 字母进行比较是比较他们的ASCII
  2. 字符串进行比较的时候,是每个字母单独拿出来作比较,只要第一位小总体就判定为小
  3. 列表进行关系运算的时候,也是先比较列表的第一个字符,元组也相同

  • 逻辑运算符
  1. and 表示且 同为真为真;or 有一真为真;not 相反
  2. int float类型时,0是False???? str 空字符串为False(not'0'? False)
  3. []为空被认为False?????? [1] or []? 返回[1]??
  4. ?1 and 2? 返回2??
  5. 1 or 2? 返回1
  • 成员运算符
  1. in? ;? not in
  2. 用来判断一个元素是否在一组元素里面
  3. a in [1,2,3,4,5,6]??? a在返回True? 否则返回False
  4. not in 和他们相反
  5. 可以判断? 列表元组集合
  6. 字典的成员运算,是针对key的值,只有key里面存在时,才返回true

  • 身份运算符
  1. is ; is not
  1. 最终返回布尔值
  2. 两个变量取值相同,则is返回True
  3. is 和==是有区别的,关系运算符是比较两个变量的值是否相同,身份运算符是判断内存地址是否相同,变量取值相同并不代表身份相同
  4. python里面都是对象
  5. isinstance判断类型??
  6. 对象的三个特征,id? value? type 分别对应is? == isinstance

  • 位运算符
  1. 可以对其他进制进行运算,会转化为二进制进行计算
  2. &按位与? 同一位一,否则为零
  3. | 按位或 有一为一 无一为零

  • 表达式
  1. 表达式是运算符与操作数所构成的序列
  2. 优先级!!!? 算术运算符优先
  3. 优先级or < and < not

  • 在文本文件中编写python代码
  1. 首先打开新文件,然后选择目录进行保存,保存后编写代码再进行保存,按住win+r输入cmd进入命令行,进入命令行后找到相应的py文件,输入python 文件名.py进行执行。
  2. 在哪里写代码都是可以的,只要保存成py后缀的就可以运行
  3. pycharm? vscode? sublime? 三个IDE(Integrated Development Environment)集成开发环境,初学建议利用vscode

  • vscode开发环境
  1. 按ctrl+~可以弹出命令行(开发者选项)
  2. #后面的是注释,编译器不执行
  3. python -V?? 查看python版本
  • 条件控制
  1. if else??? for??? while
  2. #单行注释???? '''?? 多行注释? '''
  3. input()获取输入
  4. if :

else:

  1. constant 常量
  2. python里面不存在常量,不存在改变值的机制
  1. 一个python文件是由多个模块构成的
  1. 定义的变量不是位于函数和类里面 pylink自动默认为常量
  2. snippet片段? 帮助快速构建代码片段
  3. pass占位语句,保证代码的完整性
  4. if:??? elif:??? elif:??? else:???
  5. python没有switch
  6. input()输入a,输入1默认1是字符串 需要a=int(a)来进行转换

  • while
  1. 计算机通过循环或者穷举的方式来解决问题
  2. while后面不应该是一个常量

  • for循环
  1. for和while不同,主要是用来遍历 循环,序列或者集合字典
  2. a=['apple','orange','banana','grape']

for x in a:

print(x)

x代表当前循环列表里面的某个元素

for循环内部还可以再嵌套循环

  1. a = ['apple','banana','juice']

for x in a :

print(x,end='')? 其中end代表输出x后结尾的格式,默认为\n

  1. a = [['apple','banana','juice'],(1,2,3)]

for x in a :

for y in x :

print(y,end='')?? 可以输出里层元素

  1. for?? else:? 当列表里面所有元素都被遍历完成以后就会执行else
  2. break语句是跳出循环? ;? continue语句是跳出本步循环,继续下一步循环
  3. 双层循环的时候break只能跳出内部循环!!!
  4. for循环中的break跳出循环仍然会执行else
  5. for x in range(0,10):

print(x)?? 输出0到9十个数字

0代表起始数字,10代表数量

  1. for x in range(0,10,2):

print(x)?? 输出0到9十个数字

0代表起始数字,10代表数量? 2代表间隔

  1. for x in range(0,10,2):

print(x,end='|')?? 输出0到9十个数字

输出间隔为|?? 间隔也可以为负数?

  1. 列表的切片 b = a[0:len(a):2] 前两个代表把a的所有元素取出来,后面的数字代表每隔多长取一个 在某些情况下可以代替for循环
  2. 会写代码非常容易,写出好代码高性能,可复用,封装性强的代码很难
  • python工程的组织结构
  1. 最顶级的组织结构是包(文件夹),第二个是模块(文件),第三个是类,函数和变量是类的特性,建议一个文件只有一个类,建议类和文件名同名。
  2. 不推荐直接把函数写在模块下。
  3. 其他语言中用dll或者jar表示包
  4. 命名空间,包和模块的名字,也是路径
  5. 包下面可以有子包
  6. python如何区分一个普通的文件夹和一个包?要在包下面加入特定的文件(__init__.py),它本身也是一个模块,可以在其中编写代码,特殊的init文件的名字是他的包名。

  • import导入模块
  1. 重复的东西,需要从其他模块引用。
  2. c7是模块名,其他模块要调用c7下面的a变量,需要导入,导入规则为:

import c7

print(c7.a)

在子包里面的时候,需要加上他的命名空间

  1. import只能导入模块,不能导入变量
  2. import t.c7 as m?? 改变命名

  • from import导入模块
  1. from t.c7 import a????????? print(a)
  2. 导入的是变量,不需要在使用的时候加入命名空间
  3. from t import c7?? print(c7.a)??
  4. 导入的是模块,所以使用的时候需要加上模块
  5. from t.c7 import *?? ???print(a)?? print(b)?? print(c)
  6. 导入模块中的多个变量
  7. __all__ = ['a','c']?? 代表使用*进行导入的时候,只导入ac两个变量

  • __init__.py的用法
  1. 引入方式:from c9 import a,b,c
  2. python 换行 在要换行的地方加入一个\
  3. 换行也可以加入括号,括号可以跨行
  4. python会自动执行__init__.py的代码
  5. 做批量导入,在__init__.py里面可以加入多个import,在其他模块里面可以import t?? print(t.sys.path)

  • 误区
  1. 包不会被重复导入,避免循环导入
  2. 一个应用程序只有一个入口文件

  • 模块内置变量
  1. dir()函数可以得到内置变量
  2. __name__
  3. __package__
  4. __doc__
  5. __file__

  • 函数
  1. round 函数用括号传递两个参数,round(a,2)保留a小数点后面两位
  2. 函数之间可以嵌套
  3. python有内置函数
  1. 命令行下help(round)可以输出相关信息
  1. 函数:功能性、隐藏细节、避免编写重复的代码
  2. 组织代码 自定义函数
  3. python使用def定义函数

def funcname(parameter_list):

pass

  1. 参数列表可以没有 、 可以使用return返回一些值,如果没有默认返回none
  2. python代码有顺序,先定义后调用,不然会报错
  3. import sys

sys.setrecursionlimit(1000000)设置最大递归层数

  1. 函数运行到return 时,函数便会运行终止
  2. 返回两个参数return a,b? a和b自动被默认为元组
  3. 利用序号访问特定变量结果的方法
  • 序列解包与链式赋值
  1. a,b,c = 1,2,3? 分别赋值??? a=b=c = 1也可
  2. 一个变量接收三个赋值时,变量为元组tuple

d = 1,2,3

a,b,c = d? 序列解包

  • 必须参数与关键字参数
  1. 必须参数:参数的最基本一种
  2. 形参,形式参数 a = add(x,y)?? x,y
  3. 实参,实际参数 a = add(1,2)? 1,2
  4. 关键字参数:c = add(y = 3,x = 2)?? 明确调用参数时,参数指向,强调了代码的可读性

  • 默认参数
  1. 建议多参数利用对象进行传递
  2. def print_files(name,gender = '男' ,age = 18)默认后面两个变量的初始值
  3. 默认参数必须放在一起,不能穿插使用

  • 可变参数
  1. def demo(*param):

print(param)

print(type(param))

demo(1,2,3,4,5)?? //若传进元组 则会变为二维元组? 要变成a = (1,2,3,4,5)?? demo(*a)

(1,2,3,4,5)? //((1,2,3,4,5),)

<class 'tuple'>

  1. def demo(param):

pass

demo((1,2,3,4,5))

和上述相同,只是两种方法

  1. 可变参数可以和必须参数一起使用,但是必须参数必须放在前面
  2. def? demo(param1 , param2 = 2,*param):

  • 关键字可变参数
  1. 绝大多数使用for循环来遍历可变参数
  2. def? squsun(*param):

sum = 0

for i in param:

sum +=i*i

print(sum)

  1. squsun(1,2,3)

  1. def city_temp(**param):

print(param)

print(type(parm))

city_temp(bj = '32c' , xm = '23c')

{'bj' : '32c' , 'xm' :'23c'}?? 生成了字典

当单一打印的时候 for c in param:?? printc? 打印出为键bj xm

打印键和值的时候? for key,value in param.items:????? print(key,':',value)

  1. a = {'bj' : '32c' , 'xm' : '23c'}

city_temp(**a)

  1. city_temp()

打印出的是{}?? //无法进入for循环? 需要在for循环前加入print(param)

  1. 改变形参? 变为def city_temp (param1 , **param):

传入参数为? city_temp (1)

打印结果为? print(param1)?? print(param)

?1??????????????????????? {}

  • 变量作用域
  1. 函数外部定义的变量和函数内部定义的变量不同,函数内部的作用域仅仅局限于函数内部
  2. 函数外部变量的作用域叫全局变量? 函数内部的变量是局部变量? 函数外部的变量可以在函数内部使用
  3. 局部变量是一个相对概念!!
  4. python里面没有块级作用域
  5. ?优先使用局部变量

  • global关键字
  1. 全局变量global

?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-09 11:42:11  更:2021-09-09 11:44:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 13:51:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码