Python基础——数据类型与基本运算【主要为除法】

蓝咒 提交于 2020-02-09 15:25:26

  Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ

  无论是Python 3.x版本还是2.x版本,Python均支持多种数据类型,能够直接处理的数据类型包括Int类型、Float类型、String类型、布尔值、变量、常量……

  在计算机内部,Python可以把任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。

Int整数类型

  令人惊喜的是,Python可以处理任意位数的整数,同时包括负整数。因此,Python处理整数非常方便,几乎与数学表示整数的方式一模一样。

  Python也同时支持十六进制和八进制。十六进制数表示形式如下:

1 #十六进制表示形式
2 >>>0xAD
3 173
4 >>>0xad
5 173
6 >>>0XAD
7 173

  对于八进制,Python 3.x版本必须以“0o”前缀(数字0 + 字母o),八进制表示形式如下:

1 #八进制表示形式
2 >>>0o20
3 16
4 #字母o大写也编译通过,最好小写,避免造成歧义
5 >>>0O20
6 16

  注:计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff000xa5b4c3d2等等。

Float浮点型

  我们都知道,数学中除了整数外,还有小数。而数学中的小数,Python中称之为浮点数。比如1.23,0.03,10.12……这些都是基本的浮点数。

  浮点数的表现形式主要有三种:

  一、直接显示

    1.23,0.98,0.0000000008……对于小数位有很多零的情况,这样书写很不友好。

  二、xx.xx * 10xx

    1.23 * 109和12.3 * 108是完全相等的。如果是负数,0.000123则写成1.23 * 10-4

  三、xx.xxexx(字母e,e后直接输入xx,并非上标)

    1.23x109就是1.23e9。如果是负数,0.0000123可以写成1.23e-5。

  特别地,整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。

String字符串

  Python数据类型中,字符串是最常见的又是最难的。关于字符串,我稍后会专门写一篇文章来详细总结字符串的各种知识点。这里就简单介绍一下字符串的用法。

  字符串是以单引号'或双引号"括起来的任意文本,比如'abc',"xyz"等等。请注意,''""本身只是一种表示方式,不是字符串的一部分。那么,问题来啦。

  1.如果字符串本身包含单引号,怎么办?

   可以用双引号“”括起来。用单引号会出错,因为括起来的引号必须成对出现。

#字符串本身含有单引号,请用双引号括起来
>>>"I'am fine!"
"I'am fine!"

  2.如果字符串本身含有双引号,怎么办?

   很简单,用单引号括起来呗!

  3.如果字符串本身既包括双引号又包括单引号呢?

   这里就涉及到转义字符啦。可以用转义字符 \ 来标识。

1 #字符串使用转义字符\
2 #直接输出字符串与print()差异
3 >>>'I\'m \"fine\"!'
4 'I\'m "fine"!'
5 >>>a = 'I\'m \"fine\"!'
6 >>>a
7 'I\'am "fine"!'
8 >>>print(a)
9 I'am "fine"!

  注:\n表示换行,\t表示制表符,\\表示\等等。

  代码示例如下:

1 #特殊字符表现形式
2 >>>print('I\'am learning\nPython')
3 I'am learning
4 Python
5 >>>print('\\\n\\')
6 \
7 \

  4.转义字符 \ 并非万能钥匙

  其实,使用转义字符 \ 并不是万能的,有时会比较麻烦。当然啦,Python已经为您想在前面,可以使用r' '(‘ ’内部的字符串不转义)。

1 #r' '不转义
2 >>>print('\\\n\\')
3 \
4 \
5 >>>print(r'\\\n\\')
6 \\\n\\

  5.多行

  如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容。

1 #字符串内部很多行,可以使用‘‘‘...’’’
2 >>> print('''apple
3 ... banana
4 ... orange''')
5 apple
6 banana
7 orange

  注意:上面是在交互式命令行内输入,注意在输入多行内容时,提示符由>>>变为...,提示你可以接着上一行输入,注意...是提示符,不是代码的一部分。当输入完结束符``` 和括号)后,执行该语句并最终打印结果。

布尔值

  布尔值与布尔表达式的表示完全一致。一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来:

  布尔值何时为假,何时又为真?

  下面的值作为布尔表达式的时候,会被解释器看做False:

  False、None、0、0.0、“”、()、[]、{}

 1 #标准值False和None、所有类型的数字0、
 2 #空序列(空字符串、元组、列表)以及空字典都为假
 3 #其他一切都被解释为真!!!
 4 #代码展示布尔值为False的情况
 5 >>>bool(False)
 6 False
 7 #整数
 8 >>>bool(0)
 9 False
10 #浮点数
11 >>>bool(0.0)
12 False
13 #字符串(单引号和双引号)
14 >>>bool('')
15 False
16 >>>bool("")
17 False
18 #空列表
19 >>>bool([])
20 False
21 #空元组
22 >>>bool(())
23 False
24 #空字典
25 >>>bool({})
26 False
Bool值为False情况汇总

  布尔值可以用and、ornot运算。 

  and运算是与运算,or运算是或运算,not运算是非运算。

  特别地,请读者想想为什么???最好在评论区展示想法,谢谢!

1 #Why???
2 >>>3 and 6
3 6
4 >>>3 and 1
5 1
6 >>>7 or 4
7 7
8 >>>4 or 7
9 4

None(空值)

  空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。此外,Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型。

变量

  变量的命名规则与其它编程语言类似,但在python中定义变量时无须声明类型。 

  这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java,c,c++等等。

  在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。

  对变量赋值x = y是把变量x指向真正的对象,该对象是变量y所指向的。随后对变量y的赋值不影响变量x的指向。

  示例代码如下:

1 #Python变量赋值
2 >>>a = 12   #变量a为Int型
3 >>>pring(a)
4 12
5 >>>a = 'ABC'   #变量a为字符串
6 >>>print(a)
7 ABC

  Python中,变量时时刻刻会被用到。因此,必须牢记Python是一种动态语言!!!

常量

  说到常量,您最先想到什么?我想应该是π吧,山巅一寺一壶酒……哈哈~~~

  所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量。

1 #常量之约定俗成
2 >>>PI = 3.1415926

  但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,如果你一定要改变变量PI的值,也没人能拦住你。

  因此,约定俗成的东西,大家一定要遵守,不能坏了规矩。

基本运算【主要为除法】

  在Python中,基本运算包括加减乘除、Bool运算等。那为什么主要讲除法呢?因为它比较复杂呗。

  除法有三种,一种除法为 / ;另外一种为 //,还有一种为取余% 。

  一、除法为 /

   计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数。

#除法为 /
>>>2 / 3
0.6666666666666666
>>>10 / 3
3.3333333333333335
>>>10 / 5
2.0

  二、除法为 //

  // 称之为地板除,两个整数的除法仍然是整数。

1 #//为地板除
2 >>>10 // 3
3 3

  注:在python中//除等同于c语言中的/除。

  你没有看错,整数的地板除//永远是整数,即使除不尽。要做精确的除法,使用/就可以。

  三、取余%

  取余% 得到两个整数相除的余数。

#取余%
>>>10 % 3
1

  终上所述,无论整数做//除法还是取余数,结果永远是整数,所以,整数运算结果永远是精确的。

  至于其它基本运算,它们没有什么特殊之处,与数学中的内容几乎相同。

  在Python中,整数和浮点数均没有大小限制。

  然而,某些语言的整数根据其存储长度是有大小限制的,例如Java对32位整数的范围限制在-2147483648-2147483647

  Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!