python面试pytorch面试

python面试
python中啥类型是不可更改的,啥类型是可以更改的

为什么Python执行速度慢,我们如何改进它?

自己总结:
1c语言属于编译型语言:
它的代码经过编译后再运行,执行速度快;不能跨平台,一般用于操作系统,底层开发;
2c是静态类型语言,在编译期间就确定数据类型的语言,与大多数的静态类型语言一样,在编译过程中就要声明数据类型。
3对象机制不同,c中没有对象这个概念,只有“数据的表示”,比如说如果有两个int变量a和b,可以使用ab来判断,但是如果两个字符串变量a和b,就不得不用strcmp来比较,a与b本质是指向字符串的指针,如果直接使用比较,那比较的实际是指针中存储的值地址。
4c语言分为4类,基本类型(包含整数类型,浮点类型)、枚举类型、void类型、派生类型。

1python属于解释性语言:
它的代码在运行时进行解释,执行速度慢;可以跨平台,适合软件的快速开发;
2python是一种动态类型语言(强类型语言),确定一个变量类型在第一次具体给它赋值的时候。
3对象机制,python中的所有数据,都是由对象或者对象之间的关系表示的,函数是对象,字符串是对象,每个东西都是对象的概念。每一个对象都有三种属性:实体,类型和值。(这个不是太懂)
4Number数字(整数、布尔型、浮点数和复数)、String字符串、List列表、Tuple元组、Sets集合、Dictionary字典

以下是C语言中四类类型的示例代码:

基本类型(包含整数类型,浮点类型):
#include <stdio.h>

int main() {
    int num = 10;
    float pi = 3.14;
    
    printf("整数类型: %d\n", num);
    printf("浮点类型: %f\n", pi);
    
    return 0;
}
枚举类型:
#include <stdio.h>

enum Weekday {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};

int main() {
    enum Weekday today = Wednesday;
    
    printf("今天是星期:%d\n", today);
    
    return 0;
}
void类型:
#include <stdio.h>

void printMessage() {
    printf("这是一个无返回值的函数\n");
}

int main() {
    printMessage();
    
    return 0;
}
派生类型(数组类型和结构类型):
#include <stdio.h>

struct Student {
    char name[20];
    int age;
};

int main() {
    int numbers[5] = {1, 2, 3, 4, 5};
    struct Student stu = {"John", 20};
    
    printf("数组类型: %d\n", numbers[2]);
    printf("结构类型: %s, %d\n", stu.name, stu.age);
    
    return 0;
}
以下是Python中常见数据类型的示例代码:

Number数字(整数、布尔型、浮点数和复数):
num = 10
is_true = True
pi = 3.14
complex_num = 2 + 3j

print("整数类型:", num)
print("布尔类型:", is_true)
print("浮点类型:", pi)
print("复数类型:", complex_num)
String字符串:
str1 = "Hello"
str2 = 'World'

print(str1 + " " + str2)
List列表:
list1 = [1, 2, 3, 4, 5]
list2 = ['apple', 'banana', 'orange']

print(list1)
print(list2)
Tuple元组:
tuple1 = (1, 2, 3, 4, 5)
tuple2 = ('apple', 'banana', 'orange')

print(tuple1)
print(tuple2)
Sets集合:
set1 = {1, 2, 3, 4, 5}
set2 = {'apple', 'banana', 'orange'}

print(set1)
print(set2)
Dictionary字典:
dict1 = {'name': 'John', 'age': 20}
dict2 = {'apple': 1, 'banana': 2, 'orange': 3}

print(dict1)
print(dict2)

在这里插入图片描述
字符串是不可变的,即不能修改字符串中的单个字符。
在这里插入图片描述

列表是可变的,可以通过索引进行访问、修改、添加、删除等操作。
在这里插入图片描述
元组不可变
在这里插入图片描述
集合也是不可变的。
在这里插入图片描述
列表与字典不能当作字典的key

迭代器、生成器、装饰器

生成器

在这里插入图片描述
在这里插入图片描述
尝试:用迭代器来实现,但是次数不确定(这是一个难点);还有生成规律该写如哪个函数,写入next函数。
在这里插入图片描述
需要属性,属性跟着对象,只要不删除属性,对象还活着,这个值就永远存在,局部变量的话随着方法的结束就变了,就没了。就像上图中的self.x.迭代器还有这个功能,他没有存储想要的数据(下图是给出存储想要的数据),仅仅是存储生成数据的方法,减少空间的浪费,授人以鱼不如授人以渔。
在这里插入图片描述

