Python 基本语法

____tz_zs笔记

着重提醒 :Python 编码规范(Google)

补充:

Python内置函数详解——总结篇

什么是Name_mangling以及python的下划线约定

 

★ Python语言的基本语法

 

缩进

1个tab键或4个空格

表示代码的层次关系

是Python语言中表示程序框架的唯一手段

注释

开发者加入的说明信息,不被执行

单行注释以#开头

多行注释以三引号开始和结束

“”” 

xxxxx

yyyyyyyyyyyyy

“””

常量与变量

常量

程序执行过程中,值不发生改变的元素

程序中多次使用的值可作为常量,便于更改及维护

变量

程序执行过程中,值发生改变或需要改变的元素

命名

为程序元素关联一个名称,要保证唯一性

规则:

大小写字母、数字、下划线

不能以数字开头

大小写敏感

不能和保留字相同

Python 3.x 保留字

查看方式:

import keyword

print(keyword.kwlist)

表达式

程序中产生新数据值或执行操作的一行代码

输入

input() 获得用户的输入并以字符串的形式保存

输出

print() 输出信息

 

 

★ 数值类型

 

Python中常用的数值类型

整数类型 与数学中的整数概念一致如:100, -250

浮点数类型 带有小数点及小数的数值如:0.0, -3.14, 3.4e-3 (科学计数法)

类型转换

整数->浮点数 float(4) -> 4.0

浮点数->整数 int(3.14)->3,只会保留整数部分

字符串->整数,字符串->浮点数 int(‘3’)->3, float(‘3.14’)->3.14

如何判断类型?type() 函数

 

★ 字符串

 

文本在程序中通过字符串(string)类型来表示。

用两个双引号或单引号括起来表示一个字符串。

索引/访问方式

正向索引

列表 [a,b,c,d] 中的元素分别为

0,1,2,3

反向索引

列表 [a,b,c,d] 中的元素分别为

-4.-3.-2,-1

区间索引

[A:B]

从位置A到B的部分字符串,不包含位置B

 

字符串分割 str.split()

 

对于字符串的拼接,特别是循环的拼接中,建议避免使用+和+=,这样会创建很多临时对象

 

  • 建议使用:s = ''.join(list对象)

 

字符串格式化输出 python 占位符(百分号方式、Format方式)

使用{}占位

 

  • str.format()
  • 如:‘{}公斤, {}厘米’.format(70, 175)

重复输出时可以使用数字标记顺序

 

  • ‘{0}公斤, {1}厘米, {0}公斤’.format(70, 175)

 

if 'hti' in 'afahaehtin':
    pass

 

str. isnumeric()  #检测字符串是否只由数字组成

str. isalpha() #检测字符串是否只由字母组成

str.islower() #检测字符串中所有的字母是否都为小写

str.isupper()  #检测字符串中所有的字母是否都为大写

 

★ 分支语句 if else

控制程序的语句

 

根据判断条件选择程序的执行路径

使用方法:

if <条件1>:

<语句块1>

elif<条件2>:

<语句块2>

else:

<语句块N>

 

★ 循环语句 while

 

控制程序的语句,根据判断条件确定一段程序是否再次执行一次或者多次

使用方法:

while (<条件>):

<语句块1>

<语句块2>

当条件为真(True)时,执行语句块1;为假(False)时,退出循环

 

 

★ for 循环

 

使用for语句可以循环遍历整个序列的内容,循环变量x在每次循环时,被赋值成对应的元素内容

for <x > in <list1 >:

<body>

与while循环的区别

for循环的次数固定,即所遍历的序列长度

while为无限循环

range(n) 返回一个可迭代的对象

list(range(n)) 将迭代类型转换为列表类型

 

 

★ 循环的终止

 

break 语句终止整个循环

continue 语句只终止本次循环,而不终止整个循环的执行

 

★ 函数

将特定功能代码编写在一个函数里,便于阅读和复用,是对一组表达特定功能表达式的封装,使程序模块化

Python内置函数

