教师资格证计算机专业课——考点(Python编程)

一、Python的基本数据类型

Python3 中有六个标准的数据类型: Number(数字)、String(字符)、List(列表)、Tuple(元组)、Set(集合)以及 Dictionary (字典)。


其中,Number(数字)、String (字符串 )、Tuple (元组)为不可变数据类型,List (列表)、Dictionary(字典)、Set (集合)为可变数据类型。

1、Number(数字)

Python3 支持 int、float、bool、complex(复数)。

在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。像大多数语言一样,数值类型的赋值和计算都是很直观的。内置的 type() 函数可以用来查询变量所指的对象类型。


2、String(字符串)

Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。

字符串的截取的语法格式如下:变量[头下标:尾下标]。

索引值以 0 为开始值,-1 为从末尾的开始位置。

加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,紧跟的数字为复制的次数。实例如下:

str = 'Hello word'

print (str) # 输出字符串

print (str[0:-1]) # 输出第一个到倒数第二个的所有字符

print (str[0]) # 输出字符串第一个字符

print (str[2:5]) # 输出从第三个开始到第五个的字符

print (str[2:]) # 输出从第三个开始的后的所有字符

print (str * 2) # 输出字符串两次

print (str + "TEST") # 连接字符串

3、List(列表)

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

列表是写在方括号 [] 之间、用逗号分隔开的元素列表。

和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

列表截取的语法格式如下:变量[头下标:尾下标]

索引值以 0 为开始值,-1 为从末尾的开始位置。

加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,紧跟的数字为复制的次数。实例如下:

list = [ 'abcd', 786 , 2.23, 'hello', 70.2 ]

tinylist = [123, 'hello']

print (list) # 输出完整列表

print (list[0]) # 输出列表第一个元素

print (list[1:3]) # 从第二个开始输出到第三个元素

print (list[2:]) # 输出从第三个元素开始的所有元素

print (tinylist * 2) # 输出两次列表

print (list + tinylist) # 连接列表

4、元组(tuple)

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。元组与字符串类似,可以被索引且下标索引从0开始,-1 为从末尾开始的位置。也可以进行截取(看上面,这里不再赘述)。其实,可以把字符串看作一种特殊的元组。元组中的元素类型也可以不相同:

tuple = ( 'abcd', 786 , 2.23, 'hello', 70.2 )

tinytuple = (123, 'hello')

print (tuple) # 输出完整元组

print (tuple[0]) # 输出元组的第一个元素

print (tuple[1:3]) # 输出从第二个元素开始到第三个元素

print (tuple[2:]) # 输出从第三个元素开始的所有元素

print (tinytuple * 2) # 输出两次元组

print (tuple + tinytuple) # 连接元组

string、list 和 tuple 都属于 sequence(序列)。

注意:

  • 1、与字符串一样,元组的元素不能修改。
  • 2、元组也可以被索引和切片,方法一样。
  • 3、注意构造包含 0 或 1 个元素的元组的特殊语法规则。
  • 4、元组也可以使用+操作符进行拼接。

5、集合(set)

集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式:parame = {value01,value02,...} 或者 set(value)。

实例:

student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}

print(student) # 输出集合,重复的元素被自动去掉

# 成员测试

if 'Rose' in student :

print('Rose 在集合中')

else :

print('Rose 不在集合中') # set可以进行集合运算

a = set('abracadabra')

b = set('alacazam')

print(a)

print(a - b) # a 和 b 的差集

print(a | b) # a 和 b 的并集

print(a & b) # a 和 b 的交集

print(a ^ b) # a 和 b 中不同时存在的元素

输出结果:

{'Mary', 'Jim', 'Rose', 'Jack', 'Tom'}
Rose 在集合中
{'b', 'a', 'c', 'r', 'd'}
{'b', 'd', 'r'}
{'l', 'r', 'a', 'c', 'z', 'm', 'b', 'd'}
{'a', 'c'}
{'l', 'r', 'z', 'm', 'b', 'd'}

