python3.6基础知识_python的基础知识

安装

https://www.python.org/ftp/python/3.6.3/python-3.6.3-amd64.exe

输入输出

print('text')

'hi,我是%s,我%d岁了'%('Wang',20)

print('abc','def','ghi')

inputName = input('输出信息')  inputName类型为str

注释

#

数据类型

不变对象不需声明

整数

浮点数

字符串

布尔(TrueFalse and or not运算)

空值None

变量

可变对象需声明

列表(数组)

len(list)获取长度

list[-n]获取倒数第n个

list.append('world')末尾添加

list.insert(index,'hello')指定index插入

list.pop()删除末尾  pop(index)删除index

list.sort()

元组

tuple = (1,2,3)

一旦定义不可改变

字典

dict = {'wang':1,'li':2,'qun':3}

dict['add'] = 4

'add' in dict 输出true

dict.get('add','notfound')找不到输出notfound

集合

s =set([a,b,c])print(s)

{a,b,c}

接收一个list

集合不可重复,确定,无序,互异

s.set(key)添加

s.remove(key)删除

条件

if用法

if i<5:print('Hello World')elif i>10:print('Hello World')else:print('Hello World')

循环

for循环

list =[a,b,c]for i inlist:print(i)

i依次为a,b,c

while循环

while i<5:print(i++)

i=i+1

break

continue

函数

def fun(a,b,c=3):print(a+b+c)

fun(4,5)

fun(4,5,6)

需传入2到3个参数,否则为错

默认参数必须指向固定,否则会记录上一次的结果

def fun(*number):

#可变参数,number变为数组

参数组合

顺序:必选参数,默认参数,可变参数,命名关键字参数,关键字参数

*args是可变参数,接受一个tuple, **kw是关键字参数,接受一个dict

关键字参数需要加*作为分隔符

def f1(a, b, c=0, *args, **kw):

def f2(a, b, c=0, *, d, **kw):

高级特性

切片(list,tuple)

L[m:n]左闭右开

L[-m]倒数第m个元素

L[:n]默认为0开始取

L[m:]取到最后(包含)

L[m:n:5]每隔五个取一个

迭代

对于数组 for i ,value in enumerate(list) (迭代index和value)

对于字典 for k in dict:(迭代key) for v in dict。values():(迭代value)  for k,v in dict.items():(迭代key,value)

fromcollections import Iterable

#isinstance(unknown,Iterable)

#判断是不是迭代器对象,True or False

列表生成式

[x*x for x in range(1,10) if x>4]  自动生成,{}等都可以

生成器

#[x for x in range(1,5)]变成(x for ix in range(1,5))生成器

#保存算法运算规律,需要的时候计算出来

#next(函数())即可一步一步调用

#最后报StopIteration错误

包含yield的函数是generator

从上次yield之后的语句开始执行

#通过捕获StopIteration错误拿到return值

生成器不能像函数一样执行,可以通过next()获取一个,通过for获取所有

迭代器

Iterable   for皆可

Iterator   iter(iterable)

高阶函数

可以接受函数体作为参数,与js类似

r=map(f,[1,2,3]) r=reduce(f,[1,2,3]) r=filter(f,[1,2,3])

sorted([1,2,3],key=abs,reverse=True)#数组 规则 反向

闭包

函数体作为返回值

调用时才执行

匿名函数

f=lambda x,y:x*y

装饰器

@function

def func():

pass

@修饰符,将'函数名'作为@函数参数,生成的结果代替原来的函数,并执行。(所以装饰器中必须返回'函数名')

函数__name__属性,可以获取函数名

@classmethod可传cls,@staticmethod都是静态

类和实例

__init__构造函数,可以引用类的实例传值赋属性

class Student(object):

__init__(self,a):

print(a)

A=Student('helolo world')

_开头的变量或者函数不应该访问,但是没有机制限制,__开头的不可被访问,因为对外变成了‘_类名__属性‘

可以通过内置函数给私有量设置查,改等

class Dog(Animal):#继承

type()判断类型  types模块types.FunctionType判断函数类型

instance()同上,另外还可以判断是否是继承而来的。

dir()列出方法的所有属性和方法

getattr(),setattr(),hasattr()

面向对象

__slots__=('name','year')#tuple

