实验一 Python开发环境语法基础

实验一 Python开发环境&语法基础

一、实验基本原理

运用Anaconda搭建的Jupyter notebook平台编写实例Python程序。

二、实验目的

1、熟悉Python集成开发系统背景。

2、熟悉Jupyter Notebook开发环境。

3、熟悉编写程序的基本过程。

三、具体要求

1、熟悉Python的基本语法,理解常量、变量、数据类型、运算符、复合数据类型、列表和字典等基本概念,灵活使用列表、字典等数据类型。

2、通过程序实例,熟练操作Jupyter Notebook平台,初步掌握Python程序设计的基本概念、编程规则和开发过程。

四、实验环境:

1、Windows 10电脑一台。

2、Anaconda、Python、Jupyter notebook平台。

  • 实验内容:

实例1:简历卡片。

以卡片形式显示自己的简历:班级、学号、姓名、年龄、电话、QQ、通信地址等,界面越美观成绩越高。提示:使用print函数。

PINK='\033[95m' #粉色 CYAN='\033[96m' #青色 RESET='\033[0m' #重置 # 输入基本信息 print(f"{CYAN}请输入基本信息{RESET}") name = input("请输入【姓名】: ") cls = input("请输入【班级】: ") sid = input("请输入【学号】: ") age = input("请输入【年龄】: ") tel = input("请输入【电话】: ") qq = input("请输入【QQ号】: ") mail = input("请输入【邮箱】: ") print(f"\n{CYAN}请输入个人特点{RESET}") gender = input("请输入【性别】(如: 男): ") likes = input("请输入【喜欢】(如: 唱、跳、rap、篮球): ") print(f"\n{CYAN}请输入工作经历{RESET}") exp = input("请输入【经历】(如: 曾担任学习委员...): ") # 生成简历卡片 print("\n" * 2) title = "-------------------个人简历-------------------" print(f"{PINK}{title}{RESET}") # 基本信息板块 print(f"{CYAN}基本信息{RESET}") print("-" * 46) print(f"姓名 {name}") print(f"班级 {cls}") print(f"学号 {sid}") print(f"年龄 {age}") print(f"Tel {tel}") print(f"QQ {qq}") print(f"E-mail {mail}") print("-" * 46) # 个人特点板块 print(f"{CYAN}个人特点{RESET}") print("-" * 46) print(f"• 性别: {gender}") print(f"• 喜欢: {likes}") print("-" * 46) # 工作经历板块 print(f"{CYAN}工作经历{RESET}") print("-" * 46) print(f"{exp}") print("-" * 46) # 底部图注(居中,长度与标题一致) caption = "图1 简历卡片" centered_caption = caption.center(len(title)) # 按标题长度居中 print(f"\n{PINK}{centered_caption}{RESET}")

实例2:四则运算。

要求用户从键盘输入两个浮点型运算数(使用input函数),然后计算并输出二者的和、差、积、商。举例:如果输入的两个数是5.0与2.0,那么:

和值的输出格式为“5.00与2.00和的为:7.00”,使用占位符%f实现;

差值的输出使用占位符%d实现;

乘积的输出使用format()方法实现;

商值的输出使用f-strings方式实现;

要求输入的两个数,每个同学都不一样。

#实例二 num1=float(input("请输入第一个数:")) num2=float(input("请输入第二个数:")) he=num1+num2 cha=num1-num2 ji=num1*num2 shang=num1/num2 print("%.2f与%.2f和的为:%.2f"%(num1,num2,he)) print("%.2f和%.2f的差为:%d"%(num1,num2,cha)) print("{:.2f}和{:.2f}的积为:{:.2f}".format(num1,num2,ji)) print(f"{num1:.2f}和{num2:.2f}的商为:{shang:.2f}")

实例3:字符串切片。

设计一个程序,输入是一个字符串“*重庆邮电大学-通信与信息工程学院-通信工程专业*”(样本字符串)。然后按下列要求操作。