什么是生成器

通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。

所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。

通俗的理解:

在Python中,这种一边循环一边计算的机制,称为生成器:generator
在这里插入图片描述
在这里插入图片描述
生成器,其实是一种特殊的迭代器。(可迭代对象不一定是迭代器,迭代器一定是可迭代对象,迭代器不一定是生成器,迭代器根据上一次的生成数我就知道下一次的生成数,生成器(生成器不是记录生成数据的值,而是记录生成数据算法)也属于迭代器)

中括号是列表推导式,小括号是元组推导式

在这里插入图片描述
之前创建类,调用对象,打印时候也是像下面哪个一样。
在这里插入图片描述
上面那个登录这么长时间没有效果,下面这个就直接好了。列表推导式是必须生成完成之后才可以使用,下面那个不是全部生成才调用,而是什么时候要用什么时候生成。生成器还有一个重要的关键字yield
在这里插入图片描述
在这里插入图片描述
装饰器:在不修改原函数的实现功能。仅仅是在调函数之前可以额外调用一部分功能。

def make_pencil(color):
    def write(content):
        print("正在使用(%s)色,写:%s" % (color, content))

    return write


black_pencil = make_pencil("黑")
black_pencil("我是喝墨水长大的")

red_pencil = make_pencil("红")
red_pencil("这么巧,我也是,只不过是红墨水")

闭包用到的核心其实就是:在一个函数中返回另外一个函数的引用,只不过这个被返回的函数中用到了其他函数中的变量而已。说到底就是 只要用一个变量指向某个函数代码块,就可以调用它

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/295740.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringIOC之support模块DelegatingMessageSource

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)创建并初始化TcpServer实例 以及 启动

对于一个TcpServer来说&#xff0c;它的灵魂是什么&#xff1f;就是需要提供一个事件循环EventLop(EventLoop)&#xff0c;不停地去检测有没有客户端的连接到达&#xff0c;有没有客户端给服务器发送数据&#xff0c;描述的这些动作&#xff0c;反应堆模型能够胜任。当服务器和…

图像处理中的DCT变换

图像处理中的DCT变换 Discrete Cosine Transform&#xff0c;离散余弦变换。 来源及公式推导&#xff0c;可以查看下面链接&#xff0c;介绍的比较详细&#xff0c;这里就不再重复说明了&#xff1a; 详解离散余弦变换&#xff08;DCT&#xff09; - 知乎 (zhihu.com)DCT变换…

DS|图(连通与生成树)

题目一&#xff1a;DS图 -- 图的连通分量 题目描述&#xff1a; 输入无向图顶点信息和边信息&#xff0c;创建图的邻接矩阵存储结构&#xff0c;计算图的连通分量个数。 输入要求&#xff1a; 测试次数t 每组测试数据格式如下&#xff1a; 第一行&#xff1a;顶点数 顶点…

VsCode开发工具的入门及基本使用

大家好&#xff0c;我是[阿猫的故乡]。很高兴能有机会与大家分享关于VsCode开发工具的入门及基本使用的知识。 文章目录 文章目录 前言 一、VsCode是什么&#xff1f; 二、使用步骤 1.如何下载 2.如何使用 总结 前言 在开发者社区中&#xff0c;Visual Studio Code&#xff08…

IPv6路由协议---IPv6静态路由

IPv6路由协议 路由是数据通信网络中最基本的要素。路由信息就是知道报文发送的路径信息,路由的过程就是报文转发的过程。 根据路由目的地的不同,路由可划分: 1.网段路由:目的地为网段,IPv4地址子网掩码长度小于32位或IPv6地址前缀长度小于128位。 2.主机路由:目的地为主…

算法第十一天-递增顺序搜索树

递增顺序搜索树 题目要求 解题思路 1.二叉搜索树&#xff08;BST&#xff09; 2.任意两个不同节点 遇到二叉搜索树&#xff0c;立即想到这句话&#xff1a;[二叉搜索树&#xff08;BST&#xff09;的中序遍历是有序的]。这是解决所有二叉搜索树问题的关键。 要求BST的任意两…

小H靶场笔记:DC-4

DC-4 January 4, 2024 2:37 PM Tags: teehee提权 Owner&#xff1a;只惠摸鱼 信息收集 探测靶机ip&#xff0c;发现应该是192.168.199.134 扫一下开放端口&#xff08;22、80&#xff09;、服务、版本、漏洞 根据扫描结果&#xff0c;在80端口可能有CSRF漏洞&#xff0c;…

