当前位置: 首页 > news >正文

【数据分析基础】实验一 Python运算符、内置函数、序列基本用法

一、实验目的

  1. 熟练运用Python运算符。
  2. 熟练运用Python内置函数。
  3. 掌握Python的基本输入输出方法。
  4. 了解lambda表达式作为函数参数的用法。
  5. 掌握列表、元组、字典、集合的概念和基本用法。
  6. 了解Python函数式编程模式。

二、实验内容:

1. 在命令模式测试如下命令,通过结果理解并熟练掌握以下内置函数:

(1)程序代码:

>>> from random import randint

>>> a = [randint(1, 100) for i in range(10)]

>>> print(max(a), min(a), sum(a))

100 27 664

>>> sum(a)/len(a)

66.4

(2)运行结果(截图):

(1)程序代码:

>>> x = list(range(11))

>>> import random

>>> random. shuffle(x)

>>> x

[0, 9, 6, 2, 1, 10, 8, 3, 5, 4, 7]

>>> sorted(x)

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> y = ['aaaa', 'bc', 'd', 'b', 'ba']

>>> sorted(y, key=lambda item: (len(item), item))

['b', 'd', 'ba', 'bc', 'aaaa']

>>> sorted(x, key=lambda item: len(str(item)), reverse=True)

[10, 0, 9, 6, 2, 1, 8, 3, 5, 4, 7]

>>> sorted(x, key=str)

[0, 1, 10, 2, 3, 4, 5, 6, 7, 8, 9]

>>>

(2)运行结果(截图):

(1)程序代码:

>>> list(map(str, range(5)))

['0', '1', '2', '3', '4']

>>> def add5(v):

...     return v+5

...

>>> list(map(add5, range(10)))