(1)输出这个字符串的长度。

(2)用切片的方式用一句Python语句输出“重庆邮电大学”。

(3)用切片的方式用一句Python语句输出“重邮通信”。(提示:三次切片再拼接)

(4)用切片的方式用一句Python语句输出“通信”。(要求起始和结束使用反向索引)

(5)使用split方法切出三个子串,并逆序输出第二个子串。

(6)输出字符串中“通信”出现的次数。

(7)使用replace()方法将串中的“通信与信息工程”用“通信”替换,并输出替换后的串。

#实例三 str1 = "*重庆邮电大学-通信与信息工程学院-通信工程专业*" print("字符串长度:",end="") print(len(str1)) print("切片大学:",end="") print(str1[1:7]) print("两次切片拼接:",end="") print(str1[1:4:2]+str1[8:10]) print("反向索引:",end="") print(str1[-7:-6]+str1[-6:-5]) print("切三个子串并逆序输出第二个子串:",end="") str2=str1.split("-",2) #先切割 str2=str2[1] #提取 str2=str2[::-1] #逆序 print(str2) print("通信出现的次数:",end="") print(str1.count("通信")) print("替换通信与信息工程:",end="") print(str1.replace("通信与信息工程","通信"))

实例4:计算三角形面积。

要求:用Python编程实现,接收用户从键盘输入的三角形的三边长,计算三角形的面积,并输出。要求:每个同学输入的数据均不同。(提示:先算出周长的一半首先计算半周长,接着应用海伦公式计算面积。

#实例四 import math a=float(input('请输入第一边长a: ')) b=float(input('请输入第二边长b: ')) c=float(input('请输入第三边长c: ')) if(a+b>c)and(a+c>b)and(b+c>a): p=0.5*(a+b+c) s=math.sqrt(p*(p-a)*(p-b)*(p-c)) print("三角形的面积为: %.2f"%s) else: print("不符合三角形“任意两边之和大于第三边”的条件")

实例5:列表操作。

功能如下:

(1)从键盘输入5个城市的名字,存入一个列表中。要求:

① 第一个城市是你所在家乡的城市名。

② 用一个input函数完成5个城市名字的输入,如:input("请输入5个城市的名字,用空格分隔:") 。

(2)将该列表中元素,即5个城市的名字用for循环遍历输出。

(3)用索引值输出列表中你家乡的名字。再切片输出所有其它城市名字。

(4)对该列表进行逆序输出。要求用两种方法完成。

方法一:切片法;方法二:使用reverse()方法,不改变原列表。

(5)对该列表进行降序排序,并输出。要求用两种方法完成。

方法一:sorted();方法二:sort()。

(6)对降序排序后的列表,用切片方法,输出你家乡的名字及其前面和后面的名字(如果有的话)。注:不能直接使用0、1、2、……这样的索引值,即你家乡城市名的索引值使用index()函数获得。提示:需要用if 语句。

(7)将你家乡城市的名字前面和后面的城市(如果有的话),改名为任意其他城市的名字,并输出。注:还是不能直接用数字作为索引值。提示:需要用if 语句,index()函数。

(8)将刚才改名的1个(如果你家乡所在城市排在第一位或最后一位)或2个城市的名字删除,并输出剩下的城市名字。注:还是不能直接用数字作为索引值。提示:需要用if 语句,index()函数。

#实例五 # 输入 5 个城市名称,用空格隔开,第一个城市是家乡 cities = input("请输入 5 个城市的名称,用空格隔开: ").split() # 遍历输出城市 print("遍历输出城市:") for city in cities: print(city) # 索引输出家乡城市 hometown = cities[0] print("家乡城市:", hometown) # 切片输出其他城市 other_cities = cities[1:] print("除家乡外的其他城市:", other_cities) # 方法一:使用切片逆序 reversed_cities = cities[::-1] print("逆序列表(切片法):", reversed_cities) # 方法二:使用 reverse() 方法,先复制列表再 reverse cities_copy = cities[:] cities_copy.reverse() print("逆序列表(reverse() 方法):", cities_copy) # 方法一:使用 sorted() 进行降序排序 sorted_cities = sorted(cities, reverse=True) print("降序列表(sorted() 方法):", sorted_cities) # 方法二:使用 sort() 进行降序排序,直接修改原列表 cities.sort(reverse=True) print("降序列表(sort() 方法):", cities) # 第6题: 对降序排序后的列表,输出家乡及前后城市 index_of_hometown = cities.index(hometown) # 根据家乡的位置输出前后城市 if (index_of_hometown - 1) >= 0: print('前面的城市是:', cities[index_of_hometown - 1]) else: print('前面没有城市') if (index_of_hometown + 1) < len(cities): print('后面的城市是:', cities[index_of_hometown + 1]) else: print('后面没有城市') # 第7题: 修改家乡前后的城市名称 new_city_before = input("请输入修改家乡前面城市的名称:") # 输入家乡前面的城市 new_city_after = input("请输入修改家乡后面城市的名称:") # 输入家乡后面的城市 # 找到家乡的位置 index_of_hometown = cities.index(hometown) # 修改前后的城市 if (index_of_hometown - 1) >= 0: cities[index_of_hometown - 1] = new_city_before # 修改家乡前面的城市 print("前面修改完成!") else: print('前面无其他城市') if (index_of_hometown + 1) < len(cities): cities[index_of_hometown + 1] = new_city_after # 修改家乡后面的城市 print("后面修改完成!") else: print('后面无其他城市') print("修改后的城市列表:", cities) # 第8题: 删除改名后的城市并输出剩余城市 if (index_of_hometown - 1) >= 0: cities.remove(new_city_before) # 删除前面修改过的城市 if (index_of_hometown + 1) < len(cities): cities.remove(new_city_after) # 删除后面修改过的城市 print("删除后的城市列表:", cities)

实例6:字典操作。

定义一个字典变量:

dic_country={"China":"Beijing","America":"Washington","Norway":"Oslo","Japan":"Tokyo","Germany":"Berlin","Canada":"Ottawa","France":"Paris","Thailand":"Bangkok"}。

用input函数“请输入国家名:”,如果国家存在,用format函数输出首都名。格式为首都名:Beijing。如果这个国家不存在,请输出"未查询到该国家名!"。如:

请输入国家名:CHINA

首都名:Beijing

请输入国家名:SDG

未查询到该国家名!

#实例六 # 定义一个字典变量,存储国家和首都的对应关系 dic_country = { "China": "Beijing", "America": "Washington", "Norway": "Oslo", "Japan": "Tokyo", "Germany": "Berlin", "Canada": "Ottawa", "France": "Paris", "Thailand": "Bangkok" } # 使用 input 函数获取用户输入的国家名 country = input("请输入国家名:") # 检查输入的国家是否存在于字典中 if country in dic_country: # 如果存在,输出对应的首都名 print("首都名:{}".format(dic_country[country])) else: # 如果不存在,提示查询不到该国家 print("未查询到该国家名!")

六:思考题

实例1:列表嵌套。

编写一个与嵌套列表相关的程序。功能如下:

(1)用语句:nested_list_XYY= [[1,3,2], [6,4,5], [8,9,7]]定义一个嵌套列表。说明:

  1. 其中X是你的班号,YY是你的一位或两位学号, 9个数字依次是学号,以及以学号为中心前后各4个数字。如题目中的9个数字是学号为5的示例。最小的3个数字保证在第一行,3个数字的顺序随意;中间3个数字保证在第二行,3个数字顺序随意;最大的3个数字保证在第三行,3个数字的顺序随意);
  2. 每个同学需要修改此样本数据,方法:5改成你的一位或两位学号,如:15号同学的实验用数据可以是[ [13,11,12], [16, 15, 14], [18, 17,19]]。
  3. 若有1到4号的同学,学号请改为: 60+你的学号。