表示可以定义的属性(其余是不可以定义的)

针对当前实例,对子类无用

子类定义__slots__才可以有效继承父亲的

@property属性限制

class Student(object):

@property

def score(self):returnself._store

@property.setter

def score(self,value):

#限制条件

self._store=value

s=Student()

s.store=99

错误处理

try except finally

except Exception as e:

IO处理

f=open('文件名',‘r’)#读方式打开文件  二进制rb  写w或wb

str=f.read()#一次读取所有,可用数字限定最多读取个字节(readline()一行,readlines()返回行列表)

f.close()

with open() as f:

f.read()#自动保持关闭,不用close()

StringIO和BytesIO

fromio import StringIO

f=StringIO()

f.write('hello')

f.getvalue()#获取写入的

#在内存中读写。类似文本操作fromio import ByteIO

f=ByteIO()

f.write('hello'.encode('utf-8'))

f.close()

#必须关闭,防止丢失

os模块

json模块

import json

json_str="{'age':20,"score":88,"name":"Bob"}"json.loads(json_str)

#转化为json(dict)格式

:结尾的以缩进(四个空格)作为代码块

python大小写敏感

数据类型:整数浮点数(科学计数法)字符串(r''表示不转义\转义\n换行\t制表)布尔值TrueFalse

/除//地板除%取余

对数大小无限制,超出即无穷大

Unicode Utf-8

ord('中')表示获取数字表示

chr(数字)转换对应的字

isinstance(unknown,type)判断类型

pass补全格式,不做任何操作

in,not in

sys.path导入模块查找的路径

enumerate()将数组转换为索引对,用于遍历取索引

python的set

a=[1,3,5]

b=[1,2,3]

#并集,set(a).union(b)set(a) | set(b) [1,2,3,5]

#交集,set(a).intersection(b)set(a) & set(b) [3]

#差集,set(a).difference(b)set(a)-set(b) [5]

#对称差集,set(a).symmetric_difference(b)set(a) ^ set(b) [5,2]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

漫谈Linux文档属性、拥有者、群组、权限

作者&#xff1a;justmine头条号&#xff1a;大数据与云原生微信公众号&#xff1a;大数据与云原生创作不易&#xff0c;在满足创作共用版权协议的基础上可以转载&#xff0c;但请以超链接形式注明出处。为了方便阅读&#xff0c;微信公众号已按分类排版&#xff0c;后续的文章…

java foreach跳出本次循环_Java中提供三种常用的循环语句

开发工具与关键技术&#xff1a;MyEclipse 10,java作者&#xff1a;刘东标循环语句&#xff1a;满足一定条件的情况下反复执行一个操作。Java中提供三种常用的循环语句&#xff1a;1.while循环语句while先判断为真&#xff0c;再执行while循环语句&#xff0c;如果条件为假&…

