Python语法基础

数据对象和组织

对现实世界实体和概念的抽象

简单类型(表示):整数—int、浮点数—float、复数—complex、逻辑值—bool、字符串—str

容器类型(组织):列表—list、元组—tuple、集合—set、字典—dict

数据类型之间大都可以转换

赋值和控制流

对现实世界处理和过程的抽象

运算语句(处理与暂存):表达式计算、函数调用、赋值

控制流语句(组织语句描述过程):循环、条件分支、顺序

定义语句也用来组织语句,描述一个包含一系列处理过程的计算单元:函数定义、、类定义

python数据类型

整数int:不受大小限制

浮点数float:受到17位有效数字的限制

整数与浮点数有常见的运算包括加(+)、减(-)、乘(*)、除(/)、整除(//)、求余(%)、指数幂等

一些常用数学函数在math模块中

import math

a=math.sqrt(4)

#a=2

复数:python内置对复数的计算

支持所有常见的复数计算

对复数处理的数学函数在模块cmath中

import cmath

a=cmath.sqrt(1+2j)

#a的值为复数1+2i开根号

逻辑值(bool):逻辑值仅包括True/False两个

配合if/while等语句做条件判断

其他数据类型可以转化为逻辑值,如0与非0等

bool(0)#False

bool(999)#True

字符串:python中字符串不能修改只能产生新的字符串

用单引号和双引号都可以表示字符串

多行字符串用三个连续的单引号表示

特殊字符用转移符号""表示

字符串基本操作:连接(+)、复制(*)、长度(len)、[start:end:step]用来切片(提取一部分)

高级操作:分割(split)、合并(join)、大小写相关(upper/lower/swapcase)、替换字符(replace)等等

>>> 'a b c d'.split(' ')

['a', 'b', 'c', 'd']

>>> 'abc'.upper()

'ABC'

列表和元组

python中有几种类型是一系列元素组成的序列,以整数作为索引

字符串str就是一种同类元素的序列

列表list和元组tuple则可以容纳不同类型的元素,构成序列

元组是不能更新的序列(字符串也是)

列表则可以删除、添加、替换、重排序列中的元素

image

创建列表:[]或者list()

创建元组:()或者tuple()

用索引[n]获取元素(列表可变)

+:连接列表/元组

*:复制n次,生成新列表/元组

len():元素个数

in:某个元素是否存在

[start:end:step]:切片

方法名称

使用例子

说明

append

alist.append(item)

列表末尾添加元素

insert

alist.insert(i,item)

列表中i位置插入元素

pop

alist,pop()

删除最后一个元素

sort

alsit.sort()

将表中元素排序

reverse

alist.reverse()

将列表元素反向排序

del

del.alist[i]

删除第i个元素

indx

alist.index(item)

找到item的首次出现位置

count

alsit.count(item)

返回item在列表出现的次数

remove

alist.remove(item)

将item的首次出现删除

集合set:集合是不重复元素的无序组合

用set()创建空集

用set()从其他序列转化生成集合

集合的常见操作:

in:判断元素是否属于集合、

|,union():并集、

&,intersection():交集

-,difference():差集

^,symmetric_difference():异或

<=,=,>:子集,真子集,超集,真超集

字典dict:

字典是通过键值key来索引元素value,而不是像列表是通过连续的整数来索引

字典是可变类型

字典中元素value没有顺序,可以是任意类型

字典中的key可以是不可变类型(数值/字符串/元组)

python变量机制

引用数据对象

赋值语句a=0,实际上是创建了名为a的变量,然后指向数据对象“0”

所以变量可以随时指向任何一个数据对象,如True,1.02等(这和静态语言完全不同)

变量的类型随着指向的数据对象类型改变而改变。

可变类型的变量引用情况

由变量的引用特性,可变类型的变量操作需要注意的是,多个变量通过赋值引用同一个可变类型对象时,通过任何一个变量改变了可变类型,其他变量也看到了改变

常用的连续序列生成器:range函数

range(n):从0到n-1的序列

range(start,end):从start到end-1的序列

range(start,end,step)

range函数返回range类型的对象,可以直接当作序列使用,也可以转换为list或者tuple等容器类型

建立大型数据结构

嵌套列表:列表的元素是一些列表,可以通过alsit[i][j]来索引

字典元素可以是任意类型,所以也可以是字典

字典的键值可以是任意不可变类型。

>>> alist=[[1,2,3],[True,'ab']]

>>> alist[0][2]

3

>>> adict={'a':['1','2'],'b':[True,'sun']}

>>> adict['b'][0]

True

输入和输出:input/print函数

input(prompt):显示提示信息prompt,输入内容以字符串形式返回

print(v1,v2,v3,...):打印各变量的值输出,可以带参数end(结尾)和sep(字符串之间)

格式化字符串:'%d %s' % (v1,v2)

运算语句:表达式、函数调用、赋值

各类型的数据对象,可以通过各种运算组织成复杂的表达式

调用函数或对象,也可以返回数据,所有可调用的事物称为callable(调用函数或对象,需要在其名称后加圆括号,有参数,写在括号里,不加圆括号的函数或对象仅表示自己,而不是调用)

将表达式或调用返回值传递给变量进行引用,称为赋值

控制流语句

条件if

if :

elif :#可多个elif

else:#只能一个

while循环

while :

break #跳出循环

continue #略过余下循环语句

else: #条件不满足推出循环,执行下面代码

for循环

for in :

break #跳出循环

continue #略过余下循环语句

else: #迭代完毕则执行下面语句

推导式

可以用来生成列表、字典、集合的语句

[ for in if ]

{: for in if }

{ for in if }

生成式推导式

与推导式一样语法(但是用的是圆括号)

( for in if )

返回一个生成器对象,也是可迭代对象,但不会立即产生全部元素,仅在要用到元素的时候才生成,可以极大节省内存

例外处理Exception Handing

代码运行可能出现的错误

语法错误:Syntax Error

除以0错误:ZeroDivionError

列表下标越界:IndexError

类型错误:TypeError

错误会引起一些不必要的麻烦,如果希望掌控意外错误,就需要在可能出错的地方设置陷阱捕捉错误,引入try,except方式

try: #若出错,则执行except后的语句

except: #处理错误代码

else: #没有出错执行下面的代码

finally: #无论出错否,都执行的代码

函数function

# def语句:

def ():

return

# 调用函数:

()# 无返回值

v=()# 返回值赋值给变量v

定义函数的参数:固定参数/可变参数

定义函数时,参数可以有两种;一种是参数表中写明了参数名key的参数,固定了顺序和数量

def func(key1,key2,key3=value3....):

一种是定义时还不知道会有多少参数传入的可变参数

def func1(*args): #不带key的多个参数

def func2(**kwargs): #带key=val形式的多个参数

调用函数的参数:位置参数/关键字参数

调用函数时,可以传进两种参数;一种是没有名字的位置参数(会按前后顺序对应),一种是指定了key值的关键字参数

如果混用,位置参数必须在关键字参数前

面向对象:类的定义与调用

类用来实现抽象数据类型ADT,封装实体的属性和行为

#定义类

class :

def __init__(self,):

def (self,)

#调用类

obj=()

#返回一个对象实例,类方法中的self指这个对象实例

类定义中的特殊方法

在类定义中实现一些特殊方法,可以方便的使用一些python内置操作(所有特殊方法以两个下划线开始结束)

__str__(self): 自动转化为字符串

__add__(self,other): 使用+操作符

__mul__(self,other): 使用*操作符

__eq__(self,other): 使用==操作符

类的继承机制

如果有两个类具有“一般-特殊”的逻辑关系,那么特殊类就可以作为一般类的“子类”来定义,从“继承”属性和方法

class ():#可以继承多个父类

def (self,...):

子类对象可以调用父类方法,除非这个方法在子类中重新定义了

python创建和控制的实体称为_Python语法基础相关推荐

  1. python创建和控制的实体称为_Python eds包_程序模块 - PyPI - Python中文网

    事实 事实在事实全局部分下定义:facts:-name:factschema:-{name:day_key,type:INTEGER,required:Yes}-{name:time_key,type ...

  2. python创建和控制的实体称为_python学习第三天

    今天学习内容有: Python基本数据类型: Int  è  整数,主要用来来进行数学运算 Str  è  字符串,可以保存少量数据并进行相应的操作 Bool è  判断真假,True,False L ...

  3. python基本语句及其意思_Python语法基础(1),一

    一.Python的对象模型 对象是Python语言中最基本的概率,在Python中处理的一切都是对象.Python中许多内置对象可提供编程者使用, 内置对象可直接使用,如数字.字符串.列表 .del等 ...

  4. python中一切内容都可以称为_创业基础答案黑龙江大学

    [单选题]成人麻醉前什么时间禁食水最合适 A. 禁食14h,禁水6h B. 禁食12h,禁水4h C. 禁食10h,禁水2h D. 禁食8h,禁水1h E. 禁食6h,禁水30min [多选题]木材的 ...

  5. python爬虫本科容易找工作吗_python爬虫基础学完了,我真的能找到一份工作吗?...

    1.能不能找到工作我觉得取决于你技术掌握的程度. 2.无论在什么领域,只要你技术到家,都不用愁找不到工作. 3.多数人问他们转行能不能找到工作,是想知道这个岗位需要的人多不多,在爬虫这个领域,从事这方 ...

  6. python猜数字游戏、在程序中预设一个_python 语法基础练习题

    python 语法基础练习题 1. 分别解释"=","==","+="的含义(口述) 2.两个变量值的关系?(口述) n1 = 123456 ...

  7. python创建提示用户输入查询条件_python流程控制练习

    ''' if条件 ''' 示例 sex= 'female' age=19 is_beautiful=True is_successful=True height=1.70 if sex =='fema ...

  8. python创建字典和包的区别_python之路—模块和包

    一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编 ...

  9. python创建person类用printinfo方法_Python学习期刊Day11类和对象(2),日记,与,下

    今天是2020年2月20日,晴,6~14℃ 一.继承 继承是一种创建新类的方式.新建类将获得原有类的所有属性和方法.原有的类称为父类(超类),新建的类称为子类. Python中继承的方式如下: ''' ...

最新文章

  1. Android 学习笔记
  2. html css鼠标手型效果
  3. IT围城,你是想挤进来还是想离开
  4. tomcat(5)servlet容器
  5. 前端学习(2175):认识路由文件的懒加载
  6. axure怎么做5秒倒计时_罗胖60秒:怎么做一个课程?
  7. 每日小记 2017.2.14
  8. ES6新特性_ES6中Map的介绍与API---JavaScript_ECMAScript_ES6-ES11新特性工作笔记032
  9. 如何注册申请 Google AdSense
  10. 【转】Pro Android学习笔记(二六):用户界面和控制(14):RelativeLayout
  11. 30.卷1(套接字联网API)---客户/服务器程序设计规范
  12. python from import 和 import 区别_python import和from import的区别
  13. 大数据时代:七种常见的数据挖掘方法
  14. Laszlo 和 LZX 的 一些概念
  15. tryhackme--Overpass 2 - Hacked
  16. canvas 画一幅画
  17. NFS共享服务搭建详细流程
  18. linux实训项目——飞鸽(一)
  19. Python每日bug定时发送飞书群
  20. 41 ItemsWidget之QListWidget

热门文章

  1. css outline color,css outline-color属性怎么用
  2. matlab波形振幅,MATLAB正交振幅调制解调仿真分析(一)
  3. D-query SPOJ - DQUERY (莫队算法裸题)
  4. java课程之团队开发第一阶段评论
  5. Java内存模型解析
  6. linux系统服务器可能被攻击的几种攻击方式
  7. jQuery lazyload插件详解和问题解答
  8. ###《Effective STL》--Chapter2
  9. 对线程与进程的区别以及对多线程并发的理解
  10. C++类的内存地址存放问题