实验一 Python基础编程

实验一 Python基础编程

只为给原因学习编程的同学提供一个思路,让编程更简单!!!

本博主擅长整理粉丝的私信!只要你有需求就可以告诉博主!博主可以帮你解决并发表!

一、实验学时

2学时

二、实验目的

1. 掌握 Python 语言的基本语法、数据结构和控制结构;

2. 掌握函数式编程的基础知识,能够熟练运用函数的相关操作

三、实验环境

Python等

四、实验内容

1.解方程

编写程序,求解一元二次方程 x 2-10x+16=0。

参考代码:

import sympy as sp

# 定义符号变量
x = sp.Symbol('x')

# 定义方程  
eq = x ** 2 - 10 * x + 16

# 求解方程
y = sp.solve(eq, x)

# 输出结果
print(y)

2.猜食材

采用的思路就是分支结构的应用,关键是分情况。

使用 if-elif-else 语句实现一个猜食材的程序。程序将询问匿名食材 A、B、C、D 和 E 的味道及颜色,猜出该食材是柠檬(sour,yellow)、米醋(sour,colourless)、白糖 (sweet,white)、黑巧克力(bitter,black)、苦瓜(bitter,green)还是青椒(spicy,green)

参考代码:

# 定义食材列表  
foods = ['A', 'B', 'C', 'D', 'E']  
  
# 定义猜测函数  
def guess_food(food):  
    if food == 'A':  
        return 'sour, yellow'  
    elif food == 'B':  
        return 'sour, colourless'  
    elif food == 'C':  
        return 'sweet, white'  
    elif food == 'D':  
        return 'bitter, black'  
    elif food == 'E':  
        return 'bitter, green'  
    else:  
        return 'Unknown'  
  
# 猜测食材  
for food in foods:  
    guess = guess_food(food)  
    print(guess)

3. 组三位数

使用 for 语句编写程序,四个数字:1、2、3、4,求能组成多少个互不相同且无重复数
字的三位数,并输出组成的三位数。(可填在百位、十位、个位的数字都是 1、2、3、4;
组成所有的排列后再去掉不满足条件的排列)

count = 0    # 计数器,记录符合条件的三位数的个数
for i in range(1, 5):    # 百位数从 1 到 4 循环
    for j in range(1, 5):    # 十位数从 1 到 4 循环
        for k in range(1, 5):    # 个位数从 1 到 4 循环
            if (i != j) and (j != k) and (i != k):    # 如果三个数字互不相同
                count += 1   # 数量加一
                print(i*100+j*10+k)    # 输出这个符合条件的三位数
print("共有", count, "个符合条件的三位数")

4. 猴子吃桃

采用逆向思维的方式进行思考。

猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩 下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。(采取逆向思维的方法, 从后往前推断。

peach = 1  # 第10天早上剩下的桃子数
for i in range(9):  # 从倒数第二天向前推导
    peach = (peach + 1) * 2
print('第一天摘了', peach, '个桃子')

5.删除重复

编写程序,删除一个 list 里面的重复元素。

参考代码:

my_list = [1, 2, 3, 4, 4, 5, 1, 6, 7, 7]

# 创建一个空列表来存储不重复的元素
new_list = []

# 循环遍历原始列表中的每个元素
for element in my_list:

    # 如果该元素未出现在新列表中,将其添加到新列表中
    if element not in new_list:
        new_list.append(element)

print(new_list)

6.函数值判断

使用 def 语句和 lambda 语句分别创建一个函数,该函数的功能是判断 3 5是否与 12 2-1 相等,并输出判断结论。

compare = lambda: print("3*5 equals 12 or 3-5 equals -1") \
    if 3*5 == 12 or 3-5 == -1 else print("3*5 does not equal 12 and 3-5 does not equal -1")
compare()

7. 最值及长度

编写程序,利用元组作为函数的返回值,求序列类型中的最大值、最小值及元素个数, 并 编 写 测 试 代 码 。 假 设 测 试 数 据 分 别 为 [9,7,8,3,2,1,55,6] 、 ["apple","pear","melon","kiwi"]和"TheQuickBrownFox"。

def seq_analysis(seq):
    maximum = max(seq)
    minimum = min(seq)
    count = len(seq)
    return (maximum, minimum, count)

# 测试
data1 = [9,7,8,3,2,1,55,6]
data2 = ["apple","pear","melon","kiwi"]
data3 = "TheQuickBrownFox"

result1 = seq_analysis(data1)
result2 = seq_analysis(data2)
result3 = seq_analysis(data3)

print(result1) # 输出:(55, 1, 8)
print(result2) # 输出:('pear', 'apple', 4)
print(result3) # 输出:('u', 'B', 17)

五、概念补充

5.1sympy库

SymPy是一个符号计算的Python库,它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁、易于理解和扩展。它完全由Python写成,不依赖于外部库。SymPy支持符号计算、高精度计算、模式匹配、绘图、解方程、微积分、组合数学、离散数学、几何学、概率与统计、物理学等方面的功能。

solve是用来解方程的。

5.2完整代码

 下载地址:

https://download.csdn.net/download/weixin_41957626/87779809​​​​​​​

整理不易,点个赞再走吧。

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

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

相关文章

infuluxdb时序数据库介绍

时序数据库(influxdb) InfluxDB是一个开源的、高性能的时序型数据库,在时序型数据库DB-Engines Ranking上排名第一。 下载地址:https://dl.influxdata.com/influxdb/releases/influxdb2-2.3.0-windows-amd64.zip 启动: CMD到解压…

IDEA编译JDK1.8源码及运行测试

———————————————— 版权声明:本文为CSDN博主「神韵499」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_41055045/article/details/112002440 ————…

缓存穿透、缓存雪崩和缓存击穿

1 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存中没有,每次查询都要去数据库中查询,导致频繁地访问数据库,从而影响系统的性能。攻击者可以利用这一点,对系统进行拒绝服务攻击。 1.1 缓存穿透举例 攻击者…

Qt Plugin插件开发

一、Qt 插件机制 .1 Qt 插件简介 插件是一种遵循一定规范的应用程序接口编写出来的程序,定位于开发实现应用软件平台不具备的功能的程序。插件与宿主程序之间通过接口联系,就像硬件插卡一样,可以被随时删除,插入和修改&#xff…

docker学习笔记(二)

目录 启动Docker ​编辑 建立 Docker 用户 ​编辑 测试 Docker 是否正常工作 卸载Docker Docker镜像加速器配置 配置镜像 检查加速器是否生效 如何在Linux中的.json文件下保存并退出 如果我是使用vi操作进来的,我该如何保存并退出呢? 如何在Li…

基于粒子群优化算法的最佳方式优化无线传感器节点的位置(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 此代码优化了由于电池耗尽而产生覆盖空洞后 WSN 节点的位置。如果活动通信中的任何节点死亡,则通过PSO优化再次定位…

Java Socket和ServerSocket 使用

在Java中,Socket和ServerSocket是用于创建网络连接的重要类。Socket类用于创建客户端套接字,而ServerSocket类用于创建服务器套接字。在本文中,我们将讨论Socket和ServerSocket的作用、使用方法以及相关代码示例。 Socket的作用 Socket是Jav…

【2023 · CANN训练营第一季】应用开发深入讲解——第四章 DVPP初级

学习资源 1.JPEG图片解码 文档 2.图片缩放 文档 媒体数据处理 数据预处理的典型使用场景 数据预处理的多种方式 分为两种,AIPP和DVPP DVPP数据预处理功能 了解两个重要概念 宽stride 和 高stride 理解:这里假设一张图片的宽为500,高为3…

匹配算法之 匈牙利算法详解

参考: 算法学习笔记(5):匈牙利算法漫谈匈牙利算法匈牙利算法、KM算法匈牙利算法(二分图)通俗易懂小白入门)二分图最大匹配——匈牙利算法多目标跟踪之数据关联(匈牙利匹配算法和KM算法)【小白学…

187页9万字企业大数据治理与云平台实施方案(word)

1 项目背景概述 1.1 项目背景理解 1.2 项目需求范围 2 项目技术方案 2.1 咨询研究服务方案 2.1.1 咨询研究服务内容 2.1.2 咨询服务方案 2.2 第三方独立评估 2.2.1 概述 2.2.2 管理办法 2.2.3 考核机制 2.3 安全咨询研究服务方案 2.3.1 安全咨询服务内…

【k8s】【ELK】日志环境部署【待写】

1、日志收集基本概念 k8s中pod的路径: containers log: /var/log/containers/*.log Pod log: /var/log/pods docker log: /var/lib/docker/containers/*/*.log如何收集日志 使用 EFKLogstashKafka 1、filebeat读取容器中的日志,然后写入K…

ChatGPT在小红书文案实践

今天聊一聊ChatGPT在小红书这个实际应用场景的案例。ChatGPT 以较低的门槛提高了使用者创作水平,有较高的下限,但如何创造更高质量的内容就要依靠使用者在领域的能力和AI使用技巧,作者无任何小红书推广和文案写作经验,文章内容来自…

快速排序、希尔排序、归并排序、堆排序、插入排序、冒泡排序、选择排序(递归、非递归)C语言详解

1.排序的概念及其运用 1.1排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录&a…

python中使用opencv LED屏数字识别(可用做车牌识别,一样的原理)

应项目要求需要基于cpu的LED数字识别,为了满足需求,使用传统方法进行实验。识别传感器中显示的数字。因此使用opencv的函数做一些处理,实现功能需求。 首先读取图像,因为我没想大致得到LED屏幕的区域,因此将RGB转换为H…

postman处理各种请求数据

1、后台request接收postman参数 2、后台单个参数接收postman 3、后台RequestParam参数接收postman 注意事项:情况一:全部都是单个字符串的 情况二:有可能是一个json对象序列化成字符串过来的,那么需要在form-data中设置 …

鸿蒙Hi3861学习十-Huawei LiteOS-M(消息队列)

一、简介 消息队列,是一种常用于任务间通信的数据结构,实现了接收来自任务或中断的不固定长度的消息,并根据不同的接口选择传递消息是否存放在自己空间。任务能够从队列里面读取消息,当队列中的消息是空时,挂起读取任务…

国内免费cdn汇总2023最新

内容分发网络简称CDN,其原理大概是将网站内容分发至加速节点,让用户从就近的服务器节点上获取内容,从而提高网站的访问加载速度。大部分服务商(如阿里云,腾讯云,京东云等)的CDN服务是按使用量收…

【iOS】-- GET和POST(NSURLSession)

文章目录 NSURLSessionGET和POST区别 GET方法GET请求步骤 POSTPOST请求步骤 NSURLSessionDataDelegate代理方法AFNetWorking添加头文件GETPOST第一种第二种 NSURLSession 使用NSURLSession,一般有两步操作:通过NSURLSession的实例创建task;执…

STL配接器(容器适配器)—— stack 的介绍使用以及模拟实现。

注意 : 以下所有文档都来源此网站 : http://cplusplus.com/ 一、stack 的介绍和使用 stack 文档的介绍:https://cplusplus.com/reference/stack/stack/ 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中&…

预训练模型之BERT、Transformer-XL、XL-Net等

文章目录 预训练模型(Pre-trained Models, PTMs)前置知识BERTTransformer-XLXLNetTransformer-XL类似工作(Scalable Transformer)1. 《Scaling Transformer to 1M tokens and beyond with RMT》2. 《》 预训练模型(Pre…