Python编程快速上手

2021-05-10  本文已影响0人  八步里

Python基础

字符串的复制和连接

代码注释:

#可以注释掉程序

len()

Python len() 方法返回对象(字符、列表、元组等)长度或项目个数。
语法:len(变量名)

Python规定字符串是文本而不是数

可用str()和int()或者float()对两者进行转化

课后:round(float,precision)可以对浮点数指定精确位进行五舍六入(未指定precision时则是默认是精确到整数位)


控制流

name = ' '
while not name:
···
···
···
>在作为控制流的判断条件时,0,0.0,‘  ’,被认为是False,其他是Ture

range(startname,lastname(不应被包括在内),lap(可正可负))

标准库包括着一些包含一组相关功能的函数(内建函数)的模块:
1、先用 import关键字 模块名称 导入
2、再用 模块名称.内建函数() 使用

import sys
if True:
sys.exit()

函数

格式:

def 函数名(形参/变元):
(缩进)函数内容/函数体不包括花括号,不包括返回值的类型预设

None值

None值表示没有值。

用途一:在所有没有return语句或者仅有return关键字的函数定义后面自动加上,用于返回None。

关键字参数

关键字参数就是在函数调用时凭借着所给的关键字来给函数中的特定变量赋值,因此可以再给变元赋值时可以不需要按顺序赋值。
例如printf函数中有end和sep的关键字参数可选择,分别控制打印的内容的结尾和间隔值。

#可写函数说明
def printinfo( name, age ):
   "打印任何传入的字符串"
   print ("名字: ", name)
   print ("年龄: ", age)
   return
 
#调用printinfo函数
printinfo( age=50, name="runoob" )

局部和全局作用域

局部变量和全局变量可以同一个名称,但其有覆盖机制。使得在一个函数内部要么总是局部变量,要么总是全局变量。但在一个函数中也可以借用global来声明此变量就是全局变量,并可以对其进行修改

异常处理

异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
一般情况下,在Python无法正常处理程序时就会发生一个异常。
异常是Python对象,表示一个错误。
当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

异常类型:

BaseException
所有异常的基类
SystemExit
解释器请求退出
KeyboardInterrupt
用户中断执行(通常是输入^C)
Exception
常规错误的基类
StopIteration
迭代器没有更多的值
GeneratorExit
生成器(generator)发生异常来通知退出
StandardError
所有的内建标准异常的基类
ArithmeticError
所有数值计算错误的基类
FloatingPointError
浮点计算错误
OverflowError
数值运算超出最大限制
ZeroDivisionError
除(或取模)零 (所有数据类型)
AssertionError
断言语句失败
AttributeError
对象没有这个属性
EOFError
没有内建输入,到达EOF 标记
EnvironmentError
操作系统错误的基类
IOError
输入/输出操作失败
OSError
操作系统错误
WindowsError
系统调用失败
ImportError
导入模块/对象失败
LookupError
无效数据查询的基类
IndexError
序列中没有此索引(index)
KeyError
映射中没有这个键
MemoryError
内存溢出错误(对于Python 解释器不是致命的)
NameError
未声明/初始化对象 (没有属性)
UnboundLocalError
访问未初始化的本地变量
ReferenceError
弱引用(Weak reference)试图访问已经垃圾回收了的对象
RuntimeError
一般的运行时错误
NotImplementedError
尚未实现的方法
SyntaxError
Python 语法错误
IndentationError
缩进错误
TabError
Tab 和空格混用
SystemError
一般的解释器系统错误
TypeError
对类型无效的操作
ValueError
传入无效的参数
UnicodeError
Unicode 相关的错误
UnicodeDecodeError
Unicode 解码时的错误
UnicodeEncodeError
Unicode 编码时错误
UnicodeTranslateError
Unicode 转换时错误
Warning
警告的基类
DeprecationWarning
关于被弃用的特征的警告
FutureWarning
关于构造将来语义会有改变的警告
OverflowWarning
旧的关于自动提升为长整型(long)的警告
PendingDeprecationWarning
关于特性将会被废弃的警告
RuntimeWarning
可疑的运行时行为(runtime behavior)的警告
SyntaxWarning
可疑的语法的警告
UserWarning
用户代码生成的警告
异常语法:

try:
<语句>        #运行别的代码
except <名字>:
<语句>        #如果在try部份引发了'name'异常
except <名字>,<数据>:
<语句>        #如果引发了'name'异常,获得附加的数据
else:
<语句>        #如果没有异常发生

列表

类似于C语言中的数组,列表变量存储着一个列表内容的引用(整个列表的地址),在作为函数调用的参数时应十分重视,引用可以修改到原值。

列表操作:

  1. 正负值下标:负值下表表示从倒数开始的第N个内容。
  2. 切片获取子列表:变量名[开始索引:结束索引(不包括)]
    特别的:
    可以使用单一侧或者无索引值来进行切片
>>>cat = ['a','b','c','d']
>>>cat[3:]
['d']
>>>cat[:2]
['a','b']
>>>cat[:]
cat = ['a','b','c','d']
  1. +课进行列表的链接,*了进行列表的复制。
  2. del 列表变量名[索引值]利用del语句删除列表中对应索引值的内容,后面的所有值都自动向前移动一个索引值。
    列表内容存在性查找:
>>>'cat' in ['cat','dog']
Ture

列表的多重赋值技巧

>>>cat = ['fat','thin','medium']
>>>cat1,cat2,cat3 = cat

方法和函数类似,但其只是调用在一个值上,每种数据类型都有他自己的一套操作方法。
比如列表类型中的index()方法:

>>>cat = ['fat','thin','medium']
>>>cat.index('fat')
0
  1. 被排序的列表中不能同时存在数字和字符串
  2. 对字符串值进行排序的时候是按照ASCII字符顺序,若按照普通的字典顺序排序是可以:cat.sort(key = str.lower),这将导致sort方法将列表中所有的表项的首字符当成小写来排序而实际未改变列表中的值

元组数据类型

元组数据类型跟列表类似,但由()非[]包裹输入而且数据不可变(使用元组数据类型的代码比使用列表数据类型的快)
tuple()可以将列表数据转成元组数据,list()作用相反。

字典和结构化数据

字典像列表一样是许多值的集合,但和列表不同的是:

  1. 字典输入时用{},而且字典的索引不像字典的索引一样只能用整数,可用整型、浮点型、字符串、元组。
  2. 字典的索引叫做键,字典的索引和其关联的值成为键值对
  3. 键值对的顺序在判断字典是否相同时并不重要,而列表的表项顺序则十分重要,因为列表的索引值时自0顺序增加的。

字典操作方法

keys()\values()\items()三个方法应用于字典上时将返回元组,分别对应与字典的键、值、键值对
作用:可以用in、not in和以上的方法检查键、值或者键值对是否存在于字典中。

不用检查是否存在某键就可以直接应用,若键不存在时则返回第二参数

>>>cat = {'cat1':'1','cat2':'2'}
>>>'I have ' + str(cat.get('cat3',0)) + 'cat3s'
I have 0 cat3s

不用检查是否存在某键就可以直接应用,若键不存在时则填进键值对并值,反之不对原字典进行任何操作

>>>cat = {'cat1':'1','cat2':'2'}
>>>cat.setdefault('cat3':'3')
'3'`不存在该键时填完后返回值`
>>>cat
{'cat1':'1','cat2':'2','cat3':'3'}
>>>cat.setdefault('cat3':'4')
'3'`存在该键时则不改变原有的键值对`
>>>cat
{'cat1':'1','cat2':'2','cat3':'3'}