(2)将该嵌套列表中的每一行中的3个数字升序排序,并输出排序后的嵌套列表。

(3)将排序后的嵌套列表转化成一个非嵌套列表(俗称压平),名字为:list_XYY,其中X是你的班号,YY是你的两位学号。并遍历输出压平后的列表。

#思考题一 # 定义嵌套列表 nested_list_553 = [[49, 51, 50], [54, 53, 52], [55, 57, 56]] # 将每个学生的成绩进行升序排序 for i in range(len(nested_list_553)): nested_list_553[i].sort() # 输出排序后的嵌套列表 print("排序后的嵌套列表:") print(nested_list_553) # 将嵌套列表转换为非嵌套列表 flat_list_553 = [item for sublist in nested_list_553 for item in sublist] # 输出转换后的非嵌套列表 print("转换后的非嵌套列表:") print(flat_list_553)

实例2:成绩统计。

假设已有字典变量dic_score存储了学生的成绩信息,姓名为键。语文数学英语计算机的成绩为值。

dic_score={"张三":[88,90,98,95],"李四":[85,92,95,98],"王五":[89,89,90,92],"丁六":[82,86,89,90]}

(1)试编写程序,统计每名学生的平均成绩和最高成绩,添加至每个学生成绩的后面,最后将字典输出。