数据结构--二叉树--路径 假设二叉树采用二叉链表方式存储, root指向根结点,node 指向二叉树中的一个结点, 编写函数 path,计算root到 node 之间的路径,(该路径包括root结

假设二叉树采用二叉链表方式存储&#xff0c; root指向根结点&#xff0c;node 指向二叉树中的一个结点&#xff0c; 编写函数 path&#xff0c;计算root到 node 之间的路径&#xff0c;&#xff08;该路径包括root结点和 node 结点&#xff09;。path 函数声明如下&#xff1a…

如何学习WPF技术?

本文由长沙DotNET技术社区【邹溪源】整理&#xff0c;共有7544字&#xff0c;阅读需耗时15分钟。引言在桌面开发领域&#xff0c;虽然在某些领域&#xff0c;基于electron的跨平台方案能够为我们带来某些便利&#xff0c;但是由于WPF技术能够更好的运用Direct3D带来的性能提升、…

java爬取网页数据_如何使用爬虫工具采集数据

网络爬虫是一种按照一定规则&#xff0c;自动抓取万维网数据的脚本。按照一定规则&#xff0c;指的是爬虫程序需要解析网页的dom结构&#xff0c;针对dom结构爬取自己感兴趣的数据。(图1)这就是一个网页源码的dom结构,我们需要一级一级指定抓取的标签&#xff0c;如下图:(图2)图…

二叉树-树转二叉树 使用队列,编写transfrom函数,将普通树转换成对应的二叉树。

树转二叉树 使用队列&#xff0c;编写transfrom函数&#xff0c;将普通树转换成对应的二叉树。二叉树的相关定义如下&#xff1a; typedef int DataType; typedef struct Node{DataType data;struct Node* left;struct Node* right; }BiTNode, *BiTree; 普通树节点的定义如下…

数据结构-图-邻接矩阵-试在邻接矩阵存储结构上实现图的基本操作 matrix_insert_vertex 和matrix_insert_arc-icoding

邻接矩阵 试在邻接矩阵存储结构上实现图的基本操作 matrix_insert_vertex 和matrix_insert_arc&#xff0c;相关定义如下&#xff1a; typedef int VertexType;typedef enum{DG, UDG }GraphType;typedef struct{VertexType vertex[MAX_VERTEX_NUM]; //顶点向量int arcs[MAX_V…

gRPC in ASP.NET Core 3.x - gRPC 简介(2)

前一篇&#xff1a;gRPC in ASP.NET Core 3.x - gRPC 简介&#xff08;1&#xff09;身份认证这里指的不是用户的身份认证&#xff0c;而是指多个server和client之间&#xff0c;它们如何识别出来谁是谁&#xff0c;并且能安全的进行消息传输。在身份认证这方面&#xff0c;gRP…

python实现最小二乘法的线性回归_最小二乘法求线性回归的python实现

原文&#xff1a;版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。本文链接&#xff1a;https://blog.csdn.net/qq_38003892/article/details/844951721 核心思想通过最小化方差&#xff0c;使得拟…

邻接表1 - 试在邻接表存储结构上实现图的基本操作 insert_vertex 和 insert_arc-数据结构-图-icoding

邻接表1 试在邻接表存储结构上实现图的基本操作 insert_vertex 和 insert_arc&#xff0c;相关定义如下&#xff1a; typedef int VertexType;typedef enum{DG, UDG }GraphType;typedef struct ArcNode {int adjvex;InfoPtr *info;struct ArcNode *nextarc;}ArcNode;typedef …

.NET Core开发实战(第8课:配置框架:让服务无缝适应各种环境)--学习笔记

08 | 配置框架&#xff1a;让服务无缝适应各种环境配置是应用程序发布到各种环境的必备能力&#xff0c;这一节开始详细讲解 ASP.NET Core 的配置框架配置框架的核心包有两个&#xff0c;一个抽象包&#xff0c;一个实现包Microsoft.Extensions.Configuration.AbstractionsMicr…

python循环遍历所有目录_python 遍历文件夹

一、os.walk()os.walk(top, topdownTrue, οnerrοrNone, followlinksFalse)可以得到一个三元tupple(dirpath, dirnames, filenames),第一个为起始路径&#xff0c;第二个为起始路径下的文件夹&#xff0c;第三个是起始路径下的文件。dirpath 是一个string&#xff0c;代表目录…

邻接表2 -试在邻接表存储结构上实现图的基本操作 del_vertex-数据结构-图-icoding

邻接表2 试在邻接表存储结构上实现图的基本操作 del_vertex&#xff0c;相关定义如下&#xff1a; typedef int VertexType;typedef enum{DG, UDG }GraphType;typedef struct ArcNode{int adjvex;InfoPtr *info;struct ArcNode *nextarc; }ArcNode;typedef struct VNode{Vert…

python提取文件名的5-6位_python提取文件名

首先声明本人初涉python&#xff0c;由于是自学&#xff0c;而且课余时间比较琐碎&#xff0c;所以打算分主次两条线。主的一条线是看python教程&#xff0c;但是这样实在枯燥&#xff0c;所以又有了次的一条线&#xff0c;就是写一些小程序练练手&#xff0c;只想总结下所得&a…

【译】探索更轻量的Electron替代品来托管Blazor桌面应用程序

本文翻译自 ASP.NET 项目组的 Steve Sanderson 的博客&#xff0c;发表于 2019 年 11 月 1 日。Steve Sanderson 是 Blazor 最早的创造者。这篇文章发布后还有一篇后续&#xff0c;是介绍一个在本文提到的跨平台 webview 概念的落地项目 WebWindow &#xff0c;我也会接着翻译过…