Python基础(1)——数据类型与基础语法

数据类型

计算机中的变量是实际存在的数据或者说是存储器中存储数据的一块内存空间,变量的值可以被读取和修改,这是所有计算和控制的基础。计算机能处理的数据有很多中类型,除了数值之外还可以处理文本、图形、音频、视频等各种各样的数据,那么不同的数据就需要定义不同的存储类型。Python中的数据类型很多,部分如下:

整型(int):Python中可以处理任意大小的整数(Python 2.x中有intlong两种类型的整数,但这种区分对Python来说意义不大,因此在Python 3.x中整数只有int这一种了),而且支持二进制(如0b100,换算成十进制是4)、八进制(如0o100,换算成十进制是64)、十进制(100)和十六进制(0x100,换算成十进制是256)的表示法。

浮点型(float):浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(如123.456)之外还支持科学计数法(如1.23456e2)。

字符串型(str):字符串是以单引号或双引号括起来的任意文本,比如'hello'"hello",字符串还有原始字符串表示法、字节字符串表示法、Unicode字符串表示法,而且可以书写成多行的形式(用三个单引号或三个双引号开头,三个单引号或三个双引号结尾)。

布尔型(bool):布尔值只有TrueFalse两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来(例如3 < 5会产生布尔值True,而2 == 1会产生布尔值False)。

空值类型(None):表示变量的值为None

复数型(complex):形如3+5j,跟数学上的复数表示一样,唯一不同的是虚部的 i 换成了 j

数据类型之间的转换:

int():将一个数值或字符串转换成整数,可以指定进制。

float():将一个字符串转换成浮点数。

str():将指定的对象转换成字符串形式,可以指定编码。

chr():将整数转换成该编码对应的字符串(一个字符)。

ord():将字符串(一个字符)转换成对应的编码(整数)。

变量

在Python中,变量命名需要遵循以下这些必须遵守硬性规则和强烈建议遵守的非硬性规则。

硬性规则:

​ 1、变量名由字母(广义的Unicode字符,不包括特殊字符)、数字和下划线构成,数字不能开头;

​ 2、大小写敏感(小写的 a 和大写的 A 是两个不同的变量);

​ 3、不要跟关键字(有特殊含义的单词,后面会讲到)和系统保留字(如函数、模块等的名字)冲突。

PEP 8要求:

​ 1、用小写字母拼写,多个单词用下划线连接;

​ 2、受保护的实例属性用单个下划线开头;

​ 3、私有的实例属性用两个下划线开头。

当然,给变量(标识符)命名做到见名知意也是非常重要的。

运算符与表达式

img
运算符优先级

赋值表达式: 变量 = 表达式

表达式为真的情况: not 0 -1 等为真

表达式为假的情况: 0 '' None False [] () {}

格式化输出

Python中,在使用print()函数在进行打印输出时,可以format()% 占位符格式化输出字符串。

常见的%占位符有:

占位符 替换内容
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数

其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数:

1
2
print('%2d-%02d' % (3, 1))  # -->   3-01
print('%.2f' % 3.1415926) # --> 3.14

有些时候,字符串里面的%是一个普通字符,这个时候就需要转义,用%%来表示一个%

1
print('the rate: %d %%' % 7)  # --> the rate: 7 %

另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}{1}……,不过这种方式写起来比%要麻烦得多:

1
print('Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125))  # Hello, 小明, 成绩提升了 17.1%

注释

注释分为单行注释和多行注释。

单行注释直接在要注释的行前面加#

1
# 这是一行单行注释

多行注释可以使用用'''"""开头,'''"""结尾

1
2
3
4
5
6
7
8
9
10
11
'''
这也是多行注释
这也是多行注释
...
'''

"""
这里是多行注释
这里是多行注释
...
"""

小练习

1、将华氏温度转换为摄氏温度 F = 1.8 * C + 32,F表示华氏温度,C表示摄氏温度

1
2
3
f = float(input('请输入华氏温度: '))
c = (f - 32) / 1.8
print('%.1f华氏度 = %.1f摄氏度' % (f, c))

2、输入圆的半径计算计算周长和面积

1
2
3
4
5
6
7
import math

radius = float(input('请输入圆的半径: '))
perimeter = 2 * math.pi * radius
area = math.pi * radius * radius
print('周长: %.2f' % perimeter)
print('面积: %.2f' % area)

3、输入年份判断是不是闰年,是则输出 True,否则输出 False

1
2
3
4
5
year = int(input('请输入年份: '))
# 如果代码太长写成一行不便于阅读 可以使用\或()折行
is_leap = (year % 4 == 0 and year % 100 != 0 \
or year % 400 == 0)
print(is_leap)