[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

>>> def add(x, y):

...     return x+y

...

>>> list(map(add, range(5), range(5, 10)))

[5, 7, 9, 11, 13]

>>>

(2)运行结果(截图):

  

(1)程序代码:

>>> range(5)

range(0, 5)

>>> list()

[]

>>> list(range(1, 10, 2))

[1, 3, 5, 7, 9]

>>> list(range(9, 0, -2))

[9, 7, 5, 3, 1]

(2)运行结果(截图):

    

(1)程序代码:

>>> list(zip('abed', [1, 2, 3]))

[('a', 1), ('b', 2), ('e', 3)]

>>> list(zip('123', 'abe', ',.!'))

[('1', 'a', ','), ('2', 'b', '.'), ('3', 'e', '!')]

>>> x = zip('abcd', '1234')

>>> list(x)

[('a', '1'), ('b', '2'), ('c', '3'), ('d', '4')]

(2)运行结果(截图):

2. 编写程序,输入任意大的自然数,输出各位数字之和。

参考代码:

(1)程序代码:

num = input('请输入一个自然数:')
print(sum(map(int, num)))

(2)运行结果(截图):

3. 编写程序,输入两个集合 setA setB,分别输出它们的交集、并集和差集 setA-setB

参考代码:

(1)程序代码:

setA = eval(input('请输入一个集合:'))
setB = eval(input('再输入一个集合:'))
print('交集:', setA & setB)
print('并集:', setA | setB)
print('setA-setB', setA - setB)

(2)运行结果(截图):

4. 编写程序,输入一个包含若干整数的列表,输出一个新列表,要求新列表中只包含原列表中的偶数。

(1)程序代码:

lst = input('请输入一个包含若干整数的列表:')
lst = eval(lst)
print(list(filter(lambda x: x % 2 == 0, lst)))

(2)运行结果(截图):

5. 编写程序,输入两个分别包含若干整数的列表lstA和lstB,输出一个字典,要求使用列表lstA中的元素作为键,列表lstB中的元素作为值,并且最终字典中的元素数量取决于lstA和lstB中元素最少的列表的数量。

(1)程序代码:

lstA = eval(input('请输入包含若干整数的列表lstA:'))
lstB = eval(input('请输入包含若干整数的列表lstB:'))
result = dict(zip(lstA, lstB))
print(result)

(2)运行结果(截图):

6. 编写程序,输入一个包含若干整数的列表,输出新列表,要求新列表中的所有元素来自于输入的列表,并且降序排列。

(1)程序代码:

lst = eval(input('请输入包含若干整数的列表lst:'))
print(sorted(lst, reverse=True))

(2)运行结果(截图):

7. 编写程序,输入一个字符串,输出期中出现次数最多的字符及其出现的次数。要求使用字典。

(1)程序代码:

data = input('请输入一个字符串: ')
d = dict()
for ch in data:d[ch] = d.get(ch, 0) + 1mostCommon = max(d.items(), key=lambda item: item[1])
print(mostCommon)

(2)运行结果(截图):

三、实验任务

  1. 学习教材第1章、第2章内容,根据实验内容练习相关编程知识。
  2. 独立完成如下编程任务并提交实验报告。(报告撰写要求详见模板文档)

1. 编写程序,输入一个包含若干整数的列表,输出列表中所有整数连乘的结果。

(1)程序代码:

lst = eval(input('请输入一个包含若干整数的列表: '))
result = 1
for num in lst:result *= num
print("列表中所有整数连乘的结果为:", result)

(2)运行结果(截图):

2. 编写程序,生成包含1000个0~100的随机整数,并统计每个元素的出现次数。

(1)程序代码:

import random
random_numbers = [random.randint(0, 100) for _ in range(1000)]
count_dict = {}
for num in random_numbers:count_dict[num] = count_dict.get(num, 0) + 1
print("每个元素的出现次数统计:", count_dict)

(2)运行结果(截图):

部分截图

3. 编写程序,生成包含20个随机数的列表,然后将前10个元素升序排序,后10个元素降序排列,并输出结果。

(1)程序代码:

import random
random_numbers = [random.randint(0, 100) for _ in range(20)]
first_half = sorted(random_numbers[:10])
second_half = sorted(random_numbers[10:], reverse=True)
sorted_list = first_half + second_half
print("排序后的列表:", sorted_list)

(2)运行结果(截图):

部分截图

4. 编写程序,用户输入一个列表和2个整数作为下标,然后输出列表中介于2个下标闭区间直接的元素组成的子列表。例如用户输入[ 1,2,3,4,5,6 ] 和2,5,程序输出[ 3,4,5,6 ]。

(1)程序代码:

lst = eval(input('请输入一个列表: '))
start_index = int(input('请输入起始下标: '))
end_index = int(input('请输入结束下标: '))
sub_list = lst[start_index:end_index+1]
print("子列表:", sub_list)

(2)运行结果(截图):

四、实验总结:

知识点小结

在本次实验中,我深入学习并实践了Python的多个核心概念和技巧。我掌握了Python的基本运算符,这让我能够进行基础的数学计算和逻辑判断。

我也通过实际编程,熟练运用了Python的内置函数,比如max(), min(), sum(), sorted()等,这些函数极大地简化了我的数据处理工作。

此外,我还了解了lambda表达式的用法,尤其是在对列表进行排序和筛选时,lambda表达式提供了极大的便利。

对于Python的序列类型,如列表、元组、字典和集合,我通过实验加深了理解,并学会了如何有效地使用它们来存储和操作数据。我也接触了函数式编程的概念,通过使用map(), filter()等函数,我学会了如何将问题分解成更小的、可复用的部分,并通过函数的组合来解决它们。

实验体会

通过这次实验,我体会到了理论知识与实践操作相结合的重要性。我发现,只有将所学的概念应用到具体的编程任务中,才能真正理解和掌握它们。

未解决的问题

在实验过程中,在理解某些内置函数的高级用法和优化代码性能方面。我发现,对于一些复杂的编程问题,我还需要更多的练习和学习才能找到最佳的解决方案。

改进的方法

为了进一步提高Python编程能力,我计划采取以下几个措施:

1. 深入学习:我将通过阅读Python官方文档、参考书籍和在线教程来加深对Python内置函数和数据结构的理解。

2. 大量练习:我打算通过完成更多的编程练习和项目来提高我的编程技巧,特别是在数据处理和算法设计方面。

3. 反思总结:我会定期回顾和总结我的学习过程,找出知识盲点和不足之处,并制定相应的学习计划。

相关文章:

【数据分析基础】实验一 Python运算符、内置函数、序列基本用法

一、实验目的 熟练运用Python运算符。熟练运用Python内置函数。掌握Python的基本输入输出方法。了解lambda表达式作为函数参数的用法。掌握列表、元组、字典、集合的概念和基本用法。了解Python函数式编程模式。 二、实验内容: 1. 在命令模式测试如下命令&#x…...

【Redis】构建强韧的远程Redis连接与端口保障机制完美指南

【Redis】构建强韧的远程Redis连接与端口保障机制完美指南 大家好 我是寸铁👊 总结了【Redis】构建强韧的远程Redis连接与端口保障机制完美指南✨ 喜欢的小伙伴可以点点关注 💝 前言 在当今的软件开发领域中,远程访问和操作数据存储是极为常见…...

Flowable项目启动报错#java.time.LocalDateTime cannot be cast to java.lang.String

Flowable 项目启动后报错 flow项目第一次启动创建表成功,但是第二次启动时报错信息如下: 1、Error creating bean with name ‘appRepositoryServiceBean’ defined in class 2、Error creating bean with name ‘flowableAppEngine’: FactoryBean t…...

《数字电路》

问答题4*5 在数字电路中,三极管经常工作在哪两种开关状态? 在数字电路中,三极管经常工作在饱和导通状态和截止状态。 时序电路根据输出信号分为哪两类? 时序电路根据输出信号分为莫尔型和米里型两类。 写出三种以上常用的二-十…...

STM32F103 点亮LED闪烁与仿真

STM32F103 点亮LED闪烁与仿真 今天给大家分享一下STM32 流水灯简单的仿真吧,我感觉这个提供有用的,但是自己也是第一次使用,主要是感觉曲线很高级。在PWM中查看脉宽很有用。 code: led.c #include "led.h" #include "delay…...

阿里云服务器发送邮件失败 Could not connect to SMTP host: smtp.xxx.com, port: 465;

最近做了一个发送邮件的功能, 在本地调试完成后,部署到阿里云服务器就一直报错, Could not connect to SMTP host: smtp.qiye.aliyun.com, port: 465; 网上也搜索了很多的资料,最后花了好几个小时才解决, 报错日志如下…...

Socket编程权威指南(二)完美掌握TCP流式协议及Socket编程的recv()和send()

在上一篇文章中,我们学习了Socket编程的基础知识,包括创建Socket、绑定地址、监听连接、接收连接等操作。然而,真正的套接字编程远不止于此。本文将重点介绍TCP 流式协议,什么是粘包问题?如何解决粘包问题 &#xff1f…...

当C++的static遇上了继承

比如我们想要统计下当前类被实例化了多少次,我们通常会这么写 class A { public:A() { Count_; }~A() { Count_--; }int GetCount() { return Count_; }private:static int Count_; };class B { public:B() { Count_; }~B() { Count_--; }int GetCount() { return …...

Three.js中的Raycasting技术:实现3D场景交互事件的Raycaster详解

前言 在Web开发中,Three.js是一个极为强大的库,它让开发者能够轻松地在浏览器中创建和展示3D图形。随着3D技术在网页设计、游戏开发、数据可视化等领域的广泛应用,用户与3D场景的交互变得日益重要。而要实现这种交互,一个核心的技…...

5 分钟内构建一个简单的基于 Python 的 GAN

文章目录 一、说明二、代码三、训练四、后记 一、说明 生成对抗网络(GAN)因其能力而在学术界引起轩然大波。机器能够创作出新颖、富有灵感的作品,这让每个人都感到敬畏和恐惧。因此,人们开始好奇,如何构建一个这样的网…...

智能硬件产品中常用的参数存储和管理方案

一、有哪些参数需要管理? 在智能硬件产品中,一般有三类数据需要存储并管理: 1. 系统设置数据 系统设置数据是指产品自身正常工作所依赖的一些参数。 这类数据的特点:只能在生产过程中修改,出厂后用户无权限修改。 比如:产品SN、产品密钥/token/license、传感器校准值…...

SwiftUI中Mask修饰符的理解与使用

Mask是一种用于控制图形元素可见性的图形技术&#xff0c;使用给定视图的alpha通道掩码该视图。在SwiftUI中&#xff0c;它类似于创建一个只显示视图的特定部分的模板。 Mask修饰符的定义&#xff1a; func mask<Mask>(alignment: Alignment .center,ViewBuilder _ ma…...

全光网络与传统网络架构的对比分析

随着信息技术的飞速发展&#xff0c;网络已经成为我们日常生活中不可或缺的一部分。在这个信息爆炸的时代&#xff0c;全光网络和传统网络架构作为两种主流的网络技术&#xff0c;各有其特点和适用范围。本文将对这两种网络架构进行详细的对比分析&#xff0c;帮助读者更好地了…...

stack overflow复现

当你在内存的栈中&#xff0c;存放了太多元素&#xff0c;就有可能在造成 stack overflow这个问题。 今天看看如何复现这个问题。 下图&#xff0c;是我写的程序&#xff0c;不断的创造1KB的栈&#xff0c;来看看执行了多少次&#xff0c;无限循环。 最后结果是7929kB时, 发…...

mybatis使用笔记

文章目录 打印sql日志mybatis-config.xml方式application.yml里面配置配置类配置方式 其他扫描方式官网文档 mybatis用了那么久&#xff0c;实际一直不明白&#xff0c;做个笔记吧。 打印sql日志 实测&#xff0c;mybatis-config.xml方式好用(记得注掉yml里的相关配置) mybat…...

学习笔记——路由网络基础——路由概述

一、路由概述 1、路由定义与作用 路由(routing)是指导报文转发路径信息&#xff0c;通过路由可以确认转发IP报文的路径。 路由&#xff1a;是指路由器从一个接口上收到数据包&#xff0c;根据数据包的目的地址进行定向并转发到另一个接口的过程。 路由(routing)的定义是指分…...

在量子计算时代,大数据技术将面临哪些挑战和机遇?

在量子计算时代&#xff0c;大数据技术将面临以下挑战和机遇&#xff1a; 挑战&#xff1a; 处理速度&#xff1a;量子计算机具有极高的计算速度&#xff0c;大数据技术需要适应和充分利用这种速度。现有的大数据算法和架构可能需要重新设计和优化&#xff0c;以充分发挥量子计…...

怎么换自己手机的ip地址

在互联网时代&#xff0c;IP地址已经成为了我们数字身份的一部分。无论是浏览网页、下载文件还是进行在线交流&#xff0c;我们的IP地址都在默默发挥着作用。然而&#xff0c;有时出于安全或隐私保护的考虑&#xff0c;我们可能需要更换手机的IP地址。那么&#xff0c;如何轻松…...

搭建 Langchain-Chatchat 详细过程

前言 本文参考官网和其他多方教程&#xff0c;将搭建 Langchain-Chatchat 的详细步骤进行了整理&#xff0c;供大家参考。 我的硬件 4090 显卡win10 专业版本 搭建环境使用 chatglm2-6b 模型 1. 创建虚拟环境 chatchat &#xff0c;python 3.9 以上 conda create -n chat…...

C++期末复习

目录 1.基本函数 2.浅拷贝和深拷贝 3.初始化列表 4.const关键字的使用 5.静态成员变量和成员函数 6.C对象模型 7.友元 8.自动类型转换 9.继承 1.基本函数 &#xff08;1&#xff09;构造函数&#xff0c;这个需要注意的就是我们如果使用类名加括号&#xff0c;括号里面…...

2005-2022年各省居民人均消费支出数据(无缺失)

2005-2022年各省居民人均消费支出数据&#xff08;无缺失&#xff09; 1、时间&#xff1a;2005-2022年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;全体居民人均消费支出 4、范围&#xff1a;31省 5、缺失情况&#xff1a;无缺失 6、指标解释 居民人…...

swaggerHole:针对swaggerHub的公共API安全扫描工具

关于swaggerHole swaggerHole是一款针对swaggerHub的API安全扫描工具&#xff0c;该工具基于纯Python 3开发&#xff0c;可以帮助广大研究人员检索swaggerHub上公共API的相关敏感信息&#xff0c;整个任务过程均以自动化形式实现&#xff0c;且具备多线程特性和管道模式。 工具…...

【Rust】——面向对象设计模式的实现

&#x1f3bc;个人主页&#xff1a;【Y小夜】 &#x1f60e;作者简介&#xff1a;一位双非学校的大二学生&#xff0c;编程爱好者&#xff0c; 专注于基础和实战分享&#xff0c;欢迎私信咨询&#xff01; &#x1f386;入门专栏&#xff1a;&#x1f387;【MySQL&#xff0…...

C#朗读语音

最近有个需求&#xff0c;需要在C#程序发生异常时候&#xff0c;朗读文字&#xff0c;C#提供了.net framework可以提供简单的语音朗读功能。 引入依赖 using System.Media; using System.Speech.Synthesis; using System.Runtime.InteropServices; //报警音量 SystemSounds.…...

c++ 简单的日志类 CCLog

此日志类&#xff0c;简单地实现了向标准输出控制台和文件输出日志信息的功能&#xff0c;并能在这两者之间进行切换输出&#xff0c;满足输出日志的不同需求。 代码如下&#xff1a; /** CCLog.h* c_common_codes** Created by xichen on 12-1-12.* Copyright 2012 cc_te…...

一文读懂 Compose 支持 Accessibility 无障碍的原理

前言 众所周知&#xff0c;Compose 作为一种 UI 工具包&#xff0c;向开发者提供了实现 UI 的基本功能。但其实它还默默提供了很多其他能力&#xff0c;其中之一便是今天需要讨论的&#xff1a;Android 特色的 Accessibility 功能。 采用 Compose 搭建的界面&#xff0c;完美…...

Redis到底支不支持事务?

文章目录 一、概述二、使用1、正常执行&#xff1a;2、主动放弃事务3、全部回滚:4、部分支持事务:5、WATCH: 三、事务三阶段四、小结 redis是支持事务的&#xff0c;但是它与传统的关系型数据库中的事务是有所不同的 一、概述 概念: 可以一次执行多个命令&#xff0c;本质是一…...

美颜相机「BeautyCam」v12.0.80 祛广告解索会员版(美妆相机功能,展现女神魅力)

软件介绍 美颜相机&#xff0c;一款由知名移动互联网企业Meitu Inc.开发的移动设备照片编辑与美化应用&#xff0c;起初主要针对娱乐消费市场&#xff0c;随后集成了商业营销功能。目前&#xff0c;它已跻身全球最受欢迎的手机摄影应用程序之列。在中国&#xff0c;美颜相机和…...

Oracle的优化器

sql优化第一步&#xff1a;搞懂Oracle中的SQL的执行过程 从图中我们可以看出SQL语句在Oracle中经历了以下的几个步骤&#xff1a; 语法检查&#xff1a;检查SQL拼写是否正确&#xff0c;如果不正确&#xff0c;Oracle会报语法错误。 语义检查&#xff1a;检查SQL中的访问对象…...

[线程与网络] 网络编程与通信原理(六):深入理解应用层http与https协议(网络编程与通信原理完结)

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏:&#x1f355; Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 &#x1f9c0;Java …...

加强统筹推进政府网站建设/怎么营销自己的产品

深入浅出讲解TCP/UDP协议作者: ,  出处:中国电脑教育报, 责任编辑: 许琳,  2005-10-09 16:20图1就是瑞星个人版防火墙软件设置规则的界面。细心的读者会发现&#xff0c;图1中的“协议”栏中有“TCP”、“UDP”等名词&#xff0c;它们是什么意思呢&#xff1f;现在我们就来讲…...

建网站做seo/白帽seo

题目要求 将位置m的链接列表反转到n。 用一次通过遍历。 注意&#xff1a;1≤m≤n≤列表长度。 解题思路 有了反转链表的基础 解答leetcode 206. Reverse Linked List (翻转一个链表) 【剑指offer】 面试题24 翻转链表我们很容易对一个链表进行翻转的操作&#xff0c;那么如…...

wordpress5.9文章编辑器/关键词优化推广排名软件

从9i以后&#xff0c;一般都不需要手工处理确实的日志&#xff0c;FAL自动会帮我们处理这些问题。但是&#xff0c;并非我们就完全不用手工处理了&#xff0c;比如&#xff0c;你的磁盘空间爆满&#xff0c;归档日志在传到备库前被转移到其他地方&#xff0c;这种情况下FAL是不…...

个人网站毕业论文/黄页88网站推广方案

Mode Decision(模式选择)决定一个宏块以何种类型进行分割。宏块的分割类型有以下几种&#xff1a; 12345678910111213141516171819202122232425//P_Skip and B_Skip means that nothing need to be encoded for this macroblock ,// just use the mv predicted to restruct …...

建站网站/北京网站外包

a.如果备份的数据库可以访问&#xff0c;那么执行执行生产转化脚本&#xff1a;select set newname for datafile || file# || to ||replace( name,/old/data/path,/new/data/path ) || ; from v$datafile;b.如果备份的数据库不可以访问&#xff0c;可以trace控制文件内容&a…...

网站制作公司网址/牡丹江网站seo

【天极网手机频道】今年华为开发者大会上&#xff0c;华为消费者业务业务CEO余承东曾预告鸿蒙OS 2.0系统将于今年12月份面向手机开发者进行少量测试&#xff0c;明年则会陆续向消费者开放。如今&#xff0c;华为官网传来消息&#xff0c;华为将于12月16日举行HarmonyOS 2.0手…...