数据类型和变量
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解释器干了两件事情:
- 在内存中创建了一个'ABC'的字符串;
- 在内存中创建了一个名为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!'''