Python 自学笔记day1

释放双眼,带上耳机,听听看~!

在Python中能够直接处理的数据类型有以下几种:

一,整型

python 可以处理任意大小的整数,这当然也包括负整数了,在python的程序中,整形的表示方法和数学上的完全一样。比如:1,1000,-9,0等。

当然,整数也可以用十六进制的方法来表示,这样比较方便,十六进制用0x前缀和0-9、a-f表示,比如,0xff0、0xabcd4这些来表示。

1、标准整形

python的标准整形是最通用的数字类型,在32位的机器上取值范围-2^312^31-1,如果是64位的机器的话数据就是64位的。python的标准整形等价于C语言的长整形(有符号)。

2、长整形

值得一提的是python的长整形,跟其他语言的长整形的取值范围是32或64位。python的长整形是与你的机器的支持的(虚拟)内存大小有关。可以这么说,python可以轻松表达很大的整数。

当你的程序需要比标准类型更大的整数是,你可以在整数的后面加上L大小写都可以)。比如

45677777788888L、0xkdkjdjdjjdjjdjdjdjL。

建议使用python的核心风格:用大写字母“L”表示长整形

二、浮点型

浮点型就是指的是小数,为什么叫做浮点数呢?是因为按照科学数法表示的,python的浮点型类似于C语言中的double类型。

是双精度浮点型。可以直接用十进制课科学技术法表示。每个浮点型占8个字节(64位)。实际的精度依赖于机器的架构和python解释器的编译器。

浮点型值通常用一个小数点和一个可选的后缀e(大写或小写,表示科学计数法)。在e和指数之间可以用+和-来表示指数的正负。比如:

0.0 -777. 1.6 96e3 * 1.0 -1.609E-19

三 、复数

一个实数和虚数来表示一个复数。一个复数是一对有序的浮点型(x,y),表示x+yJ,其中x表示实数部分,也表示虚数部分。

python关于复数的几个概念:

  1. 虚数不能单独存在,他们总是和一个0.0的实数部分一起来构成一个复数
  2. 复数由实数和虚数构成
  3. 表示虚数的语法:real+imagj
  4. 实数部分和虚数部分都是浮点型
  5. 虚数部分必须要有后缀J或j

比如:

64.375+1j 4.32-8.5j 1.23e-045+6.7e+089j

复数的内建属性

复数拥有conjugate(共轭的意思)的方法。调用它可以返回该复数的共轭复数对象。

  • 复数属性
  1. mum.real 复数的实部
  2. mum.img 复数的虚部
  3. mun.conjugate 返回复数的共轭复数

四、字符串

print语句可以向屏幕上输出指定的文字。比如输出’hello, world’,用代码实现如下:

 print'hello, world'

1、字符串的表示

字符串是以“”包含起来的任意文本,比如 ‘abc’、”cba”等等。注意‘’“”只是一种表示的方式,表示字符串的一部分,这样问题就来了,如果字符串本身就带有怎么办呢?比如,我们要表示字符串 I’m OK ,这时,可以用” “括起来表示:

"I'm OK"

类似的,如果字符串包含,我们就可以用 ’’括起来表示:

'I like "python" '

可是问题又来了,如果字符串 ”“ 都包含怎么办啊?这种情况就需要一些特殊的字符进行 转义了,python 字符串使用 \ 进行转义。比如 Bod said “I’m OK”.

由于 ‘ 和 “ 会引发歧义,所以,我们要在它前面插入一个 \ 表示这是一个普通的字符串,不代表字符的起始,所以这样表示:

'Bod said \"I\'m OK\". '
Python 自学笔记day1

请注意:转义字符不计入字符串的内容中

常用的转义字符还有:

  1. \n 表示换行
  2. \t 表示一个制表符
  3. \\ 表示字符的本身

2、python 中raw字符串于多行字符串

如果一个字符串中有很多需要转义的字符,对于每一个字符都需要进行转义的话很麻烦的。为了解决这个问题,我们可以在字符串前面 加一个前缀 r ,表示这是一个raw 字符串,里面的字符就不用转义了。