input(), print(), eval()…

函数的定义

def<函数名>(<参数列表>):

<函数体>

return <返回值列表>

函数的调用过程

调用程序在调用函数处暂停执行

调用时将参数(实参)赋值给函数的参数(形参)

执行函数体

返回函数结果,回到调用处继续执行

函数通过参数与调用程序传递信息

变量的作用范围

局部,函数内的变量作用范围只在函数内

全局,函数外的变量,在所有函数中都能使用,global

函数的形参只接收实参的值,给形参赋值并不影响实参

 

★ lambda函数

是特殊函数—匿名函数,用于简单的、能够在一行内表示的函数,计算结果为返回值

使用方法:

<函数名> = lambda <参数列表>: <表达式>

 

★ 递归

函数定义中调用函数自身的方式称为递归

递归能够非常简洁地解决重要问题。每次函数调用时,函数参数会临时存储,相互没有影响。达到终止条件时,各函数逐层结束运算,返回计算结果。

要注意终止条件的构建,否则递归无法正常返回结果

 

★ 异常处理机制

 

  • 广义上的错误分为错误和异常
  • 错误指的是可以人为避免
  • 异常是指在语法逻辑正确的前提下,出现的问题
  • 在python里,异常是一个类,可以处理和使用

AssertError 断言语句(assert)失败
AttributeError 尝试访问未知的对象属性
EOFError 用户输入文件末尾标志EOF(Ctrl+d)
FloatingPointError 浮点计算错误
GeneratorExit generator.close()方法被调用的时候
ImportError 导入模块失败的时候
IndexError 索引超出序列的范围
KeyError 字典中查找一个不存在的关键字
KeyboardInterrupt 用户输入中断键(Ctrl+c)
MemoryError 内存溢出(可通过删除对象释放内存)
NameError 尝试访问一个不存在的变量
NotImplementedError 尚未实现的方法
OSError 操作系统产生的异常(例如打开一个不存在的文件)
OverflowError 数值运算超出最大限制
ReferenceError 弱引用(weak reference)试图访问一个已经被垃圾回收机制回收了的对象
RuntimeError 一般的运行时错误
StopIteration 迭代器没有更多的值
SyntaxError Python的语法错误
IndentationError 缩进错误
TabError Tab和空格混合使用
SystemError Python编译器系统错误
SystemExit Python编译器进程被关闭
TypeError 不同类型间的无效操作
UnboundLocalError 访问一个未初始化的本地变量(NameError的子类)
UnicodeError Unicode相关的错误(ValueError的子类)
UnicodeEncodeError Unicode编码时的错误(UnicodeError的子类)
UnicodeDecodeError Unicode解码时的错误(UnicodeError的子类)
UnicodeTranslateError Unicode转换时的错误(UnicodeError的子类)
ValueError 传入无效的参数
ZeroDivisionError 除数为零

语法

    try:
      尝试实现某个操作,
      如果没出现异常,任务就可以完成
      如果出现异常,将异常从当前代码块扔出去尝试解决异常

  except 异常类型1:
      解决方案1:用于尝试在此处处理异常解决问题

  except 异常类型2:
      解决方案2:用于尝试在此处处理异常解决问题

  except (异常类型1,异常类型2...)
      解决方案:针对多个异常使用相同的处理方式

  excpet:
      解决方案:所有异常的解决方案

  else:
      如果没有出现任何异常,将会执行此处代码

  finally:
      管你有没有异常都要执行的代码

流程

  • 执行try下面的语句
  • 如果出现异常,则在except语句里查找对应异常病进行处理
  • 如果没有出现异常,则执行else语句内容
  • 最后,不管是否出现异常,都要执行finally语句

除except(最少一个)以外,else和finally可选

当某些情况,用户希望自己引发一个异常的时候,可以使用 raise 关键字来引发异常

自定义异常必须是系统异常的子类

 

★ 列表(list)

列表(list)是有序的元素集合,列表中每个元素类型可以不同。

可通过索引访问单个元素,如 list[2], list[-1]