字符串

  1. 用'字符串'或者"字符串"都可以表示字符串,选择合适的表示可以避免出现混乱
  2. 但如果在'和"同时出现的字符串中我们则需要用转义字符来避免出现歧义
  3. 若字符串中出现\而不想让其以转义字符的身份存在时可以在字符串前面添加r来表示该字符串是原始字符串(正则表达式字符串)
  4. 三重引号的多行字符串可以令三重引号中的所有引号、制表符或换行都被认为是字符串的一部分
  5. 用"""注释内容"""可进行多行注释(#进行单行注释)
  6. 字符串也可以像列表一样用下表(正负)和切片(不、左、右切)和in和not in(返回布尔值)

字符串方法

判断应用的字符串是否是以该方法传入的字符串开始或者结束的

调用join方法的字符串将会被插入到列表参数中的每个字符串表项中间。split()方法所做的是却恰恰相反,他针对一个一个字符串以字符串参数为间隔进行切割分离返回一个字符串列表

rjust()\ljust()\center()三个方法分别是返回调用它们的字符串的被填充第二参数处于右、左、中间的第一参数定额大小的填充版本,若无第二参数的话则会默认用空格进行填充

strip()\rstrip()\lstrip()默认删除全部、右、左边的空白字符,并且strip()方法可以指定字符串参数将指定的全部字符删除。

pyperclip模块的copy()\paste()方法分别可以向计算机的剪贴板发送或接受文本。(可用于大量文本的自动化转换)

读写文件

  • 文件属性:文件名和文件路径(Windows系统上为\充当级别(路径)分隔符,在OS X和Linux系统中用/)文件夹名称和文件名在Windows和OS X上是不分大小的,但在Linux上是区分大小的
  • 当前工作目录(cwd):导入OS模块后调用os.getcwd()方法可以获得当前文件的工作路径的字符串,并且可以利用os.chdir()方法来改变它参数为目的路径
  • 基于相对路径的目录操作:.(点)用作工作目录是指当前文件的所在目录..(点点)用作表示当前工作目录的父文件夹目录
  • os.makedirs():os.makedirs()函数可以用于创建新的文件夹
>>>import os
>>os.makedirs('c:\\laji\\nvpiao\\laiji')

形成一个文件层次结构

os.path()模块包含了许多与文件文件名和文件路径有关的函数

  • os.path.join() 用于拼接作为参数的字符串
import os
>>>print("1:",os.path.join('aaaa','/bbbb','ccccc.txt'))
>>>print("2:",os.path.join('/aaaa','/bbbb','/ccccc.txt'))
>>>print("3:",os.path.join('aaaa','./bbb','ccccc.txt'))
1: /bbbb\ccccc.txt
2: /ccccc.txt
3: aaaa\./bbb\ccccc.txt
  1. 会从第一个以”/”开头的参数开始拼接,之前的参数全部丢弃。
    以上一种情况为先。
  2. 在上一种情况确保情况下,若出现”./”开头的参数,会从”./”开头的参数的上一个参数开始拼接。
  • 处理绝对路径和相对路径
  1. os.path.abspath(path)将返回参数的绝对路劲的字符串(相对路径转为绝对路径)
  2. os.path.isabs(path)检测参数是不是绝对路径,返回布尔型
  3. os.path.relpath(path,start)将返回从start路径到path的相对路径的字符串,如果没有提供start,就以当前的文件夹作为开始目录
  4. os.path.dirname(path)将返回path中的文件路径,os.path.basename(path)将返回path中的文件名如果同时还需要一个路径的目录名称(文件路径)和文件名可以调用os.path.split(path)返回这两个字符串的元组
  5. os.path.getsize(path)返回path参数中文件的字节数
>>>totalsize = 0;
>>>for filename in os.listdir(path`包含子文件的文件夹的路径`):
>>>totalsize += os.path.getsize(os.path.join(path,filename))
>>>print(totalsize)
  1. 路径的有效性:
  • os.path.exists(path)path文件下的文件是否存在
  • os.path.isdir(path)path文件是否为一个文件夹
  • os.path.isfile(path)path文件是否是一个文件

调用open(path),返回一个文件对象
调用该文件对象的read()方法或write()方法
调用文件对象的close()方法,关闭该文件

上一篇 下一篇

猜你喜欢

热点阅读