(2)将(1)中的成绩形成嵌套列表输出。

(3)求每门课的最高分,作为新的键和值存入字典,并按照如下格式输出。

姓名语文数学英语计算机平均分最高分

张三8890989592.7598

李四8592959892.598

王五8989909290.092

丁六8286899086.7590

最高分8992989892.7598

#思考题二 # (1) 定义成绩字典 dic_score = { "张三": [88, 90, 98, 95], "李四": [85, 92, 95, 98], "王五": [89, 89, 90, 92], "丁六": [82, 86, 89, 90] } # (1)统计每名学生的平均成绩和最高成绩,添加至每个学生成绩的后面,最后将字典输出 for name, scores in dic_score.items(): average_score = sum(scores) / len(scores) max_score = max(scores) dic_score[name].extend([average_score, max_score]) print("修改后学生成绩:") print(dic_score) # (2) 将(1)中的成绩形成嵌套列表输出 nested_list = [[name] + scores for name, scores in dic_score.items()] print("嵌套列表学生成绩:") print(nested_list) # (3) 求每门课的最高分,作为新的键和值存入字典,并按照如下格式输出 MaxScore = [0, 0, 0, 0, 0, 0] # 用来存储各科的最高分,包括语文、数学、英语、计算机、平均分、最高分 for scores in dic_score.values(): MaxScore[0] = max(MaxScore[0], scores[0]) # 语文最高分 MaxScore[1] = max(MaxScore[1], scores[1]) # 数学最高分 MaxScore[2] = max(MaxScore[2], scores[2]) # 英语最高分 MaxScore[3] = max(MaxScore[3], scores[3]) # 计算机最高分 MaxScore[4] = max(MaxScore[4], scores[4]) # 平均分最高分 MaxScore[5] = max(MaxScore[5], scores[5]) # 最高分 dic_score["最高分"] = MaxScore # (4) 输出最终的成绩表 print("最终成绩表:") print("姓名\t语文\t数学\t英语\t计算机\t平均分\t最高分") for name, scores in dic_score.items(): print(f"{name}\t{scores[0]}\t{scores[1]}\t{scores[2]}\t{scores[3]}\t{scores[4]:.2f}\t{scores[5]}")

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LuatOS系统消息处理机制深度解析!

在LuatOS嵌入式运行环境中&#xff0c;系统消息是实现模块间通信与事件响应的核心机制。其消息处理机制采用轻量级事件驱动模型&#xff0c;有效降低CPU占用并提升系统实时性。此处列举了LuatOS框架中自带的系统消息列表。一、sys文档链接&#xff1a;https://docs.openluat.co…

