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代表题号)。然后将代码提交给老师。

  1. 等腰三角形的底为10,高为14,请求出它的面积。参考代码

python l = 10 h = 14 s = l * h / 2 print( s )

  1. 有半径为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 (字典)等。

Python常用的基本数据类型

数据类型 类型说明
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)班有三名同学,他们的个人情况是:

张三,男生,身高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. 编写一段程序,实现如下功能: 参考代码

屏幕上提示:”今天是一周的第几天?“ ,要求用户输入一个数字(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. 关系运算符与关系表达式

判断数据大小关系的运算符称为关系运算符,关系运算符有:“>”(大于)、”>=”(大于等于)、“<”(小于)、“<=”(小于等于)、“==”(等于)、“!=”(不等于)。

由关系运算符连接而成的表达式称为关系表达式

关系表达式的值为TrueFalse,对应于整数1或0直接参与其他运算。

例如,关系表达式“5>=3”的值为True,“9<8”的值 为 False。

4. 赋值运算符与赋值表达式

在Python中对变量的赋值通过赋值运算符“=”来完成。

赋值号不是等号,具有方向性,由右边赋给左边,赋值号左边只能是变量,而不能是常量或表达式。

Python的赋值 运算符有多种,具体描述如表4-5所示。

表4-5 Python语言的赋值运算符

赋值运算符 描述 示例
= 直接赋值 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. 运算符的优先级

  • 当一个表达式中有多种运算符吋,运算的顺序将根据运算符的优先级由高到低进行运算。

  • 如果是同级运算则按从左到右的顺序进行。

表4-7 Python常用运算符的优先级

优先级 运算符 功能及说明 类型
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默认带有一些常用的函数,如求绝对值函数、求和函数、求最大值 和最小值函数等。

表4-8 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,