Python 为我们提供了一个函数 type() ,通过这个函数我们可以获取到当前的数据类型。示例如下:
print(type(123))
print(type(123.0))
print(type('123'))
print(type("123"))
上面示例的运行结果如下:
<class 'int'>
<class 'float'>
<class 'str'>
<class 'str'>
接着使用另一个函数 isinstance() ,这个函数的作用其实从字面意思就能看出来,判断一个对象是否是一个已知的类型,具体语法如下:
isinstance(object, classinfo)
object – 实例对象。
classinfo – 可以是直接或间接类名、基本类型或者由它们组成的元组。
示例代码如下:
print(isinstance(123, int))
print(isinstance(123.0, float))
print(isinstance('123', str))
测试结果如下:
True
True
True
print(10**1000)
** 的含义是次方,上面这个示例代码的意思就是 10 的 1000 次方
十进制:正常写就 ok ,所有的数字都默认是十进制的。
二进制:在最前面添加 0b 的前缀,并且组成部分必须只能由 0 或者 1 组成(废话,有其他数字还叫二进制么),如: 0b10101010101
八进制:在最前面添加 0o 的前缀,并且组成部分必须只能有 0~7 的数字组成,如:0o12345670
十六进制:在最前面添加 0x 的前缀,并且组成部分由 0~9 和 A~F 组成,如:0xdb273dc(注意:字母大小写不做区分,也可以写成 0xDB273DC )
浮点数还包括分数,示例如下:
print(1/2)
print(1/3)
print(1/6)
结果如下:
0.5
0.3333333333333333
0.16666666666666666
因为是无限循环小数,所以会存在误差
在 Python 中,复数的表现方式如下:
print(1 + 1j)
print(type(1 + 1j))
结果如下:
(1 1j)
<class 'complex'>
概念里都讲了,复数是有实部和虚部的,那在 Python 中如何获取呢?示例如下:
== 只能用来做数值的比较,并不会比较当前的数据类型,所以 123 和 123.0 是相等的。而 ‘123’ 不等于 123 则是因为 ‘123’ 是字符串,不能数值运算,而 123 是数字。
‘’ 或者 “” 表示的是空字符串,空字符串和 null 是不一样的。
字符串外面的包裹可以是单引号,也可以是双引号,需要注意的是单引号和双引号一定是成对出现的,不可混合使用
Python 识别程序是从左向右识别的,所以我们中间的一段内容 吃了吗? 会因为没有双引号的包裹而导致了报错。我们可以使用转义符号 来告诉 Python 中间的双引号并不是代表字符串的符号,是我们想要打印的符号,示例代码如下:
print("小明说:"吃了吗?"")
// 输出结果:小明说:"吃了吗?"
还可以使用连续三个单引号或者双引号,它可以使得中间被包裹起来的一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符,示例如下:
print('''
这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( )。
也可以使用换行符 [
]。
''')
打印结果如图:
如果这个字符串中真的是想打印 ,而并不是把它当做一个横向制表符该怎么办呢?有两种解决方案,示例如下:
print("横向制表符:\t")
// 输出结果:横向制表符:
print(r"横向制表符: ")
// 输出结果:横向制表符:
第一种是在转义符号前面再加一个转义符号 ,负负得正。
第二种是在这个字符串的外面加一个 r (大小写均可)。
常用方法
获取字符串长度:
获取字符串长度 Python 为我们提供了一个 len() 的方法,示例如下:
print(len('I like Python!'))
// 输出结果:14
print(len('I like 小明!'))
// 输出结果:10
print(len(''))
// 输出结果:0
print(len(' '))
// 输出结果:1
print(len("
"))
// 输出结果:1
中文,字母,数字,符号都是占一个长度。
字符串中的空格也是占长度的。
空字符串的长度为0
字符串拼接
字符串拼接可以使用符号-空格 ,示例如下:
a = "Hello"
b = "Python"
print("a b 输出结果:", a " + " b)
// a b 输出结果: Hello Python
重复输出字符串
字符串拼接可以使用**符号 *** ,示例如下:
print("a * 2 输出结果:", a * 2)
// a * 2 输出结果: HelloHello
通过索引获取字符串中字符
如果把字符串中的每个字符看做在排队的话,那么索引就是这个字符的位置,第一个字符的索引为 0 ,示例如下:
print("a[1] 输出结果:", a[1])
// a[1] 输出结果: e
截取字符串
在 Java 中,截取字符串给了一个方法是 substring ,而在 Python 中则直接使用 [:] 这个表达式即可,遵循左闭右开原则,示例如下:
print("a[1:4] 输出结果:", a[1:4])
// a[1:4] 输出结果: ell
包含
成员运算符 in 可以判断一个字符串种是否包含指定的字符串,并返回 true 或者 false 布尔值。示例如下:
if "H" in a:
print("H 在变量 a 中")
else:
print("H 不在变量 a 中")
// H 在变量 a 中
不包含
既然有了包含那一定就会有不包含,不包含的成员运算符是 not in ,返回同样是布尔值。示例如下:
if "M" not in a:
print("M 不在变量 a 中")
else:
print("M 在变量 a 中")
// M 不在变量 a 中
变量
在 Python 中使用变量,有一个和 Java 最大的不同是无需先声明,直接在赋值的时候就完成了声明。
如果我们对这个变量再次进行赋值,新的赋值将会覆盖之前的赋值。
当然,如果我们不再需要这个变量,也可以通过 Python 提供的 del 来删除这个变量。
在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,例如:
a = 123 # a是整数
print a
a = 'imooc' # a变为字符串
print a
这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。
静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言
变量类型转换
类型强制转换。
float() 函数,将其他类型数据转为浮点数
str() 函数,将其他类型数据转为字符串
int() 函数,将其他类型数据转为整型
强制类型降级时,会直接抹去末尾小数,这里并不会做四舍五入哦~~~
如果想使用四舍五入的方式,有一种比较简易的方式,加 0.5 ,如下示例:
print(int(123.7 + 0.5))
// 输出结果:
124
这么写有点不是那么优雅,我们还可以借助函数 round() 来实现。
print(int(round(123.4)))
// 输出结果:
123
print(int(round(123.5)))
// 输出结果:
124
运算符
运算符根据用途可以分为以下这么几类:
算术运算符
比较运算符
赋值运算符
逻辑运算符
成员运算符
身份运算符
类型转换的规则由低等向高等转换。
bool(布尔) < int(整形) < float(浮点型) < complex(复数)
print("11. -1 的绝对值为:", abs(-1))
print("12. 创建的复数为:", complex(1, -2))
print("13. 商和余数为:", divmod(10, 3))
print("14. 浮点型转换:", float(1))
print("15. 10的3次幂为:", pow(10, 3))
print("16. 四舍五入为:", round(5.5))
print("17. 集合求和结果为:", sum({1, 2, 3 ,4}))
print("18. 整数20的二进制为:", bin(20))
print("19. 整数20的八进制为:", oct(20))
print("20. 整数20的十六进制为:", hex(20))
print("21. Unicode 为 97 的字符串:", chr(97))
print("22. 字符串 a 的 Unicode 码:", ord('a'))
print("23. 123 的 boolean 值为:", bool(123))
print("24. 空字符串的 boolean 的值为:", bool(''))
11. -1 的绝对值为: 1
12. 创建的复数为: (1-2j)
13. 商和余数为: (3, 1)
14. 浮点型转换: 1.0
15. 10的3次幂为: 1000
16. 四舍五入为: 6
17. 集合求和结果为: 10
18. 整数20的二进制为: 0b10100
19. 整数20的八进制为: 0o24
20. 整数20的十六进制为: 0x14
21. Unicode 为 97 的字符串: a
22. 字符串 a 的 Unicode 码: 97
23. 123 的 boolean 值为: True
24. 空字符串的 boolean 的值为: False