本人从Java
入世,所以在学习Python
时会融入一些Java
的概念方便自身的理解,对于Java
程序员来说更加友好一点。
一、注释
任何语言都有注释,注释的目的是为了:阐述代码的功能是什么,做了什么,以及如何做的
。分为单行注释
和多行注释
两种。Python
的单行注释
是通过#
来标识。多行注释
通过三对单引号'
或双引号"
构成。
# 这是python的单行注释
print("这是python的单行注释")
"""
这是python的多行注释
"""
print('这是双引号的"python都多行注释')
'''
这是python的多行注释
'''
print("这是单引号的'python都多行注释")
执行效果:
二、变量和类型
Python
中的类型分为:数字(整数和浮点数)
、布尔(bool)
、字符串
、列表
、字典
、元组。
Python
中都变量类型无需声明,即不需要像java
中那样去声明具体类型如int num = 0
,甚至不需要像JavaScript
中那样去声明变量,如var num = 0
。Python
中只需要直接命名变量,变量的类型由等号后面的值决定
。不需要任何的声明。
三、数字
在Python2
中,整数的大小是有限制的,即当数字超过一定的范围不再是int
类型,而是long
长整型,而在Python3
中,无论整数的大小长度为多少,统称为整型int
。
1.整型(int)
在Python
中,可对数字型执行加(+)、减(-)、乘(*)、除(/)
运算。Python
中使用两个乘号表示乘方运算。
在终端命令行中,Python
会直接返回运算结果。
# 加
>>> 2 + 3
5
# 减
>>> 3 - 2
1
# 乘
>>> 2 * 3
6
# 除
>>> 3 / 2
1.5
# 乘方 pow(x, y) :x 的 y 次幂
>>> 2 ** 3
8
>>> pow(2, 3)
8
# 取模,取得余数
>>> 7 % 3
1
# 整除,向下取整
>>> 10 // 3
3
>>> 9 // 2
4
使用IDE我们需要借助到输出方法:print()
。
注意:Python
中对输出语句为:print()
,在Python2
中可带括号可不带括号,但是在Python3
中必须使用括号。我使用的版本是:Python3.8
。
2.浮点型(float)
Python
将所有带小数点的数字都称为浮点数。同样Python
并没有解决浮点型计算时导致的丧失精度的问题因为这本就是二进制计算的问题。Python
也同java
一样通过Decimal
方法解决精度计算的问题。
# 加
>>> 0.2 + 0.2
0.4
# 减
>>> 1.2 - 0.1
1.0999999999999999
# 乘
>>> 2 * 0.1
0.2
# 除
>>> 2 / 0.2
10.0
# 损失精度
# 加
>>> 0.2 + 0.1
0.30000000000000004
# 乘
>>> 3 * 0.1
0.30000000000000004
# 乘方 pow(x, y) :x 的 y 次幂
>>> 0.2 ** 3
0.008000000000000002
>>> pow(0.2, 3)
0.008000000000000002
与Java
不同在与字符串的拼接中Python
不会自动转换所以会出现错误所以只能借助外力来解决。
通过借助函数str()
来避免类型转换问题。
反例:
>>> message = "快乐的生活是一辈子," + 1314 + "不计一时。"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
正例:
>>> message = "快乐的生活是一辈子," + str(1314) + "不计一时。"
>>> print(message)
快乐的生活是一辈子,1314不计一时。
注:在
Python2
中整数的除法不会保留小数位,只保留整数位。要保留小数位就需要使用浮点型。
# python2.7
>>> 3 / 2
1
>>> 3.0 / 2
1.5
>>> 3 / 2.0
1.5
>>> 3.0 / 2.0
1.5
3.复数(complex)
复数由实数部分和虚数部分组成,一般形式为x+yj
,其中的x
是复数的实数部分,y
是复数的虚数部分,这里的x
和y
都是实数。
>>> complex(7, 8)
(7+8j)
注:Python中存在小数字池:-5 ~ 257。也称为小整数缓存机制,或者称为驻留机制等。等同于Java中包装类型的缓冲池,在这个范围内的数字并不会重新创建对象,而是使用已经创建好的缓存对象。
abs(x):x 的绝对值。
int(x):将 x 转换为整数。向下取整。
float(x):将 x 转换为浮点数。
divmod(x, y):结果和 (x // y, x % y) 一致。
>>> abs(11)
11
>>> abs(-11)
11
>>> int('12')
12
>>> int(12.3)
12
>>> float('132')
132.0
>>> float(12)
12.0
>>> divmod(10, 3)
(3, 1)
>>> divmod(3.2, 3)
(1.0, 0.20000000000000018)
4.进制
# 二进制:以0b开头 --> bin()
>>> 0b1011
11
>>> bin(11)
'0b1011'
# 八进制:以0o开头 --> oct()
>>> 0o71
57
>>> oct(57)
'0o71'
# 十六进制:以0x开头 --> hex()
>>> 0x9e
158
>>> hex(158)
'0x9e'
四、布尔型(bool)
与所有其他语言一样布尔型
只有两种结果即True
和False
,其分别对应与二进制中的0
和1
。
注:True和False的首字母要大写。
反例:
>>> boolean = true
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'true' is not defined
>>> boolean = false
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'false' is not defined
正例:
>>> boolean = True
>>> type(boolean)
<class 'bool'>
>>> boolean = False
>>> type(boolean)
<class 'bool'>
注:
type()
用于检查变量的数据类型。与JavaScript
中的typeof
和Java
中的instanceof
类似。
bool()
可以检查变量的真假值True
或False
。
关于布尔型
真值太多,所以我们只需要了解假值即Flase
的值有哪些即可。
类型 | False |
---|---|
布尔 | False |
数字 | 整型的0 和浮点型的0.0
|
字符串 | 空字符串''
|
列表 | 空列表[]
|
字典 | 空字典{}
|
元组 | 空元组()
|
set() | 空set()
|
None | None |
终端执行:
#以下结果为假,即布尔(False)、为0的数字(整形的0和浮点型的0.0)、空字符串''、空列表[]、空字典{}、空元组()、空set()、以及None
>>> bool(False)
False
>>> bool(0)
False
>>> bool(0.0)
False
>>> bool('')
False
>>> bool([])
False
>>> bool({})
False
>>> bool(())
False
>>> bool(set())
False
>>> bool(None)
False
五、运算符
Python
中的运算符与Java
基本一致,这里就直接列举,相同的地方不做其他多余的说明。
1.算术运算符
运算符 | 描述 |
---|---|
+ |
加 - 两个对象相加 |
- |
减 - 得到负数或是一个数减去另一个数 |
* |
乘 - 两个数相乘或是返回一个被重复若干次的字符串 |
/ |
除 - x除以y |
% |
取模 - 返回除法的余数 |
** |
幂 - 返回x的y次幂 |
// |
取整除 - 返回商的整数部分(向下取整) |
2.比较运算符
运算符 | 描述 |
---|---|
== |
等于 - 比较对象是否相等 |
!= |
不等于 - 比较两个对象是否不相等 |
<> |
不等于 - 比较两个对象是否不相等。python3 已废弃 |
> |
大于 - 返回x是否大于y |
< |
小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价 |
>= |
大于等于 - 返回x是否大于等于y |
<= |
小于等于 - 返回x是否小于等于y |
3.赋值运算符
运算符 | 描述 |
---|---|
= |
简单的赋值运算符 |
+= |
加法赋值运算符,a += b,就是a = a + b
|
-= |
减法赋值运算符,a -= b,就是a = a - b
|
*= |
乘法赋值运算符,a *= b,就是a = a * b
|
/= |
除法赋值运算符,a /= b,就是a = a / b
|
%= |
取模赋值运算符,a %= b,就是a = a % b
|
**= |
幂赋值运算符,a **= b,就是a = a ** b
|
//= |
取整除赋值运算符,a //= b,就是a = a // b
|
4.位运算符
与Java
不同的是Python
中没有带符号右移动运算符>>>
。其他都一样。
运算符 | 描述 |
---|---|
& |
按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
| |
按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1 |
^ |
按位异或运算符:当两对应的二进位相异时,结果为1 |
~ |
按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 |
<< |
左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0 |
>> |
右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 |
5.逻辑运算符
与Java
不同的是Java
的只是语法而已。Java
使用的是:&&
、||
、!
。
运算符 | 逻辑表达式 | 描述 |
---|---|---|
and |
x and y |
布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值 |
or |
x or y |
布尔"或" - 如果 x 是非 0,它返回 x 的计算值,否则它返回 y 的计算值 |
not |
not x |
布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True |
6.成员运算符
运算符 | 描述 |
---|---|
in |
如果在指定的序列中找到值返回 True,否则返回 False。 |
not in |
如果在指定的序列中没有找到值返回 True,否则返回 False。 |
实例
>>> str = "yanxueer"
>>> print("ya" in str)
True
>>> print("b" not in str)
True
7.身份运算符
判断是否是同一对象,即判断地址值是否相同。Java
中一般使用==
来判断地址值,equals()
来判断值即内容是否相等。而Python
中==
判断值是否相等,身份运算符来判断地址值是否相同。
运算符 | 描述 |
---|---|
is |
is 是判断两个标识符是不是引用自一个对象, 如果引用的是同一个对象则返回True ,否则返回False
|
is not |
is not 是判断两个标识符是不是引用自不同对象,如果引用的不是同一个对象则返回结果True ,否则返回False 。 |
实例
id()
可以获取到对象的地址值。
>>> str1 = "12"
>>> str2 = "12"
>>> print("str1的地址值是:%s;str2的地址值是:%s" % (id(str1), id(str2)))
str1的地址值是:2141262128816;str2的地址值是:2141262128816
>>> print(str1 is str2)
True
>>> str3 = "123"
>>> print("str1的地址值是:%s;str3的地址值是:%s" % (id(str1), id(str3)))
str1的地址值是:2141262128816;str3的地址值是:2141262129712
>>> print(str1 is str3)
False
>>> print(str1 is not str3)
True
Python
语法的成员运算符
和身份运算符
是Java
等其他语言中所没有的。这是因为Python
独有的语法格式的原因。将在if
和for
中频繁使用。
8.运算符优先级
运算符 | 描述 |
---|---|
** |
指数 (最高优先级) |
~ + -
|
按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % //
|
乘,除,取模和取整除 |
+ -
|
加法减法 |
>> <<
|
右移,左移运算符 |
& |
位 'AND' |
^ |
|
位运算符 |
<= < > >=
|
比较运算符 |
<> == !=
|
等于运算符 |
= %= /= //= -= += *= **=
|
赋值运算符 |
is is not
|
身份运算符 |
in not in
|
成员运算符 |
not and or
|
逻辑运算符 |
六、总结
- 1.注释的意义以及使用
- 2.
Python
中所包含的基本类型 - 3.
Python
中的基本类型--数字类型 - 4.
Python
中的基本类型--布尔型 - 5.
Python
中的运算符
每日一言
换一种心态就是一种享受,快乐从来都是自己动手创造出来的。