避坑指南:LuatOS-Air脚本移植至LuatOS常见问题!

在实际开发中&#xff0c;许多开发者在尝试将LuatOS-Air脚本运行于标准LuatOS环境时遭遇报错或功能异常。这些问题多源于对底层驱动抽象层理解不足以及对系统任务模型的误用。本文将梳理典型错误场景&#xff0c;并提供可落地的修复方案&#xff0c;助力实现平滑迁移。 一、lua…

eide环境下GD32固件下载失败问题全面讲解

eIDE烧录GD32失败&#xff1f;从底层机制到实战排错的全链路技术拆解你有没有遇到过这样的场景&#xff1a;代码编译通过&#xff0c;接线看似没问题&#xff0c;点击“Download”按钮后却弹出一串红字——“Target Not Responding”、“Connection Failed”或干脆卡在“Connec…

实验二 Python 控制结构与文件操作

实验二 Python 控制结构与文件操作一、实验基本原理运用 Anaconda 搭建的 Jupyter notebook 平台编写 Python 实例程序。二、实验目的1、理解 Python 的流程控制、文件操作的基本原理。2、通过实际案例编程&#xff0c;掌握 Python 的流程控制、文件的基本操作。三、具体要求1、…

核心要点:避免USB Serial驱动下载后被系统禁用

一次连接&#xff0c;永久可用&#xff1a;破解USB Serial驱动被系统禁用的底层真相 你有没有遇到过这样的场景&#xff1f; 刚插上开发板&#xff0c;驱动安装成功&#xff0c;PuTTY连上了&#xff0c;日志哗哗地刷出来——一切看起来都那么完美。可第二天重启电脑&#xff…

Opensearch数据迁移:CCR功能数据迁移完整操作指南(上)

#作者&#xff1a;stackofumbrella 文章目录使用CCR功能迁移数据功能概述约束限制在主集群中创建索引从集群中执行启用CCR复制功能在主集群中写入测试数据在从集群中查看同步状态查看从集群中的同步数据关闭CCR功能查看远程集群信息删除远程集群配置信息使用CCR功能迁移数据 功…

计算机毕业设计-课程设计-校园失物招领系统设计与实现-程序-文档-全套资料

摘要学校作为一个人流量非常大的场所&#xff0c;当我们的物品不小心遗失后&#xff0c;之后的找寻过程一定是非常困难的。而为了可以解决这中问题&#xff0c;就出现了校园失物招领网站&#xff0c;通过校园失物招领网站&#xff0c;可以减少我们因为失物而带来的不便和困扰。…

Modbus RTU数据读取异常?ModbusPoll下载抓包辅助诊断

Modbus RTU通信总出问题&#xff1f;别急&#xff0c;用ModbusPoll抓包一招定位你有没有遇到过这样的场景&#xff1a;某台电表明明通着电、接线也没松动&#xff0c;但PLC就是读不到数据&#xff1b;或者HMI上某个温度值频繁跳变、甚至直接报超时&#xff1f;如果这个系统走的…

基于STM32的QSPI通信实战案例详解

STM32上的QSPI实战&#xff1a;从零搭建高速外部存储系统你有没有遇到过这样的困境&#xff1f;项目做到一半&#xff0c;内部Flash快爆了&#xff0c;GUI资源、音频文件、新功能代码全挤在一起&#xff0c;改一行代码都得精打细算&#xff1b;OTA升级时看着进度条一动不动&…

Keil项目迁移时中文注释乱码的预防与处理策略

如何彻底解决 Keil 中文注释乱码问题&#xff1f;一个嵌入式老手的实战经验最近接手了一个遗留项目&#xff0c;从同事手里接过压缩包解压后打开 Keil 工程&#xff0c;第一眼就傻了——满屏“ž„‹Œ–£”、“???”……原本清晰的中文注释全变成了天书。这哪是代码…

深入 Yak 语言高级编程:异步并发与延迟执行实践

