您现在的位置是:主页 > news > 湛江北京网站建设/房管局备案查询网站
湛江北京网站建设/房管局备案查询网站
admin2025/5/6 8:42:27【news】
简介湛江北京网站建设,房管局备案查询网站,顺的网站建设信息,负面网页升级访问文章目录一、基本数据类型、常量和变量二、顺序和分支程序应用2.1 找零和简单贪心2.2 求身高体重指数2.3 是否合法的日期三、循环程序与应用3.1 猜数字与二分法3.2 X年X月X日是星期几3.3 谁是罪犯?-简单逻辑分析3.4 打印9*9乘法表3.5 百钱百鸡与代码优化四、数据类型…
文章目录
- 一、基本数据类型、常量和变量
- 二、顺序和分支程序应用
- 2.1 找零和简单贪心
- 2.2 求身高体重指数
- 2.3 是否合法的日期
- 三、循环程序与应用
- 3.1 猜数字与二分法
- 3.2 X年X月X日是星期几
- 3.3 谁是罪犯?-简单逻辑分析
- 3.4 打印9*9乘法表
- 3.5 百钱百鸡与代码优化
- 四、数据类型和应用
- 4.1 统计字符的使用频率
- 4.2 利用正则表达式提取电话号码
- 4.3 列表与复杂排序
- 4.3.1 lambda表达式在sort函数中的使用
- 4.4 二分检索
- 4.4.1 二分查找
- 五、函数与应用
- 5.1 函数与问题分而治之
- 5.1.1 练习题
- 5.2 基于函数验证哥德巴赫猜想
- 5.3 多种方法实现十进制转二进制
- 5.4 种方法求圆周率
- 5.5 Base64编码
- 5.6 递归思想和递归函数
- 5.7 车队的公共钥匙盒
- 六、文件
- 6.1 文件操作与英汉字典
- 6.2 文件加密解密实例
- 七、异常处理
- 7.1 异常处理与程序健壮性
- 7.2 异常处理实际使用
- 总结
一、基本数据类型、常量和变量
- Python是一种编译型程序设计语言。
- A. √
- B. ×
- 离开了集成开发环境,Python就无法解释和运行程序。
- A. √
- B. ×
- 数字
-
- 整形(int)
- 整形(int)
-
- 布尔型(bool)
- 布尔型(bool)
-
- 浮点型(float)
- 浮点型(float)
-
- 复数型(complex)
- 复数型(complex)
- 字符串
- 序列(列表、与那组、字典、集合)
总结:不可变数据类型更改后地址发生改变,
可变数据类型更改地址不发生改变
python中不可变数据类型和可变数据类型
二、顺序和分支程序应用
2.1 找零和简单贪心
- 贪心法
- 找零钱
代码如下(示例):
-
代码修改后:
-
贪心的缺陷
贪心法虽然步步最优,不一全局最优
总结:现实生活中,我们经常下意识的做贪心的选择,例如选择手机的时候:性价比相同时,我们选择价格低的;价格相同时,选择技术好的
- Python中浮点数也可以执行求余运算。
- A. √
- [] B. ×
>>> 3.333%2
1.3330000000000002
- Python中的整数存储在计算机中最多存储8个字节,存储大于8个字节所能表示的数会出现“溢出”。
- A. √
- B. ×
- 在Python 3.X版本中,整除运算符产生的结果的数据类型可能为浮点型
- A. √
- B. ×
>>> 3.333//2.2
1.0
>>> type(3.333//2.2)
<class 'float'>
2.2 求身高体重指数
-
身体质量指数
-
身材计算器
代码如下(示例):
-
关于Python内存管理,下列说法错误的是
- A. 变量不必事先声明
- B. 变量无须先创建和赋值而直接使用
- C. 变量无须指定类型
- D. 可以使用del释放资源
本题答案选 B,原因如下:
Python 是弱类型脚本语言,变量就是变量,没有特定类型,因此不需要声明。
但每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
用 del 语句可以释放已创建的变量(已占用的资源)。
2.3 是否合法的日期
- 源码
- 修改
- 在Python中,bool([0])的值为False
- A. √
- B. ×
>>> bool([0])
True
>>> bool([])
False
- 在Python中,bool(3 and not 5)的值为True
- A. √
- B. ×
>>> bool(3 and not 5)
False
>>> 3 and not 5
False
>>> 3
3
>>> not 5
False
三、循环程序与应用
3.1 猜数字与二分法
- 规则如下:
- 简要分析
-
- 产生随机数
- 产生随机数
-
- 循环的选择
- 循环的选择
-
- 统计次数
- 统计次数
- 猜数字代码
- 运行结果
-
下列代码中,循环体执行_2_次
for i in range(5):
print(i)
>>> for i in range(1,5,2):
... print(i)
...
1
3
和range()函数的用法有关: 左闭右开
range(1,5,2) :
1:起使 5:结束[不包括自己] 2:间隔符
3.2 X年X月X日是星期几
- 古老问题
- 算法流程
- 传统代码
- 结论
- 使用模块
# 方法一
import datetime
anyday = datetime.datetime(2019,7,17).weekday()+1
print(anyday)
'''
>>> anyday = datetime.datetime(2021,2,18).weekday()+1
>>> print(anyday)
4
'''# 方法二
import datetime
anyday = int(datetime.datetime(2019,7,17).strftime("%w"))
print(anyday)
Python time strftime() 方法
- 不能完成1~10的累加功能:
对于A:
range(10,0,-1)意思是从列表的下标为10的元素开始,
倒序取到下标为0的元素(但是不包括下标为0元素),
也就是说list[10]-list[1],转化成range就是
相当于range(1,11)的倒序,最后得到的结果
是[10,9,8,7,6,5,4,3,2,1]
3.3 谁是罪犯?-简单逻辑分析
- 问题引入
- 真值表
- 思路分析
- 程序代码
- 问题引入
- 题目分析
- 程序代码
for item in canditates:print(item)
'''
(0, 0, 0, 0, 0)
(0, 0, 0, 0, 1)
(0, 0, 0, 1, 0)
(0, 0, 0, 1, 1)
(0, 0, 1, 0, 0)
(0, 0, 1, 0, 1)
(0, 0, 1, 1, 0)
(0, 0, 1, 1, 1)
(0, 1, 0, 0, 0)
(0, 1, 0, 0, 1)
(0, 1, 0, 1, 0)
(0, 1, 0, 1, 1)
(0, 1, 1, 0, 0)
(0, 1, 1, 0, 1)
(0, 1, 1, 1, 0)
(0, 1, 1, 1, 1)
(1, 0, 0, 0, 0)
(1, 0, 0, 0, 1)
(1, 0, 0, 1, 0)
(1, 0, 0, 1, 1)
(1, 0, 1, 0, 0)
(1, 0, 1, 0, 1)
(1, 0, 1, 1, 0)
(1, 0, 1, 1, 1)
(1, 1, 0, 0, 0)
(1, 1, 0, 0, 1)
(1, 1, 0, 1, 0)
(1, 1, 0, 1, 1)
(1, 1, 1, 0, 0)
(1, 1, 1, 0, 1)
(1, 1, 1, 1, 0)
(1, 1, 1, 1, 1)
'''
3.4 打印9*9乘法表
- 九九乘法表
- 要点分析
- 源程序分析
关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符。
- while循环和for循环可以互相嵌套,break语句只能跳出一层循环。
- A. √
- B. ×
3.5 百钱百鸡与代码优化
- 百钱百鸡问题
- 穷举法
- 总结
-
- 优点
- 优点
-
- 缺点
- 缺点
四、数据类型和应用
4.1 统计字符的使用频率
Python实现对哈利波特小说单词统计
- 字典的键可以是字符串常量也可以是整型常量,甚至还可以是列表。
- A. √
- B. ×
列表不能作为字典的键
4.2 利用正则表达式提取电话号码
- 实际问题
- 正则表达式
-
- 元字符
- 元字符
- 例子
- 实例1
-
- 代码
- 代码
- 实列2
- 代码
-
- findall()
- findall()
-
- search()
Python3 re.search()方法
- search()
- Python——re.search().group()
import re
a = "123abc456"
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0) #123abc456,返回整体
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(1) #123
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(2) #abc
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(3) #456
正则表达式中的三组括号把匹配结果分成三组"
- group() 同group(0)就是匹配正则表达式整体结果
group(1) 列出第一个括号匹配部分,
group(2) 列出第二个括号匹配部分,
group(3) 列出第三个括号匹配部分。- 没有匹配成功的,re.search()返回None
- 总结
4.3 列表与复杂排序
- Python对排序的支持
- 通过reverse参数控制升序和降序
- 通过key参数来决定如何比较元素
4.3.1 lambda表达式在sort函数中的使用
假如a是一个由元组构成的列表,对该列表进行排序时,我们需要用到参数key,也就是关键词,如下面代码所示:
lambda是一个匿名函数,是固定写法;
x表示匿名函数的输入,即列表中的一个元素,在这里,表示一个元组,x只是临时起的一个名字,你可以使用任意的名字;
x[0]表示匿名函数的输出,即元组里的第一个元素,即key = x[0];
所以这句命令的意思就是按照列表中第一个元素进行排序。
>>> a = [('b', 4), ('a', 12), ('d', 7), ('h', 6), ('j', 3)]
>>> a.sort(key=lambda x: x[0])
>>> print(a)
[('a', 12), ('b', 4), ('d', 7), ('h', 6), ('j', 3)]
- 利用排序的稳定性实现多关键字排序
- 世界杯小组排名程序
t[1]:进球数 t[3]:净胜球数 t[4]:积分
先对次关键字排序,再对主关键字排序
reverse = True 降序排序
-
sorted函数的第一个参数不仅可以是列表,也可以是元组。
- A. √
- B. ×
-
如下代码的运行结果是_D_
lst1=[25,77,48]
lst2=lst1
lst1.sort()
print(lst2)
- A. [25,77,48]
- B. [77,48,25]
- C. [77,25,48]
- D. [25,48,77]
sort 与 sorted 区别:sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
4.4 二分检索
- "20个问题"游戏
- 查找问题
- 具体实例
4.4.1 二分查找
- 代码
- 已知列表x = [1, 2],那么执行语句 x.extend([3])之后,x的值为[1, 2, 3]
- A. √
- B. ×
>>> x.extend([3])
>>> x
[1, 2, 3]
>>> x.append([3])
>>> x
[1, 2, 3, [3]]
- 对Python的字典的key使用二分检索,将会加快字典获取对应项的速度。
- A. √
- B. ×
五、函数与应用
5.1 函数与问题分而治之
- 问题
- 程序要求
- 程序结构
- 函数举例
-
- 素数的判断
- 素数的判断
5.1.1 练习题
-
下面说法错误的是__
- A. 函数能提高应用的模块性,和代码的重复利用率
- B. python的函数可以分为内置函数和用户自定义函数
- C. 不带返回值的return,相当于返回None
- D. 每个return语句只能返回一个值
-
函数没有参数时,定义函数和调用函数都不用可以省略函数名后的括号。
- A. √
- B. ×
-
带有默认值的参数必须出现在参数列表的最右端,任何一个带有默认值的参数右边不允许出现没有默认值的参数
- A. √
- B. ×
-
在Python中定义函数时不需要声明函数参数的类型
- A. √
- B. ×
5.2 基于函数验证哥德巴赫猜想
- 哥德巴赫猜想
质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。
- 函数设计
- 代码设计
-
在调用函数时,必须牢记函数形参顺序才能正确传值
- A. √
- B. ×
-
在定义函数时,某个参数名字前面带有一个*符号表示可变长度参数,可以接收任意多个普通实参并存放于一个元组之中
- A. √
- B. ×
-
在定义函数时,某个参数名字前面带有两个*符号表示可变长度参数,可以接收任意多个普通实参并存放于一个元组之中
- A. √
- B. ×
5.3 多种方法实现十进制转二进制
- 进制/位置计数法
- 内置函数bin
- 如何将十进制装换成二进制
5.4 种方法求圆周率
-
认识圆周率
-
计算圆周率
-
- 方法一 --莱布尼兹计数法
- 方法一 --莱布尼兹计数法
-
- 程序实现
- 程序实现
-
- 方法二-- 蒙特卡洛法
- 方法二-- 蒙特卡洛法
>>> random.random()
0.3755504274986339
>>> random.random()
0.8985415647687107
>>> random.random()
0.6393932313870814
>>> random.random()
0.34291115616134593
- 在函数内部没有任何方法可以影响实参的值
- A. √
- B. ×
- 在函数内部直接修改形参的值并不影响外部实参的值。
- A. √
- B. ×
5.5 Base64编码
- Base64编码表
- 编码方法
- 编码实列
- 在Python函数中,一条return语句可以返回多个值
- A. √
- B. ×
5.6 递归思想和递归函数
-
递归
-
- 一种描述方法
- 一种描述方法
-
- 一种解决问题方式
- 一种解决问题方式
-
递归要素
-
实例
-
递归的不足
5.7 车队的公共钥匙盒
- 车队的公共钥匙盒
- 问题
- 问题
- 代码
六、文件
6.1 文件操作与英汉字典
- 文件
变量都是在内存中的
- 文件操作步骤
-
- 打开文件
- 打开文件
-
- 关闭文件
- 关闭文件
-
- 读文件
太大的文件不适合用read(0)和readlines()这样会消耗太多的内存
-
- 写文件
- 写文件
- 实例
- 分析
- 实现代码
Python3 find()方法
小结:
6.2 文件加密解密实例
- 维吉尼亚加密法
- 实现
msg:待转换字符串 key:密钥 mode:转换操作
cipher[ ] : 存储转换后的字符
第15行:计算其对应的整数,若不是英文字母返回-1
- 测试代码
- write方法用于把字符串写入文本文件并在最后添加换行符。
- A. √
- B. ×
七、异常处理
7.1 异常处理与程序健壮性
- 程序正常与非正常结束
- 异常
- 异常处理
- 异常关键字
- 除数为0的问题
- 异常处理的执行流程
- 一个完备的异常处理器
- 错误处理原则
- 小结
Python内建异常类的基类是_BaseException_
7.2 异常处理实际使用
-
常见异常
-
异常实例
-
异常特殊用法
-
- 跳出多层循环
- 跳出多层循环
-
- 从函数递归调用中返回
-
- 八皇后问题
- 八皇后问题
-
小结
- 异常处理时,如果一个except后面没有写任何参数,那么表示该except可以捕获任意类型的异常。
- A. √
- B. ×
- 在捕获到异常时,如果不想处理异常,而是让程序继续运行下去,可以使用pass语句
- A. √
- B. ×
- Python中,对于代码中的每个try,必须至少有一个except与它匹配
- A. √
- B. ×
使用__finally_关键字,可以保证之后的代码块无论是否发生异常,一定会被执行。
总结
1.查看变量的类型,内存地址,所占字节的大小:
# 利用内置type()函数
>>> a = 1+1j
>>> a
(1+1j)
>>> type(a)
<class 'complex'># 利用内置函数id(),是以十进制显示
>>> id(a)
2294149873552# 查看变量所占字节的大小
>>> import sys
>>> print(sys.getsizeof(a))
32
2.不管从键盘上想要获取什么样数据,input函数都是字符形
3.format格式化函数的使用
>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world'>>> "{0} {1}".format("hello", "world") # 设置指定位置
'hello world'>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
也可以设置参数:
print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))# 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的
字典
# 通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site))print('{name}的女朋友是{gf},我也喜欢{gf}!'.format(**{'name':'钢铁侠','gf':'小辣椒'}))
# 钢铁侠的女朋友是小辣椒,我也喜欢小辣椒!
4.参数的序列解包
传递参数时,可以通过在实参序列前加星号将其解包,然后传递给多个单变量形参。
5.map函数
map() 函数会根据提供的函数对指定序列做映射。
- 实例
>>> def square(x) : # 计算平方数
... return x ** 2
...
>>> map(square, [1,2,3,4,5]) # 计算列表各个元素的平方
<map object at 0x100d3d550> # 返回迭代器
>>> list(map(square, [1,2,3,4,5])) # 使用 list() 转换为列表
[1, 4, 9, 16, 25]
>>> list(map(lambda x: x ** 2, [1, 2, 3, 4, 5])) # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
>>>