学习Python小日记--主要是总结和Java的一些不同点

本文介绍了Python和Java在编程基础方面的差异,包括除法运算、取整、乘方、变量定义、数据类型如int和float、字符串处理、动态类型特性、注释方式、输出和输入、关系及逻辑运算符、赋值运算、代码块表示以及条件语句。还详细对比了列表、元组和字典的操作,并探讨了文件操作的异同。
摘要由CSDN通过智能技术生成

目录

1、除号 /

2、// 取整除法

3、乘方 **

4、定义变量

5、数据类型 int

6、数据类型 float

7、字符串

8、动态类型特征

9、注释方式

10、输出字符串

11、输入

12、关系运算符

13、 逻辑运算符

14、赋值运算符 =

 15、缩进和代码块

16、条件语句

17、空语句

18、循环语句

19、for循环

20、函数

21、参数默认值

22、关键字参数

23、列表和元组

 23.1、创建列表

23.2、访问下标

23.3、切片操作 

23.4、循环遍历

23.5、新增元素

23.6、查找元素

23.7、删除元素

23.8、连接列表

24、元组

25、字典

25.1、创建字典

25.2、查找key

25.3、新增/修改元素

25.4、删除元素

25.5、遍历字典元素

25.6、取出所有 key 和 value

25.7、合法的 key 类型

26、文件操作

26.1、打开文件

26.2、关闭文件

26.3、写文件

26.4、读文件

26.5、使用上下文管理器 


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) 

 好啦,目前学到这儿啦,后续也会继续总结~加油

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙洋静

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值