01 Python变量和数据类型

Python变量和数据类型

1 数据类型

计算机,顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然也可以处理各种数值。

但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据需要定义不同的数据类型。

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

(1)整数   十六进制用0x前綴0-9,a-f表示,如0xff00

(2)浮点数  1.24 1.23e9  1.2e-5

(3)字符串  'abc'  "abc"

(4)布尔值  True False    可以用and、or、not进行运算  短路运算

(5)空值  None

 

0、空字符串、None为false

其他数值、非空字符串为true

2 print语句

print可以向屏幕上输出指定的文字。

>>> print 'hello, world'

用逗号隔开时,每個逗号输出一个空格

>>> print 'The quick brown fox', 'jumps over', 'the lazy dog'

The quick brown fox jumps over the lazy dog

>>> print '100 + 200 = ', 100 + 200

100 + 200 = 300

 

3 注释

一行之中,#之后的都为注释

 

4 变量

变量用一个变量名表示,变量名必须是大小写英文、数字和下划线的组合,且不能用数字开头。

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

这种变量本身类型不固定的语言称为动态语言,与之对应的是静态语言。

静态语言在定义变量时必须制定变量类型,如果赋值的时候类型不匹配,就会报错,如java。

所以动态语言更加灵活。

 

变量在计算机内存中的表示:

a='ABC'  计算机干了两件事:

(1)在內存中创建了一个'ABC'的字符串;

(2)在內存中创建了一个名为a的变量,并把它指向'ABC'

 

a='ABC'

b=a

a='XYZ'

 

5 定义字符串

如果字符串本身包含引号,可以用另一种引号括起來:

"I'm OK"

'Learn "Python" in mooc'

如果既含单引号,又含双引号,可用\进行转义:

'Bob said\"I\'m OK\".'

常用转义字符:

\n 换行

\t  制表符

\\  表示\本身

 

6 raw字符串与多行字符串

在字符串前面加個前綴r,表示这是一个raw字符串,里面字符无需转义。

r'\(~~)/\(~~)/'

但是其不能表示多行字符串,也不能表示包含单引号和双引号的字符串。

 

如果要表示多行字符串,用三引号:

'''Line1

Line2

Line3'''

等同于'Line1\nLine2\nLine3'

 

还可以在多行字符串前添加r,变成多行raw字符串。

r'''Python is created by "Guido".

It is free and easy to learn.'''

 

7 Unicode字符串

字符串还有一个编码问题。

因为计算机智能处理数字,如果要处理文本,就必须把文本转换为数字才能处理。

最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大整数就是255(二进制11111111=十进制255),0-255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。

如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII码冲突,所以,中国制定了GB2312编码,把中文编进去。类似的,日文和韩文等其他语言也有这个问题。为了统一所有文字的编码,Unicode应运而生。Unicode把所有语言都统一到一套编码里,以解决乱码问题。

Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以了。

因为Python诞生的时间比Unicode标准发布的时间早,所以最早的Python只支持ASCII码,普通的字符串'ABC'在Python内部都是ASCII编码的。

Python在后來添加了对Unicode的支持,用u'...'表示,如

print u'中文'

 

如果中文字符串遇到UnicodeDecodeError,這是因为.py文件保存的格式有問題。

需要在第一行加注释:

# -*- coding: utf-8 -*-

目的是告诉Python解释器,用UTF-8编码读取源代码,然后另存为UTF-8格式。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值