r'\($_$)/\($_$)/'



r’…….’ 的表示方法不能表示多行字符串,也不能表示的字符串啊?

需要表示多行字符串的话。可以使用 ”’>>>”’ 表示。

''' line 1
line2 
line3 
'''

上面的跟下面的表示方法完全一样的

'line 1\line2 \line3 '

还可以在多行字符串前加上 r , 把多行字符串也变成一个raw字符串。

r'''Python is created by "Guido".
It is free and easy to learn.
Let's start learn Python in qtj!'''

3、python中的Unicode字符

字符串中还有一个编码的问题,因为计算机只能处理数字,就必须把文本转换成为数字才能处理。所以出现了ASCll 编码。

这个编码是用来表示英文的,但是要表示中文怎么办?

所以,中国制定了GB2312,用来把中文编进去了。类似,其他国家也有这个问题,为了统一所有文字,Unicode就出现了。

这样就不会出现乱码了。比如

print u'你好'

请注意:不加 u ,中文不能正常的显示,转义字符和多行显示照样能使用

如果中文字符在python环境中 出现 错误 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释

# -*- coding: utf-8 -*-
目的是告诉Python解释器,用UTF-8编码读取源代码。

五、布尔类型

布尔类型只有 True 和 False 两种值,但是布尔类型的运算有以下几种;

与运算 :只有两个布尔值都是True 时,结果才为 True

True and True   # ==> True
True and False   # ==> False
False and True   # ==> False
False and False   # ==> False

或运算:只有一个位True,结果就是 True

True or True   # ==> True
True or False   # ==> True
False or True   # ==> True
False or False   # ==> False

非运算:把True变为False,或者把False变为True:

not True   # ==> False
not False   # ==> True

在python中,布尔类型可以跟其他的数据做 and 、or、not运算,比如

a = True
print a and 'a=T' or 'a=F'

计算的结果不是布尔类型,而是字符串’a=t’,为什么呢?

因为python把 0、空字符串、None (空语句)看成是False ,其他的数值和非空的字符串看成了True ,

and 和 or 运算的一条重要法则:短路计算

1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

六、python 整数与浮点数的运算

python的四则运算规则和数学上的四则运算规则完全一样。

基本运算:

1 + 2 + 3   # ==> 6
4 * 5 - 6   # ==> 14
7.5 / 8 + 2.1   # ==> 3.0375

使用括号可以提升优先级,这和数学运算完全一致,注意只能使用小括号,但是括号可以嵌套很多层:

(1 + 2) * 3    # ==> 9
(2.2 + 3.3) / (1.5 * (9 - 0.3))    # ==> 0.42145593869731807

和数学运算不同的地方是,Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数:

1 + 2    # ==> 整数 3
1.0 + 2.0    # ==> 浮点数 3.0

但是整数和浮点数混合运算的结果就变成浮点数了:

1 + 2.0    # ==> 浮点数 3.0

为什么要区分整数运算和浮点数运算呢?这是因为整数运算的结果永远是精确的,而浮点数运算的结果不一定精确,因为计算机内存再大,也无法精确表示出无限循环小数,比如 0.1 换成二进制表示就是无限循环小数。

那整数的除法运算遇到除不尽的时候,结果难道不是浮点数吗?我们来试一下:

11 / 4    # ==> 2

Python的整数除法,即使除不尽,结果仍然是整数,余数直接被扔掉。不过,Python提供了一个求余的运算 % 可以计算余数:

11 % 4    # ==> 3

如果我们要计算 11 / 4 的精确结果,按照“整数和浮点数混合运算的结果是浮点数”的法则,把两个数中的一个变成浮点数再运算就没问题了:

11.0 / 4    # ==> 2.75

给TA打赏
共{{data.count}}人
人已打赏
动态

Arduino惯性测量传感器-FXLN83XX三轴加速度传感器

2019-1-7 22:06:10

Python

序列:字符串、列表、元组

2018-11-25 11:33:35

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
'); })();