关于目标检测任务中,YOLO(txt格式)标注文件的可视化

1. 前言 本文是针对yolo标注格式txt文件的可视化脚本介绍 如果是VOC格式的xml文件&#xff0c;参考&#xff1a;关于目标检测任务中&#xff0c;XML(voc格式)标注文件的可视化 代码比较简单&#xff0c; 50行这样 。。。。 下面是代码的目录结构&#xff0c;1.jpeg 是数据…

Jenkins接口调用

Jenkins是好用&#xff0c;但是接口文档写的稀烂 1、授权&#xff0c;Jenkins不推荐使用创建单个任务时创建的token&#xff0c;推荐这个用户下的创建user token。 点击自己账号信息&#xff0c;即可创建token。 2、postman选择basic auth&#xff0c;输入账号密码&#xff0…

有网友希望我推荐几个创建产品手册工具,这不就来了!

上次我有说到&#xff0c;企业应该充分认识到产品手册的重要性&#xff0c;并采取有效的策略和措施来制作和传播高质量的产品手册&#xff0c;以提升品牌知名度和市场份额。后台有网友问我除了设计排版的那种产品手册工具&#xff0c;还有什么方式可以去做产品手册。今天就介绍…

力扣题:高精度运算-1.4

力扣题-1.4 [力扣刷题攻略] Re&#xff1a;从零开始的力扣刷题生活 力扣题1&#xff1a;306. 累加数 解题思想&#xff1a;首先先通过secondStart和secondEnd可以确定num1 num[0:secondStart],num2 num[secondStart:secondEnd]&#xff0c;然后遍历secondStart和secondEnd…

鸿蒙系列--动态共享包的依赖与使用

一、前言 HarmonyOS的共享包相当于Android的Library&#xff0c;在HarmonyOS中&#xff0c;给开发者提供了两种共享包&#xff0c;HAR&#xff08;Harmony Archive&#xff09;静态共享包&#xff0c;和HSP&#xff08;Harmony Shared Package&#xff09;动态共享包 区别&…

Android ValueAnimator属性动画ObjectAnimator使View颜色渐变,Kotlin

Android ValueAnimator属性动画ObjectAnimator使View颜色渐变&#xff0c;Kotlin 设置背景颜色渐变&#xff1a; private var iv: ImageView? nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activit…

Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现相机图像转换为Mat图像格式(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机掉线自动重连&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机的图像转换为OpenCV的Mat图像的技术背景在NEOAPI SDK里实现相机图像转换为Mat图像格式联合OpenCV实现相机图像转换为Mat图像格式测试演示图 工业相机…

macOS系统卡顿光标转圈圈

macOS系统卡顿转圈圈 可以试试以下方法&#xff0c;&#xff08;也可能是其他原因&#xff09;仅供参考&#xff0c;不好使别骂我 当电脑出现卡顿&#xff0c;可以尝试清理缓存目录 点击访达你的用户名字上的磁盘&#xff0c;点击系统 点击这个资源库&#xff0c;然后找到【…

全网最全fiddler使用教程和fiddler如何抓包(fiddler手机抓包)-笔者亲测

一、前言 抓包工具有很多&#xff0c;比如常用的抓包工具Httpwatch&#xff0c;通用的强大的抓包工具Wireshark.为什么使用fiddler?原因如下&#xff1a; 1.Wireshark是通用的抓包工具&#xff0c;但是比较庞大&#xff0c;对于只需要抓取http请求的应用来说&#xff0c;似乎…

Spring整合MyBatis项目代码示例

文章目录 Spring整合MyBatis项目代码示例1、创建如下结构的项目Spring_MyBatis2、在pom.xml文件中添加以下依赖并刷新maven3、在resources文件夹下添加spring等配置文件&#xff08;applicationContext.xml&#xff0c;db.properties&#xff0c;log4j.properties&#xff09;4…

x-cmd pkg | procs - ps 命令的现代化替代品

目录 简介首次用户功能特点类似工具进一步阅读 简介 procs 是用 Rust 编写的 ps 替代品&#xff0c;用于显示有关任务进程的信息 首次用户 使用 x procs 即可自动下载并使用 在终端运行 eval "$(curl https://get.x-cmd.com)" 即可完成 x 命令安装, 详情参考 x-cmd…

基于闪电搜索算法优化的Elman神经网络数据预测 - 附代码

基于闪电搜索算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于闪电搜索算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于闪电搜索优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&…