4.1程序设计语言的基础知识
4.1.1 Python的常量和变量
数据总是以常量或变量两种形式出现在程序中。
1. 常量
常量是指在程序运行过程中其值始终不发生变化的量,通常是固定的数值或字符串。
例如,45, -30.2001,'Hello', ’Good’等都是常量。
常量可以在程序中直接使用,
如语句 “x=30*40”表示将30乘40的结果赋值给x,其中30和40都是常量,可以直接在程序中使用 以表示数值30和40。
2. 变量
变量是指在程序运行过程中其值可以发生变化的量。
在程序设计语言中,变量可以用指定的名字来代表,
即变量由变量的“名字”:变量名(又称“标识符”)和变量的“内容”(又 称“值”)两部分组成。
1) Python变量命名规则
- 组成字符
- 字母(A〜Z,a〜z)
- 数字(0〜9)
-
下划线
-
特殊要求
-
第一个字符必须是字母或下划线,而不能是数字。
如sl,k,num, pai ,name, t1,num_1 , sn001, _result
- 在标识符中,字母大小写是有区别的。
如“value”与“Value”是两个不同的标识符。
注意:在Python中,如果使用非法标识符,在运行程序时会有相关报错信息。
2) 变量的内容(变量的值)在程序运行过程中是可以变化的。
#coding:gbk #在geany等编辑器环境中需要指定字符编码类型
##变量的值在程序运行过程中可发生变化
a = 10 #变量a赋值为10
b = 2 #变量b赋值为2
c = 0 #变量c赋值为0
print("a=",a, ",b=",b) #输出a,b的值
c = a #将a的值赋给c
a = b #将b的值赋给b
b = c #将c的值赋给a
print("a=",a, ",b=",b) #输出a,b的值,可以看到a,b的值互换了
3) Python是动态语言,变量不需要定义数据类型,其数据类型不固定,需要根据其赋予的值来确定其数据类型。
name = "张三"
type(name)
##输出:<class 'str'>
name = 100
type(name)
##输出:<class 'int'>
4.1.1 学生实践
选用python代码编辑器,求出下面问题的解,把代码保存为:“411x.py”(注:x代表题号)。然后将代码提交给老师。
- 等腰三角形的底为10,高为14,请求出它的面积。参考代码
python
l = 10
h = 14
s = l * h / 2
print( s )
- 有半径为3,9,33的三个圆形, 请求出它们面积的总和。如用到圆周率,取值为3.14159。参考代码
python
PI = 3.14159 #圆周率PI
r1 = 3 #将在三个圆半径分别存入变量r1,r2,r3中
r2 = 9
r3 = 33
s= PI *( r1*r1 + r2*r2 + r3*r3 )
print( s )
4.1.2 Python的数据类型
计算机能处理的远不只数值数据,还可以是文本、图形、音频、视频、网页等各种各样的数据。不同的数据,需要定义不同的数据类型。
Python能够直接处理的常用数据类型有Number (数值)、String (字符串)、List (列表)、Tuple (元组)、Sets (集合)、 Dictionary (字典)等。
数据类型 | 类型说明 |
---|---|
Number (数值) | Python主要支持以下三种不同的数值类型: 整型(int):通常被称为整型或整数。在Python版本中,整型数没有限制大小。 浮点型(float):浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法 表示, 如2.5e2 =2.5 x 10^2^=250。 复数(complex):复数由实数部分和虚数部分构成,可以用a+bj或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。 |
String(字符串) | 字符串是以单引号或双引号括起来的任意文本,如”xyz”等。 字符串的索引从0开始,-1为从末尾开始的位置。 |
List (列表) | 列表是写在方括号之间、用逗号分隔开的元素列表。 例如,list1=['Good','Run',1997,2000]和list2=[1,2,3,4,5,6,7]。 列表的数据项不需要具有相同的类型。 与字符串的索引一样,列表索引从0开始。 Python已经内置确定列表的长度以及确定最大和最小的元素的方法。 |
Tuple (元组) | Python的元组与列表类似,不同之处在于元组的元素不能修改。 元组使用小括号,创建元组只需要在括号中添加元素,并使用逗号隔开。 例如,tup1=(‘Good’,'Run’,1997,2000)和tup2=(1,2,3,4.5)。 元组与字符串类似,可以被索引且下标索引从0开始,-1 为从末尾开始的位置,也可以进行截取。 |
Sets (集合) | 集合是一个无序不重复元素的序列。 基本功能是进行成员关系测试和删除重复元素。 可以使用大括号{ }或者set( )函数创建集合。 创建一个空集合必须用set()而不 是{},因为{ }是用来创建一个空字典的。 |
Dictionary (字典) | 字典是无序的对象集合。 与列表的区别在于:列表是有序的对象集合。 字典当中的元素是通过键来存取的,而不是通过偏移存取。 字典用{ }标识,它是一个无序的 “键(key):值(value)"对集合。 键必须使用不可变类型。 在同一个字典中,键必须是唯一的。 |
4.1.2 学生实践
按要求编写程序,把程序代码保存为:“412x.py”(注:x是题号) ,调试无误后,将代码提交给老师。
- 高一(1)班有三名同学,他们的个人情况是:
张三,男生,身高1米68、李四身高是178cm,男生;王五是女生,身高1.62m,
请将三个人的信息存入一个列表中,再按下面的格式输出三个人的信息。
输出格式为:
张三,男,1.68, 李四,男,1.78, 王五,女,1.62,
注意:每一行输出一个人的信息,每一项信息的间隔使用了逗号,输出格式中,身高单位是:米 参考代码
python
stud1=["张三","男",1.68] #将第1位同学的信息存入列表stud1
stud2=["李四","男",1.78] #将第2位同学的信息存入列表stud2
stud3=["王五","女",1.62] #将第3位同学的信息存入列表stud3
print(stud1[0],stud1[1],stud1[2],sep=",")
print(stud2[0],stud2[1],stud2[2],sep=",")
print(stud3[0],stud3[1],stud3[2],sep=",")
- 编写一段程序,实现如下功能: 参考代码
屏幕上提示:”今天是一周的第几天?“ ,要求用户输入一个数字(1-7),输出”今天是:星期几“的文本。
```python
运行示例:
今天是一周的第几天?7 今天是:星期日 ```
提示:编程可能用到的函数:
s1 = input('提示文本') #接收键盘输入的内容保存到变量s1中,类型为字符串
num = int(s1) #将字符串s1中的数字转换成整型的数值,赋值给num变量
4.1.3 Python的运算符与表达式
-
在Python程序设计语言中对常量或变量进行运算或处理的符号称为运算符,参与运算的对象称为操作数。
-
常用的运算符有算术运算符、逻辑运算符、关系运算符、赋值运算符、成员运算符等。
-
由运算符、操作数连接而成的式子称为表达式。
-
操作数可以是常量、 变量、函数等。
1. 算术运算符与算术表达式
包括“+”,“-“,“*”,“/”, ”%”,”**”和“//”,分别表示加、减、乘、除、求余、幂运算和整除。
例如,“7%3=1”表示7除以3的余数,即1;
“10**20” 表示10的20次方,10^20^。
由算术运算符连接的表达式称为算术表达式。
例如: a+3*c , ( x+y) *n-7 等。
2. 逻辑运算符与逻辑表达式
- 逻辑运算符包括“and”(与)、“or”(或)、“not”(非)共三个。
- 由逻辑运算符连接而成的表达式称为逻辑表达式。
- 逻辑表达式的值为True或False,可对应于整数1或0直接参与其他运算。
- 逻辑表达式的运算顺序要根据逻辑运算符的优先级而定。
- 假设变量a为0, b为1,c为2,则对应的逻辑表达式及其值如表4-4所示。
运算符 | 逻辑表达式 | 描述 | 示例 a=0,b=1,c=2 |
---|---|---|---|
and | x and y | “与”。如果为False, x and y返问False,否则它 返回3。的计算值。 | (a and b) 返冋0。 (c and b) 返冋 1 |
or | x or y | “或”。如果*是True,它返的值,否则它返回 y的计算值。 | (a or 6)返回 1。 (c or b)返回2。 |
not | not x | “非”。如果x为True,返回False;如果x为 False,它返回 True。 | not(a and b)返回 True。 |
3. 关系运算符与关系表达式
判断数据大小关系的运算符称为关系运算符,关系运算符有:“>”(大于)、”>=”(大于等于)、“<”(小于)、“<=”(小于等于)、“==”(等于)、“!=”(不等于)。
由关系运算符连接而成的表达式称为关系表达式。
关系表达式的值为True或False,对应于整数1或0直接参与其他运算。
例如,关系表达式“5>=3”的值为True,“9<8”的值 为 False。
4. 赋值运算符与赋值表达式
在Python中对变量的赋值通过赋值运算符“=”来完成。
赋值号不是等号,具有方向性,由右边赋给左边,赋值号左边只能是变量,而不能是常量或表达式。
Python的赋值 运算符有多种,具体描述如表4-5所示。
赋值运算符 | 描述 | 示例 |
---|---|---|
= | 直接赋值 | x=y 或 pi=3.14159 |
+= | 加法赋值 | x+=y相当于 x=x+y |
-= | 减法赋值 | x-=y相当于x=x-y |
**= | 指数幂赋值 | 相当于 x=x**y |
*= | 乘法赋值 | x*=y相当于x=x*y |
%= | 求余赋值 | x%=y 相当 x= x%y |
/= | 除法赋值 | x/=y相当于x=x/y。 |
//= | 整除赋值 | 相当于 x=x//y |
5. 成员运算符
除了前面的运算符,Python用成员运算符判断序列中是否有某个成员。Pyduni的成员 运算符描述如表4-6所示。
表4-6 Python语言的成员运算符
成员运算符 | 描述 | 示例 |
---|---|---|
in | x in y 如果x是序列y的成员,则计算结 果为True,否则为False。 | 3 in [1,2,3,4], 计算结果为True。 5 in [1,2,3,4],计算结果为False。 |
not in | x not in y 如果x不是序列y的成员,则计算结果为True,否则为False。 | 3 not in [1,2,3,4],计算结果为False。 5 not in [1,2,3,4],计算结果为True。 |
6. 运算符的优先级
-
当一个表达式中有多种运算符吋,运算的顺序将根据运算符的优先级由高到低进行运算。
-
如果是同级运算则按从左到右的顺序进行。
优先级 | 运算符 | 功能及说明 | 类型 |
---|---|---|---|
1 | ** | 指数运算。 | 算术运算符 |
2 | *、/、%、// | 乘、除、求余、整除、 | 算术运算符 |
3 | +、- | 加运算、减运算。 | 算术运算符 |
4 | >、>= 、<、<= | 大于、大于等于。小于、小于等于。 | 关系运算符 |
5 | ==、!= | 等于、不等于。 | 关系运算符 |
6 | =、%=、/=、//= 、-=、+=、*=、**= | 赋值运算。 | 赋值运算符 |
7 | is、is not | 是、不是 | 标识运算符 |
8 | in、not in | 在里面、不在里面 | 成员运算符 |
9 | not | 非 | 逻辑运算符 |
10 | and | 逻辑与 | 逻辑运算符 |
11 | or | 逻辑或 | 逻辑运算符 |
4.1.4 Python的函数
函数是Python语言程序的基石,是组织好的、可重复使用的、用来实现单一或相关联功能的代码段。
Python默认带有一些常用的函数,如求绝对值函数、求和函数、求最大值 和最小值函数等。
函数名称 | 使用说明 |
---|---|
abs(x) | 返回x的绝对值。 |
len(x) | 计算变量x的长度,但x必须是可以计算长度的类型。 |
min(x) | 返回变量x的最小值。 |
max(x) | 返回变量x的最大值。 |
int(x) | 把变量x转换成整型。 |
float(x) | 将变量x转换成浮点型。 |
sum(x) | 计算变x中元素的总和。 |
bin(x) | 把数值x转换为二进制数字。 |
bool(x) | x如果是False、None或是空值就返回False。 |
chr(x) | 返回整数x对应的ASCII字符。 |
divmod(a,b) | 返回a/b的商和余数,以元组的方式返回。 |
all(x) | x中的所有元素都是True才会返回True。 |
any(x) | x中的所有元素中只要有一个是True就会返回True。 |
input(x) | 显示信息X,并要求输人数据。 |
print() | 输出函数。 |
4.1.4 学生实践
有一堆无序的数据(共7个),请按下面的要求输出:
- 第一行先输出这些数字的和,然后再输出最小值和最大值, 每个输出数据以一个空格间隔,
- 第二行输出按从小到大排序好的这些数字,每个数字之间用英文逗号分隔。
算法描述:
1、声明一个列表变量,然后将这些数存入列表中。
li= [102,133,156,101,122,121,139]
2、使用sum()函数,求列表所有数字的和。
total= sum(li)
3、使用 min() 和max()两个函数,求出最小值和最大值。
python #定义两个变量 v_max 存储最大值 ,v_min 存储最小值 v_max=max(li) v_min=min(li)
5、使用列表内置函数sort()将元素按从小到大顺序排列。python #list类型的数据,如果都是数值,就可以使用内置函数sort进行排序 li.sort()
6、使用print()函数输出处理结果。python print(total,max,min) for x in li: #使用了for循环结构 print(x,end=',')
7个无序的数字如下:
102 133 156 101 122 121 139`
示例输出:
874 101 156
101,102,121,122,133,139,156,