python期末复习

2023-10-27

python语言的特点

(1)Python, 是一种面向对象的解释型计算机程序设计语言。
(2)Python的语法十分简洁,大大地提高了开发效率,更容易维护。
(3)Python是一门开源的跨平台语言,拥有丰富的第三方库。

标识符命名规则

(1)只能包含字母数字下划线。变量名可以以字母或者下划线开头。但是不能以数字开头。
(2)不能包含空格,但可以使用下划线来分隔其中的单词
(3)不能使用Python中的关键字作为变量名
(4)建议使用驼峰命名法,驼峰式命名分为大驼峰(UserName)。和小驼峰(userName)

内置函数

type()返回类型,min()最小值,max()最大值,len()返回长度

else各种用法以及表达含义

(1)if-else 条件表达式,不满足if条件时执行else语句
(2)while-else while循环语句,当while循环完成后执行else语句
(3)for-else for循环语句,当for循环完成后执行else语句
(4)try-except-else try语句,当try语句没有发生异常时执行else语句

Python中列表、元祖、字典、集合的定义

(1)列表是有序序列,用[]表示,列表元素可变数据类型
(2)元祖是有序序列,用()表示,元祖不可变数据类
(3)集合的元素是无序的、互异的,用{}表示,集合是可变数据类型
(4)字典是的元素是键值对:’key:value’,是无序的,用{}表示,字典是可变数据类型

可变数据与不可变数据的基本数据类型

不可变数据有字符串 、元祖 、数字
可变数据有列表 、集合 、字典

定义函数时,判断*args和**kargs参数类型, 分别写出它们数据类型

(1)*args是非关键字可变长度参数,**kargs是关键字可变长度参数
(2)args数据类型是元祖, kargs数据类型是字典


1.请编写一个程序,求出2-1000之内的所有素数,并将它们存入一个列表,并打印出总的个数

result = []  
for i in range(2,1000):
    for j in range(2,int(i**0.5)+1):
        if i%j == 0:
            break
   	else:
        result.append(i)
print(len(result))

运行结果:168


2.汉诺塔问题:相传印度有座大寺庙,它曾被认为是宇宙的中心。神庙中放置了一块上面插有三根长木钉的木板,

在其中的一根木钉上,由上至下放了64片直径由小至大的圆环形金属片。古印度教的天神指示他的僧侣们将64片金属片全部移至另一根木钉上。移动规则只有两个:
1.在每次的移动中,只能移动一片金属片;
2.过程中任意时刻必须保证金属片小的在上,大的在下;
直到有那么一天,僧侣们能将64片金属片按规则从指定的木钉上全部移至另一根木钉上,那么,世界末日即随之来到,世间的一切终将被毁灭,万物都将至极乐世界。
使用递归的方法完成:

times = 1#计数
n=3#盘子总数
towers = {'A':list(range(n,0,-1)),'B':[],'C':[]}
def hannoi(num,src,dst,temp=None):
    '''
    :param num: 初始柱子盘子数
    :param src: 初始柱子
    :param dst: 目标柱子
    :param temp: 临时柱子
    :return:
    '''
    if num<1:
        return
    global times
    #递归调用函数自身,先把除最后一个盘子之外的所有盘子移动到临时柱子上
    hannoi(num-1,src,temp,dst)
    #初始柱子移动最后一个盘子到目标柱子
    print('The {0} Times move :{1}==>{2} moveValue:{3}'.format(times,src,dst,towers[src][-1]))
    towers[dst].append(towers[src].pop())
    for tower in 'ABC':
        print(tower,':',towers[tower])
    times += 1
    #把除最后一个盘子之外的其他盘子从临时柱子移动到目标柱子上
    hannoi(num - 1, temp, dst, src)
    
#A表示最初放置盘子的柱子,C表示目标柱子,B表示临时柱子
hannoi(n,'A','C','B')

3.约瑟夫环问题: 已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列, 返回出列顺序的列表。

方法一:非递归

def yueSeFu(listAll, index, step):
    listNew = []
    index = (index + step) % len(listAll);
    listNew.append(listAll[index])
    size = len(listAll)
    count = 0
    while len(listNew) < size:
        while count < step:
            index = index % size
            curNum = listAll[index]
            if curNum not in listNew:
                count += 1
            index += 1
        listNew.append(curNum)
        count = 0
    return listNew

print(yueSeFu([1,3,5,7,9,11],2,3))

方法二:递归函数

def Yuesefu(listAll, startIndex, m):
    n = len(listAll)
    print("list length:%d" % n)
    if n == 1:
        print("result")
        # print(listAll)
        return listAll
    else:
        while startIndex > n:
            startIndex = startIndex % n
        endIndex = startIndex + m - 1
        while endIndex >= n:
            endIndex = endIndex % n
        listAll.pop(endIndex)
        print(listAll)
        startIndex = endIndex
        nextList = Yuesefu(listAll[:], startIndex, m)
        # print(nextList)
        return nextList

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python期末复习 的相关文章

