Python基础

Python是解释型语言

解释型语言:不进行预先编译,将代码一行一行直接运行。看起来省了编译工序,但是运行时必须先编译再运行。执行速度慢、跨平台性好。

编译型语言:程序在执行之前需要编译,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果。程序执行效率高,依赖编译器,跨平台性差。如C、C++

【Pyc文件(c是compiled:编译过)是由Python解释器将模块的源码编译后的二进制文件。
Python会把被import的模块先编译成字节码,提高执行速度,有了模块的字节码文件之后,下次运行程序若没有修改过源代码,将会加载pyc文件并跳过编译;如果又修改了源代码,下次运行时将重新编译。】

命名规则

文件命名规则:命名文件名时建议只使用小写字母、数字和下划线。文件名不能以数字开头(以数字开头的文件不能被import)

变量命名规则:变量名由大小写英文字母、数字和下划线组成,变量不能用数字开头,习惯使用小写字母加_隔开

注释

单行注释:#(后跟两个空格) 

多行注释:三个连续的双引号"""

算术运算符

/:除              //:整除            **:幂(2**3=8)

变量类型

type(x)可以查看变量类型

bool型和数字型变量可以进行运算,对应0 1

字符串用+可以进行拼接

int(x)  float(x) 强转

空值用None表示

可变和不可变类型
不可变类型:内存中的数据不允许被修改(变量重新赋值,地址改变)

  • 数字类型int , bool , float , complex , long(2.x)
  • 字符串str
  • 元组tuple

可变类型:内存中的数据可以被修改(通过方法改变数据,地址不变;重新赋值,地址改变)

  • 列表list
  • 字典dict

输入

x = input("请输入x:") 输入类型默认是字符串

格式化输出

print("格式化字符" % (变量1,变量2))

条件判断

python中的else if写作elif

长逻辑表达式换行缩进

完整的for循环语法

模块

模块是Python程序架构的一个核心概念

模块就好比是工具包,需要import这个模块,模块中定义的全局变量、函数都能给外界直接使用。

哈希(hash)
Python的内置函数。参数必须是不可变类型的数据,返回结果是整数
哈希是一种算法,其作用就是提取数据的特征码。相同内容的特征码相同,不同内容的特征码不同。
设置字典的键值对时,会首先对key进行hash来决定如何在内存中保存字典的数据,以方便后续对字典的操作

  •  key必须是不可变类型数据
  • value可以是任意类型的数据

全局变量和局部变量

全局变量命名一般加g_或gl_前缀

在函数内部不允许直接修改全局变量的引用,如果使用赋值语句,会在函数内部重新定义一个局部变量;

若要在函数内部修改全局变量的值,需先使用global声明一下变量,global关键字会告诉解释器后面的变量是一个全局变量再使用赋值语句时,就不会创建局部变量。

利用元组交换变量

a,b = (b,a)  ()可以省略,写作:a,b = b,a

函数参数

  • 在函数内部使用赋值语句修改参数不会影响外部数据,无论参数是可变还是不可变
  • 若参数为可变类型,在函数内部使用方法修改数据内容会影响外部数据

注意:

函数多个返回值

返回值是元组时,( )可以省略

有默认值的参数必须在参数列表末尾,调用函数时,如果有多个缺省参数需指定参数名。

多值参数

有时可能一个函数能够处理的参数个数是不确定的,可以使用多值参数

  • 参数名前增加一个*可以接收元组
  • 参数名前增加两个*可以接收字典

—般在给多值参数命名时,习惯使用以下两个名字

  •  *args:存放元组参数,前面一个*
  • **kwargs:存放字典参数,前面有两个*(kw:keyword)

元组和字典的拆包

在调用多值参数的函数时,若要将一个元组直接传递给args,将一个字典直接传递给kwargs,可以使用拆包简化参数的传递

在元组变量前,增加一个*;在字典变量前,增加两个*


读写文件

打开文件

Python提供了open()函数,可以打开一个文件,得到一个文件file对象,而file对象提供相关的方法对文件内容进行读写等操作。

open()函数有若干个参数,比较重要的是:

  • 文件路径
  • 打开模式:不同文件(二进制文件、文本文件)和不同操作(读操作、写操作),有不同的打开模式
  • 编码:打开文件的默认编码

【为了安全操作文件,文件使用完毕后,需要使用close()函数正确关闭。】

读取文件内容

  • f.read(5)   读取文件中的若干个字符,参数size可以指定读取字符的数量。
  • f.readline(20)    和read()类似,读取文件中的若干个字符,它也提供一个参数size指定读取字符的数量,但readline()遇到一行结束的时候,就会返回。最多返回一行数据
  • f.readlines()    读取多行字符,返回一个列表。提供一个hint参数表示指定读取的行数,默认以列表的形式返回文件所有的字符串。

写入文件

  • f.write('Hello\n')     向文件写入若干字符,参数为要写入的字符串。
  • f.writelines(lines)   向文件写入多行数据,参数为要写入的字符串列表。

追加文件内容

使用a的打开方式打开文件,游标默认在文件的尾部,方便在文件尾部添加内容

【文件对象还提供seek()方法,可以移动文件的游标位置但不改变文件内容,接收一个参数表示文件的位置,0:文件首部,1:当前位置,2:文件尾部】

正确关闭文件

在一般情况下,使用的close()方法来关闭一个文件。但使用close()方法不是100%安全的,如果在close()文件之前程序异常退出了,么文件就无法正确关闭。
使用with关键字对资源进行访问,确保无论使用过程中是否发生异常,都会执行必要的“清理”的操作,释放资源,比如文件使用后自动关闭等。

with open('test.txt', 'r') as f:
    content = f.readlines()
    for line in content:
        print(line)

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值