目录
1、除号 /
Python中,/在运算中,如果出现2/3的情况,那他的输出结果为就是为0.6666666666666666
如下:
而在Java中,2/3就会出现小数部分被截断,输出结果为0
2、// 取整除法
意思就是,两个整数相处时,会舍弃小数部分,得到一个整数
3、乘方 **
Python中,**表示是乘方运算,例如n**2,表示的意思就是n的二次方
Java中无此符号~
4、定义变量
Python中定义一个变量,格式:变量名 = “值”
Java中定义一个变量,格式:类型 变量名 = “值”;
5、数据类型 int
Python中,虽然在定义变量时,不需要显示的将类型写出来,但为了能够区分不同的数据类型,所以Python还是会有数据类型这个概念的,Python中的int是没有数据范围,也就是说,如果内存足够大,数据范围就没有上限~
Java中的int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1) ~
6、数据类型 float
Python中只有float,没有double,但他其实就是相当于Java中的double,表示双精度浮点~
7、字符串
Python中,字符串可以由' ' 或 " "引起来,二者是没有任何不同的~
Java中,字符串是由" "引起来的
8、动态类型特征
Python中,一个变量是什么类型,是可以在程序运行过程中,发生改变的,这个特征称为动态类型~
Java中,是不允许这样的,所以Java是静态类型~
动态类型的利弊:
- 优点:对于中小型程序来说,可以大大节约代码量,例如写一段代码就可以同时支持多种类型
- 缺点:对于大型程序来说, 会提高模块之间的交互成本~
9、注释方式
Python中,使用# 来注释 或者使用三引号注释,例如:"""这是注释"""
Java中,使用// 或者 /* */
10、输出字符串
Python中,混合输出字符串和其他变量,要使用 f 作为字符串的前缀
Java中,则不需要~
11、输入
Python中的输入,使用input
Java中是Scanner
括号中的值相当于一个提示语,也可以为空~
这里有一个点需要注意:
例如:
这种情况下,他是字符串拼接而不是算术运算了,所以需要我们进行类型转换:
12、关系运算符
关系运算符,例如 < > <= >= == !=
在Python中,关系运算符是可以进行对字符串之间比较的,其中的比较规则是字典序,这一点是Java不可以的
另外要注意的一个点,不要使用==来判断浮点数
因为浮点数在计算机中的表示是不精确的,例如:
为什么是false呢,我们来看a+ b在计算机中存储的值:
这种情况Java也是存在的~
13、 逻辑运算符
Python中逻辑运算符,是使用:and or not
Java中是使用 && || !
需要注意的一个点:Python中,可以使用 a < b < c,这种写法等价于 : a < b and b < c
14、赋值运算符 =
Python支持链路赋值:a = b = 10
Python支持多元赋值:a , b = 10, 20
需要注意的一点是,Python中但是没有自增自减运算符的~ 但是Python有身份运算符(is is not),成员运算符(in , not in)
15、缩进和代码块
在Python中,使用缩进表示代码块
在Java中,使用花括号表示代码块~
16、条件语句
语法:
if expression1:
dosth1...
elif expression2:
dosth2...
dosth3...
else:
dosth4...
注意:if后面的expression是不需要用()括起来的~
17、空语句
空语句使用pass,例如上述的if后面,如果是当pression1条件满足时,什么都不做要使用pass,而不能直接写下一行的elif,这样写不满足缩进代码块了,还会报错~
18、循环语句
语法:
while 条件 :
do1
do2
do3
19、for循环
语法:
for 变量 in 可迭代对象 :
循环体
例如打印1-10:
for n in range(1,11):
print(n)
20、函数
语法:
def 函数名(形参列表) :
函数体
return 返回值
注意:
- 函数需要先定义再调用,否则会报错~
- Python是动态类型的编程语言, 函数的形参不必指定参数类型. 换句话说, 一个 函数可以支持多种不同类型的参数
- 一个函数可以一次返回多个返回值
例如,return x,y
如果你只想接收其中一个返回值可以写为:_,y = fun()
- 如果要在函数内部改变某个全局变量的值,需要使用global关键字,在函数内部声明一下:
否则会视为是函数内部新创建的一个局部变量~
21、参数默认值
Python中的函数,可以指定默认的参数值,带有默认值的参数可以在调用时不传参~
带有默认值的参数需要放到没有默认值的参数的后面,否则会报错~
22、关键字参数
一般默认情况下,是按照形参的顺序,来依次传递实参,但是在Python中,也可以通过关键字参数,来调整传参的顺序,进行显式指定哪个实参传给哪个形参~
如果要使用关键字传参,那这几个都要使用这种传参方式,不能只给其中一个使用~
23、列表和元组
元组和列表相比, 是非常相似的, 只是列表中放哪些元素可以修改调整, 元组中放的元素是创建元组的时 候就设定好的, 不能修改调整 ,他们就类似于Java中的数组~
23.1、创建列表
- 两种方式:
alist1 = []
alist2 = list()
- 如果需要在里面放初始值:
alist = [1,2,3,4]
- 可以直接使用print打印alist中的值:
- 和Java最大的不同点:Python中的列表中是可以放不同的类型的~
23.2、访问下标
- 这里访问下标类似于Java,使用[ ],中间放索引
- 通过下标不仅能够读取元素内容,还可以改变内容~
- 若下标超出列表的长度,会抛出异常
- 下标从0开始
- 下标可以取负值,表示倒数第几个数字
23.3、切片操作
- 切片操作就是,一次在列表中取出连续的元素,相当于是得到了一个子列表
- 语法:[ : ]
从举例中可以看到是前闭后开的区间~
- 切片操作可以省略前后边界
- 切片操作还可以指定步长
- 切片操作步长可以为负数
- 切片中的填写的下标越界了,不会有异常,他会尽可能把满足条件的元素放过去
23.4、循环遍历
- for循环
- while循环
- 使用 for 按照范围生成下标, 按下标访问
23.5、新增元素
- 使用append方法进行尾插
- 使用insert方法进行任意位置插入
23.6、查找元素
- 使用in操作符,进行查找,返回布尔类型
- 使用 index 方法, 查找元素在列表中的下标. 返回值是一个整数. 如果元素不存在, 则会抛出异常
23.7、删除元素
- pop进行尾删 ,或者pop后进行传值,就按下标删
- 使用remove直接删除相应元素
23.8、连接列表
- 使用 + 可以将两个列表拼接起来组成一个新列表
- 使用extend方法:将一个列表拼接在另一个列表的后面
24、元组
- 元组使用 ()表示 , 而列表使用[ ]
atuple = ( )
atuple = tuple()
- 元组不能修改里面的元素,而列表可以
- 读操作,比如访问下标, 切片, 遍历, in, index, + 等, 元组也是一样支持的.
- 写操作, 比如修改元素, 新增元素, 删除元素, extend 等, 元组则不能支持.
- 元组在 Python 中很多时候是默认的集合类型. 例如, 当一个函数返回多个值的时候.
25、字典
字典就是一种存储键值对的结构
25.1、创建字典
- 创建一个空字典:
方式一:a = { }
方式二:b = dict()
- 可以在创建的同时指定初始值
- 键值对之间使用 , (逗号)分割,键和值之间使用:(冒号)分割
- 可以使用print打印字典
- 最后一个键值对, 后面可以写 , 也可以不写:
25.2、查找key
- 使用 in 可以判定 key 是否在 字典 中存在. 返回布尔值
- 使用 [ ] 通过类似于取下标的方式, 获取到元素的值. 只不过此处的 "下标" 是 key. 如果 key 在字典中不存在, 则会抛出异常
25.3、新增/修改元素
使用 [ ] 可以根据 key 来新增/修改 value----如果key不存在,即为新增,若存在则为修改
25.4、删除元素
使用pop方法根据key删除相应的键值对
25.5、遍历字典元素
直接使用 for 循环能够获取到字典中的所有的 key,进一步就可以取出每个值了
25.6、取出所有 key 和 value
- 使用 keys 方法可以获取到字典中的所有的 key
- 使用 values 方法可以获取到字典中的所有的 value
- 使用 items 方法可以获取到字典中所有的键值对
25.7、合法的 key 类型
不是所有的类型都可以作为字典的 key. 字典本质上是一个 哈希表, 哈希表的 key 要求是 "可哈希的", 也就是可以计算出一个哈希值.
可以使用 hash 函数计算某个对象的哈希值. 但凡能够计算出哈希值的类型, 都可以作为字典的 key.
列表无法计算哈希值.例:print(hash([1, 2, 3]))会报错
字典也无法计算哈希值,例:print(hash({ 'id': 1 })) 会报错
26、文件操作
26.1、打开文件
使用内建函数 open 打开一个文件:
f = open('d:/test.txt', 'r')
- 第一个参数是一个字符串, 表示要打开的文件路径
- 第二个参数是一个字符串, 表示打开方式.
- 其中 r 表示按照读方式打开. w 表示按照写方式打开. a 表示追加写方式打开.
- 如果打开文件成功, 返回一个文件对象. 后续的读写文件操作都是围绕这个文件对象展开.
- 如果打开文件失败(比如路径指定的文件不存在), 就会抛出异常
tip:
在打开文件时,加一个参数,能够避免一些中字编码带来的麻烦:
26.2、关闭文件
使用 close 方法关闭已经打开的文件:
f.close()
- 一个程序能同时打开的文件个数, 是存在上限的.所以要及时记得关闭文件
26.3、写文件
- f.write('hello')
- 写文件前,打开文件时记得是w
- 如果是使用 'r' 方式打开文件, 则写入时会抛出异常.
- 使用 'w' 一旦打开文件成功, 就会清空文件原有的数据. 使用 'a' 实现 "追加写", 此时原有内容不变, 写入的内容会存在于之前文件内容的末尾.
- 针对已经关闭的文件对象进行写操作, 也会抛出异常
26.4、读文件
- 读文件内容需要使用 'r' 的方式打开文件
- 使用 read 方法完成读操作. 参数表示 "读取几个字符"
- 如果文件是多行文本, 可以使用 for 循环一次读取一行.
- 使用 readlines 直接把文件整个内容读取出来, 返回一个列表. 每个元素即为一行
26.5、使用上下文管理器
打开文件之后, 是容易忘记关闭的. Python 提供了 上下文管理器 , 来帮助我们自动关闭文件. 使用 with 语句打开文件. 当 with 内部的代码块执行完毕后, 就会自动调用关闭方法.
with open('d:/test.txt', 'r', encoding='utf8') as f:
lines = f.readlines()
print(lines)
好啦,目前学到这儿啦,后续也会继续总结~加油