深入Yak语言高级编程&#xff1a;异步并发与延迟执行实践 前言 Yak语言作为一款面向网络安全领域的动态编程语言&#xff0c;凭借其轻量、高效的特性&#xff0c;在渗透测试、漏洞挖掘等场景中得到了广泛应用。对于安全从业者而言&#xff0c;编写高性能的自动化脚本往往需要依…

论坛网站信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

&#x1f4a1;实话实说&#xff1a;有自己的项目库存&#xff0c;不需要找别人拿货再加价&#xff0c;所以能给到超低价格。摘要 随着互联网技术的快速发展&#xff0c;论坛网站作为信息交流的重要平台&#xff0c;逐渐成为用户分享观点、获取知识的主要渠道。传统论坛系统在功…

钥匙和房间

本文参考代码随想录 有 N 个房间&#xff0c;开始时你位于 0 号房间。每个房间有不同的号码&#xff1a;0&#xff0c;1&#xff0c;2&#xff0c;…&#xff0c;N-1&#xff0c;并且房间里可能有一些钥匙能使你进入下一个房间。 在形式上&#xff0c;对于每个房间 i 都有一个…

IAR使用教程:优化嵌入式C代码的操作指南

如何用IAR榨干MCU性能&#xff1f;一位嵌入式老手的实战优化笔记最近在调试一个低功耗传感器项目时&#xff0c;客户突然提出“电池寿命必须延长30%”。我看了看当前固件&#xff1a;Flash用了快300KB&#xff0c;SRAM占用接近80%&#xff0c;主循环执行时间也偏长。硬件已经定…

大模型推理过程内存占用(动态)

阿里社区博客(重点在transformer的激活值参数量估计)&#xff1a;https://developer.aliyun.com/article/1496103 推理时显存占用&#xff08;GitHub&#xff09;&#xff1a; https://github.com/Hoper-J/I-Guide-and-Demos-zh_CN/blob/master/Guide/07.%20%E6%8E%A2%E7%A9%…

u8g2字体编码与字符映射关系通俗解释

u8g2字体编码与字符映射&#xff1a;从“乱码”到清晰显示的底层逻辑 你有没有遇到过这样的场景&#xff1f;在STM32或ESP32上驱动一块OLED屏&#xff0c;信心满满地调用 u8g2_DrawStr() 打印一句中文“温度25C”&#xff0c;结果屏幕上却只出现几个方框、问号&#xff0c;甚…

AD23新增元件库资源盘点:与AD20的生态扩展对比

AD23元件库生态跃迁&#xff1a;从“建库”到“治库”的工程革命你有没有经历过这样的场景&#xff1f;深夜赶板&#xff0c;原理图画到一半&#xff0c;发现缺一个关键电源芯片的封装——查遍本地库、论坛、第三方网站&#xff0c;最终找到一个名字像模像样但引脚顺序反了的Pc…

单词接龙问题

本文参考代码随想录 字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列&#xff1a; 序列中第一个单词是 beginWord 。 序列中最后一个单词是 endWord 。 每次转换只能改变一个字母。 转换过程中的中间单词必须是字典 wordList 中的单词。…

STM32最小系统板Keil5下载实操从零实现

从零搭建STM32最小系统板&#xff1a;Keil5下载实战全解析 你是否也经历过这样的时刻——电路焊好了&#xff0c;代码写完了&#xff0c;满怀期待地点击“Download”&#xff0c;结果 Keil 弹出一串红字&#xff1a;“No target connected”&#xff1f; 别急&#xff0c;这几…

信息化在线教学平台信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

&#x1f4a1;实话实说&#xff1a;用最专业的技术、最实惠的价格、最真诚的态度服务大家。无论最终合作与否&#xff0c;咱们都是朋友&#xff0c;能帮的地方我绝不含糊。买卖不成仁义在&#xff0c;这就是我的做人原则。摘要 随着信息技术的快速发展&#xff0c;教育行业正逐…