6、字典(dictionary)

字典(dictionary)是Python中另一个非常有用的内置数据类型。

列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。

键(key)必须使用不可变类型。

在同一个字典中,键(key)必须是唯一的。

注意:

  • 1、字典是一种映射类型,它的元素是键值对。
  • 2、字典的关键字必须为不可变类型,且不能重复。
  • 3、创建空字典使用 { }

二、Python运算符及其优先级

1、算数运算符

以下假设变量a为10,变量b为21:

运算符

描述

实例

+

加 - 两个对象相加

a + b 输出结果 31

-

减 - 得到负数或是一个数减去另一个数

a - b 输出结果 -11

*

乘 - 两个数相乘或是返回一个被重复若干次的字符串

a * b 输出结果 210

/

除 - x 除以 y

b / a 输出结果 2.1

%

取模 - 返回除法的余数

b % a 输出结果 1

**

幂 - 返回x的y次幂

a**b 为10的21次方

//

取整除 - 向下取接近除数的整数

>>> 9//2
4
>>> -9//2
-5

2、比较运算符

以下假设变量a为10,变量b为20:

运算符

描述

实例

==

等于 - 比较对象是否相等

(a == b) 返回 False。

!=

不等于 - 比较两个对象是否不相等

(a != b) 返回 True。

>

大于 - 返回x是否大于y

(a > b) 返回 False。

<

小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。

(a < b) 返回 True。

>=

大于等于 - 返回x是否大于等于y。

(a >= b) 返回 False。

<=

小于等于 - 返回x是否小于等于y。

(a <= b) 返回 True。

3、赋值运算符

以下假设变量a为10,变量b为20:

运算符

描述

实例

=

简单的赋值运算符

c = a + b 将 a + b 的运算结果赋值为 c

+=

加法赋值运算符

c += a 等效于 c = c + a

-=

减法赋值运算符

c -= a 等效于 c = c - a

*=

乘法赋值运算符

c *= a 等效于 c = c * a

/=

除法赋值运算符

c /= a 等效于 c = c / a

%=

取模赋值运算符

c %= a 等效于 c = c % a

**=

幂赋值运算符

c **= a 等效于 c = c ** a

//=

取整除赋值运算符

c //= a 等效于 c = c // a

:=

海象运算符,可在表达式内部为变量赋值。Python3.8 版本新增运算符

在这个示例中,赋值表达式可以避免调用 len() 两次:

if (n := len(a)) > 10:
    print(f"List is too long ({n} elements, expected <= 10)")

4、位运算符

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:a = 0011 1100 ;b = 0000 1101。

运算符

描述

实例

&

按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

(a & b) 输出结果 12 ,二进制解释: 0000 1100

|

按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。

(a | b) 输出结果 61 ,二进制解释: 0011 1101

^

按位异或运算符:当两对应的二进位相异时,结果为1

(a ^ b) 输出结果 49 ,二进制解释: 0011 0001

~

按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1

(~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。

<<

左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。

a << 2 输出结果 240 ,二进制解释: 1111 0000

>>

右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数

a >> 2 输出结果 15 ,二进制解释: 0000 1111

5、逻辑运算符

Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:

运算符

逻辑表达式

描述

实例

and

x and y

布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。

(a and b) 返回 20。

or

x or y

布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。

(a or b) 返回 10。

not

not x

布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

not(a and b) 返回 False

6、成员运算符

除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。

运算符

描述

实例

in

如果在指定的序列中找到值返回 True,否则返回 False。

x 在 y 序列中 , 如果 x 在 y 序列中返回 True。

not in

如果在指定的序列中没有找到值返回 True,否则返回 False。

x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

7、身份运算符

身份运算符用于比较两个对象的存储单元

运算符

描述

实例

is

is 是判断两个标识符是不是引用自一个对象

x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False

is not

is not 是判断两个标识符是不是引用自不同对象

x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

8、运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

运算符

描述

**

指数 (最高优先级)

~ + -

按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)