随机推荐

  • uniapp-提现功能(demo)

    页面布局 提现页面 有一个输入框 一个提现按钮 一段提现全部的文字 首先用v model 和data内的数据双向绑定 输入框逻辑分析 输入框的逻辑 为了符合日常输出 所以要对输入框加一些条件限制 因为是提现 所以对输入的字符做筛选 只允许出
  • 由于某种原因,PowerPoint 无法加载MathType..... (亲测有效)

    网上找了较多的参考解决办法 最后发现如下博主提供的方法快捷有效 https blog csdn net dss875914213 article details 85873938 问题 PPT打开时弹出由于某种原因powerpoint无法加
  • 关于python

    1 关于python Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计 作为一门叫做ABC语言的替代品 Python提供了高效的高级数据结构 还能简单有效地面向对象编程 Python语法和
  • Viva Workplace Analytics & Employee Feedback SU Viva Glint部署方案

    目录 一 Viva Workplace Analytics Employee Feedback SU Viva Glint介绍 二 Viva Glint和Viva Pulse特点和优势 1 简单易用
  • SLAM精度评定工具——EVO使用方法详解

    系统版本 Ubuntu20 04 ROS版本 Noetic EVO是用于处理 评估和比较里程计和SLAM算法的轨迹输出的工具 注意 本文的评测是在kitti数据集下进行评测 其他的数据集也支持评测 安装EVO 可以执行下面这条命令 pip
  • Pytorch 中如何对训练数据进行增强处理?

    假设我们的数据集是一个手写数字的图像数据集 其中每一张图像包含一个手写数字和对应的标签 我们可以通过随机旋转 平移 缩放和翻转等操作 对原始的图像进行变换增广 Data Augmentation 以增强模型的训练效果 举个例子 我们可以通过
  • JavaScript 实现数组中的字符串按长度排序,长度一样按字母顺序排序

    以下的newar数组里的val键值排序要求 字串按长度排序 长度一样按字母顺序排序 js实现数组中的字符串按长度排序 长度一样按字母顺序排序 function sortByLenByazAZVal array array sort a b
  • MYSQL之ON DUPLICATE KEY UPDATE使用

    创建表 DROP TABLE IF EXISTS user CREATE TABLE user id int 32 NOT NULL AUTO INCREMENT COMMENT 主键id userName varchar 32 NOT N
  • 【单片机毕业设计】【mcuclub-dz-055】基于单片机的智能手环控制系统设计

    最近设计了一个项目基于单片机的智能智能手环控制系统设计 与大家分享一下 一 基本介绍 项目名 智能手环 项目编号 mcuclub dz 055 单片机类型 STM32F103C8T6 具体功能 1 通过MAX30102测量心率 血氧 2 通
  • PFQ,适用于多核处理器系统中的网络监控框架

    PFQ 是一个支持多语言的网络框架 主要用于 Linux 操作系统下进行高效的包捕获和传输 适用于多核处理器系统中的网络监控框架 PFQ 专门为多核处理器而优化 包括对多个硬件队列的网络设备优化 支持任意网络设备驱动 并提供一个脚本用来加速
  • 动态内存与静态内存的区别

    1 静态内存 静态内存是指在程序开始运行时由编译器分配的内存 它的分配是在程序开始编译时完成的 不占用CPU资源 程序中的各种变量 在编译时系统已经为其分配了所需的内存空间 当该变量在作用域内使用完毕时 系统会 自动释放所占用的内存空间 变
  • Dropout层的个人理解和具体使用

    一 Dropout层的作用 dropout 能够避免过拟合 我们往往会在全连接层这类参数比较多的层中使用dropout 在训练包含dropout层的神经网络中 每个批次的训练数据都是随机选择 实质是训练了多个子神经网络 因为在不同的子网络中
  • 解决Google CoLab使用外部文件的问题

    有时 用Google CoLab时需要用到外部的数据集 这时 可以通过代码把文件上传到CoLab上 代码如下 from google colab import files uploaded files upload for fn in up
  • 2年python从业者整理的学习经验,手把手教你如何系统有效学习python

    我是从19年开始学python的 学了近半年 从业2年时间 看网课自己练 摸爬滚打后终于找到了一套不错的学习方法 以我个人经验给零基础入门的朋友讲下应该怎么系统有效学习python 首先 python不是洪湖猛兽 普通人只要认真学肯定是能学
  • python 尝试有道翻译

    一只小白的爬虫 写了一个简单 有道翻译 记录一下 如果大家有更好的方式 方法记得分享一下哦 coding utf 8 import urllib urllib2 json url http fanyi youdao com translat
  • iview引用自定义的图标

    iview引用自定义的图标 护花使者 博客园
  • C++图书管理系统(基于结构体数组)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 需求分析 二 代码实现 总结 前言 问题描述 要求以图书馆管理业务为背景 设计并实现一个 图书馆管理信息系统 软件 使用该系统可以方便查询图书的信息 借阅
  • 线程池为什么能维持线程不释放,随时运行各种任务?

    版权声明 本文为博主原创文章 未经博主允许不得转载 技术交流可邮 cjh94520 outlook com https blog csdn net cjh94520 article details 70545202 线程池 之前一直有这个疑
  • kd树搜索与线性搜索对比

    在做毕业设计的时候 遇到这样一个需求 给定一万五千个点 再给定一个目标点 要求离目标点的最近点 说白了就是求 最近邻 问题 传统的方式 就是从第一个点开始算距离 把一万五千个点都算完 再取最小值 但是这样的方式比较慢 所以利用了knn算法中
  • python期末复习

    python语言的特点 1 Python 是一种面向对象的解释型计算机程序设计语言 2 Python的语法十分简洁 大大地提高了开发效率 更容易维护 3 Python是一门开源的跨平台语言 拥有丰富的第三方库 标识符命名规则 1 只能包含字