数据类型和变量

1. 数据类型

1.1 整数

Python中不限制整数正负及大小,例如:1,-1,100,-100等等。计算机常用十进制和十六进制表示数值,比如十六进制表示方法是用前缀0x加后缀0-9、a-f表示(其中a~f代表整数10~15),例如:0x4f,0xa3f4等。

在python中,对于位数很多的可以用下划线'_'分隔位数,如100000可以写成100_000,这两种写法是完全一样的;同理十六进制数也可以写成0x3a_4b。

1.2 浮点数

浮点数类似小数,但浮点数的小数点位置是可变的,比如1.23*10**9和12.3*10**8是完全相等的。浮点数也可以直接写成小数,如1.11,3.1415926,-34.54等。但小数点位数很多就必须用科学计数法来表示,在python中e替代10,1.11*10**9可以写成1.11e9或者11.1e8,0.000018可以写成1.8e-5。

1.3 字符串

字符串是以单引号 '  或双引号 "  括起来的文本,比如 'abc',"123"  等等。字符串 '123' 里只有1,2,3这3个字符。如果要让单引号 '  作为字符输出,可以用 " " 括起来,比如 "I'm Qy" 包含的字符是I,',m,空格,Q,y这6个字符。

如果字符串内部既包含 '  又包含 "  可以用转义字符 \  来标识,比如: 'I\'m \"OK\"!'   表示的字符串内容是:I'm "Qy"!

转义字符 \   可以转义很多字符

  • \n 表示换行,
  • \t 表示制表符
  • \\ 表示的字符就是\,

可以在python的交互式命令行用print()打印字符串看看:

>>> print('I\'m Qy.')I'm Qy.>>> print('I\'m learning\npython.')I'm learningpython.

对字符串中多个字符转义可以用 r'' ”, 表示 ” ”  内部的字符串默认不转义:

>>> print('\\\t\\')\       \>>> print(r'\\\t\\')\\\t\\

对多行输出可以用 '''...''' (三个单引号)格式,如下:

>>> print('''I... am... Qinyuan''')IamQinyuan

上面是在交互式命令行内输入,在.py程序中写程序如下:

print('''IamQinyuan''')

多行字符串 '''...''' 前面加上 r 同样可以将字符串设定为默认不转义。

1.4 布尔值

    布尔值只有两种结果:True、False,在计算机中就是0/1。python中可以直接用True、False表示布尔值,可以进行简单的大小比较:

>>> TrueTrue>>> FalseFalse>>> 23 > 13True>>> 23 > 56False

布尔值中有三种运算:and、or、not,即 与或非 运算。

  • and  —— 与运算,全为True结果才是True:
>>> True and TrueTrue>>> True and FalseFalse>>> False and FalseFalse>>> 23 > 21 and 43 > 13True
  • or  —— 或运算,其中一个为True结果就是True:
>>>True or TrueTrue>>> True or FalseTrue>>> False or FalseFalse>>> 53 > 23 or 13 > 35True
  • not  —— 非运算,就是让True->False,False->True:
>>> not TrueFalse>>> not FalseTrue>>> not 34 > 23True
  • 布尔值经常用在条件判断中,比如:
age = input('请输入您的年龄:')if age >= 18:    print('adult')else:    print('teenager')

1.5 空值

空值——None,但在python中None不等价于0,因为0是有意义的,而None是一个特殊的空值。后面我们还会学习python中的列表、字典等多种数据类型,还允许创建自定义数据类型。

2.变量

变量的概念基本上和我们数学中的未知数是一致的,不同之处在于python中变量既可以是数字,也可以是字符串等。变量会有变量名,而变量名可以是大小写字母、数字和下划线_ 的组合,但注意变量名开头不能是数字,比如:

>>>num = 23# 变量 num 是一个整数。>>>name = 'Qinyuan'# 变量 name是一个字符串。>>>TF = True# 变量 TF 是一个布尔值True。

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

>>>a = 123 #a是整数>>>print(a)123>>>a = 'ABC' #a变为字符串>>>print(a)ABC

变量在计算机中的存储理解,以下面程序为例:

>>>a = 'ABC'

Python解释器干了两件事情:

  1. 在内存中创建了一个'ABC'的字符串;
  2. 在内存中创建了一个名为a 的变量,并把它指向'ABC' 。

也可以将变量中的数据赋值给另外一个变量,并且后面对任意变量重新赋值都不会影响另一个变量的值,例如下面的代码:

>>>a = 'ABC'>>>b = a>>>a = 'XYZ'>>>print(b)ABC

3.常量

常量就是不变的量,如数学中的常数π就是一个常量。python中一般用全部大写的变量名表示常量,如下:

>>>PI = 3.14159265359

这里PI为一个变量,所以并不是硬性使它为一个常量,因此我们可以更改PI的值。

python中常用的几种除法运算:

  • 第一种除法: /  
>>> 10 / 33.3333333333333335

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

>>> 9 / 33.0
  • 第二种除法: // ,又称为地板除,两个整数的除法仍然是整数:
>>> 10 // 33

如果需要做精确的除法就用:/

  • //  除法只取结果整数部分,在python中可以用 % 进行余数计算,即得到两个整数相除的余数:
>>> 10 % 31

函数扩展

1.  upper( ):  将字符串改写成大写,示例程序:

>>>name='Qinyuan'>>>print(name.upper( ))QINYUAN

2.   lower( ):  将字符串改成小写,示例程序:

>>>name='Qinyuan'>>>print(name.lower( ))qinyuan

3.  title( ):  将字符串中单词首字母改成大写,示例程序:

>>>name='qin yuan'>>>print(name.title( ))Qin Yuan

4.  rstrip( ):  将字符串末尾的空白删除,示例程序:

>>>name=' Qin yuan '>>>print(name.rstrip( ))' Qin yuan'

5.  lstrip( ):  将字符串开头的空白删除,示例程序:

>>>name='  Qin yuan '>>>print(name.rstrip( ))'Qin yuan '

6.  strip( ):  同时剔除字符串两端的空白,示例程序:

>>>name='  Qin yuan  '>>>print(name.strip( ))'Qin yuan'

小结

(1)python中的数据类型有整数、浮点数、字符串、布尔值、空值等。

(2)变量可以赋值任意类型的数据,比如字符串、数值等;变量名不得以数字开头。


(3)python中整数和浮点数没有大小限制,超出一定范围会表示为无穷大 inf 。

练习

请用print()打印出以下变量的值:

#coding:utf-8n = 123f = 456.789s1 = 'Hello, Qinyuan's2 = 'Hello, \'Qinyuan\''s3 = r'Hello, "Qinyuan"'s4 = r'''Hello,Qinyuan!'''