* / % //

乘,除,求余数和取整除

+ -

加法减法

>> <<

右移,左移运算符

&

位 'AND'

^ |

位运算符

<= < > >=

比较运算符

== !=

等于运算符

= %= /= //= -= += *= **=

赋值运算符

is is not

身份运算符

in not in

成员运算符

not and or

逻辑运算符

三、Python程序设计

1、选择结构

Python 语言的选择结构包括if、if...else、if...elif 三种结构。其特点是:

(1)用elif代替了 else if,所以i语可的关键字为:if ...elif...else。

(2)每个条件后面要使用冒号: ,表示接下来是满足条件后要执行的语句块。

(3)使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。

(4)在Python 中没有 switch ...case 语句。if、if...else、if...elif 三种结构如下表所示。

if结构:if<表达式>:语句

if...else结构:if<表达式>:

语句 1

Else:

语句2

if...elif结构:if<表达式> :

语句 1

elif< 表达式2>:

语句 2

elif<表达式n>:

语句 n

else:

语句 n+1

2、循环结构

(1)while循环

while 语句先判断表达式,后执行语句,循环体至少执行0次。while 循环语句如下:

while<表达式>:

语句

while< 表达式>:

语句

else:

语句

(2)for循环

Python 的 for 循环可以历任何序列的项,如一个列表或者一个字符串。for 循环语句如下:

for<变量 >in<序列>:

<语块>

for<变量 >in<序列>:

<语块 1>

else:

<语块2>

当循环执行完毕(即遍历完 iterable 中的所有元素)后,会执行 else 子句中的代码,如果在循环过程中遇到了 break 语句,则会中断循环,此时不会执行 else 子句。

四、经典循环例题

例题1:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。

源代码:

for i in range(1,5):

for j in range(1,5):

for k in range(1,5):

if( i != k ) and (i != j) and (j !=k):

print(i,j,k)

例题2:百元买百鸡。假定小鸡每只5角,公鸡每只2元,母鸡每只3元,编程求解购鸡方案。

分析:小鸡加上公鸡加上母鸡等于100只,3*母鸡加上2*公鸡 加上0.5*小鸡等于100块钱。

源代码:

for x in range(0,34):

for y in range(0,51):

for z in range(0,101):

if x+y+z==100 and 3*x+2*y+0.5*z==100:

print(x,y,z,sep="\t")#"\t"为制表符

相关文章

python字典中如何添加键值对

添加键值对首先定义一个空字典 1>>> dic={}直接对字典中不存在的key进行赋值来添加123>>> dic['name']='zhangsan'>>...

在 Python 中使用 JSON 和 JSON 键值

数据序列化是将数据转换为可以存储或传输的格式,然后在以后重建的过程。JSON(JavaScript 对象表示法)由于其可读性和易用性而成为最流行的序列化格式之一。 在 Python 中,json 模...

Python字典-无序的键值对集合

Python字典-无序的键值对集合字典允许管理和存储键值对集合字典是可改变的。字典不会保持增加键值对时的顺序,这个顺序毫无意义。字典长啥样?person = {'name':'...

什么是Python 之 ? 22 dict字典键值对

Python Dictionaries 字典,其实也叫键值对俗话说 男女搭配干活不累,九台怎么男女形成配对呢?key是不能重复的{ "key1": value1, "key2&...

字典操作(键值对) - 看这些就够了

1、初始化:大括号、dict、fromkeys初始化2、访问:单个访问、多个访问 单个访问-->[]、get; 多个访问-->items、keys、values;访问3、编辑:增加、修改、...

python 字典插入新的健值对的方法

在 Python 中,可以使用下标运算符([])或 update() 方法向字典中插入新的键值对。使用下标运算符插入键值对的语法如下所示:my_dict = {'apple': 1,...