也可通过区间索引访问子列表内容(左闭右开),如 list[2:5], list[-3:],

list1 + list2 #合并(连接)两个列表

list1 *n  #重复n次列表内容

len(list1) #返回列表长度(元素个数)

x in list1 #检查元素是否在列表中

 

list1.append(x) #将x添加到列表末尾

list1.sort() #对列表元素排序

list1.reverse() #将列表元素逆序

list1.index(x) #返回第一次出现元素x的索引值

list1.insert(i, x) #在位置i处插入新元素x

list1.count(x) #返回元素x在列表中的数量

list1.remove(x) #删除列表中第一次出现的元素x

list1.pop(i) #取出列表中i位置上的元素,并将其删除

 

★ 元组(tuple)

元组(tuple)是特殊的序列类型,使用逗号和圆括号来表示,如(‘red’, ‘blue’, ‘green’), (2, 4, 6)。元组一旦被创建就不能修改,使得代码更安全,访问方式和列表相同,一般用于表达固定数据项、函数多返回值等情况。

特点

元组中的元素可以是不同类型的

元组中各元素存在先后关系,可通过索引访问元组中元素

 

 

★ 字典(dict)

  • 字典类型(dict)是“键--值”数据项的组合,每个元素是一个键值对。如:身份证号(键)--个人信息(值)
  • 字典类型的数据是无序的,字典类型数据通过映射查找数据项。
  • 映射:通过任意键查找集合中的值的过程
  • 字典类型以键为索引,一个键对应一个值

增加一项:d[key] = value

访问:d[key]

删除某项:del d[key]

key是否在字典中: key in d

遍历所有的key:

for key in d.keys():

    print(key)

 

遍历所有的value:

for value in d.values():

    print(value)

遍历所有的数据项:

for item in d.items():

    print(items)  # 输出的是元组格式

# 或者

for k,v in d.items():

    print(k,"----",v)

 

★ 集合 set

Python 中的集合(set)类型同数学中的集合概念一致,即包含0或多个数据项的无序组合

集合中的元素不可重复

集合是无序组合,没有索引和位置的概念

set() 函数用于集合的生成,返回结果是一个无重复且排序任意的集合

集合通常用于表示成员间的关系、元素去重等

s -t或s.difference(t) 返回在集合s中但不在t中的元素

s & t 或s.intersection(t) 返回同时在集合s和t中的元素

s | t 或s.union(t) 返回集合s和t中的所有元素

s^t或s.symmetric_difference(t) 返回集合s和t中的元素,但不包括同时在其中的元素

 

★ 内置函数 open() 读写文件

python 内置函数 open() 用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。

1. 打开文件

建立文件与程序的关联

open(filename, mode)

filename:一个包含了你要访问的文件名称的字符串值(包括路径)

mode: 打开文件的模式:只读,写入,追加等。默认为只读(r)

  • r 只读,文件不存在则报错
  • w 只写,文件不存在则自动创建
  • a 在文件末尾附加
  • r+ 读写

2. 操作文件

写入操作:从计算机内存向文件写入数据

  • write()  将文本数据写入文件中
  • writelines()  将字符串列表写入文件中

读取操作:从文件中读取数据到计算机内存中

  • read() 返回值为包含整个文件内容的一个字符串
  • readline() 返回值为文件下一行内容的字符串
  • readlines() 返回值为整个文件内容的列表,每项是以换行符为结尾的一行字符串

3. 关闭文件

终止程序与文件的关联

f.close()

 

★ 数值类型

Python中常用的数值类型

整数类型 与数学中的整数概念一致如:100, -250

浮点数类型 带有小数点及小数的数值如:0.0, -3.14, 3.4e-3 (科学计数法)

类型转换

整数->浮点数 float(4) -> 4.0

浮点数->整数 int(3.14)->3,只会保留整数部分

字符串->整数,字符串->浮点数 int(‘3’)->3, float(‘3.14’)->3.14

如何判断类型?type() 函数

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值