Python零基础学习--基础语法
目录一、1、字符串拼接1直接2字符串格式化2、输入输出3、运算符1算术运算符2赋值运算符3比较运算符4赋值运算符4、流程控制语句1条件判断a、if条件b、match...case模式匹配2循环语句a、while循环b、for循环c、案例d、关键字break和continue二、数据容器1、list列表2、str1如何判断某个子串是否在字符串中2如何将字符串反转3、元组tuple组包与解包例子案例4、集合set运算符1、运算符 2、运算符 -3、运算符 |将多个set合并1、成一个列表2、成一个集合5、字典dict遍历案例6、数据容器总结对比7、综合案例python官网地址python.orgpycharm官网www.jetbrains.com一、1、字符串拼接1直接用 字符串常量和字符串变量都可以用进行拼接str()将整形转化成字符串就可以与字符串拼接了int()其他类型转为intfloat()其他类型转为floatbool()其他类型转为boolprint 时输出不同内容可以用逗号连接但输出结果中间会存在空格2字符串格式化通过%占位符%表示要占位s表示将变量转为字符串放入占位的位置a,b 8,9 #将变量转为字符串放入占位的位置 print(大家好我是%s%a) #有几个占位符就要跟几个变量 print(大家好我是%s欢迎%s%(a,b))通过f内容{变量/表达式}大括号内可以写算术表达式a,b 8,9 #占位符是{} print(f大家好我是{a}) #有几个占位符就要跟几个变量 print(f大家好我是{a}欢迎{b})2、输入输出input语句获取键盘输入s input(提示信息)要注意从键盘中获取到的都是字符串无论输入什么print将数据输出到控制台print(数据)print默认以“\n”结束如果想让他输出不换行要指定end参数来指定每次print以什么结束注意如果想一次性输入多个变量由于input() 返回的是一个字符串是一个整体不能自动拆分所以要使用split函数将字符串用空格分开或指定其他分隔符# 错误写法 × name, price, num input(请输入商品名称、价格、数量) #正确写法 √ name, price, num input(请输入商品名称、价格、数量).split()3、运算符1算术运算符特别的除法运算的结果是小数优先级** * / // % -精度损失问题可以用decimal模块来解决#修改前 xfloat(input())#0.5 yfloat(input())#0.4 print(x-y,x-y) #输出为0.999999998这是二进制float无法精确表示所有小数 #修改后 from decimal import Decimal x Decimal(input()) #0.5 y Decimal(input()) #0.4 print(x-y , x - y) #正确输出0.1小数想要四舍五入保留精度可以使用round函数语法是round(数字保留精度位数小数点后几位)2赋值运算符3比较运算符4赋值运算符4、流程控制语句1条件判断a、if条件案例三角形类型判断 a int(input(请输入第一个边长)) b int(input(请输入第2个边长)) c int(input(请输入第3个边长)) if ab c and acb and bca: if a b c: print(f{a} {b} {c}等边) elif a b or a c or b c: print(f{a} {b} {c}等腰) else: print(f{a} {b} {c}普通) else: print(不能构成三角形)b、match...case模式匹配case语句后面可以加条件判断语句计算器 a float(input(请输入第一个运算数)) b float(input(请输入第二个运算数)) opre input(输入运算符) match opre: case : print(f{a}{b}{ab}) case -: print(f{a}-{b}{a-b}) case *: print(f{a}*{b}{a*b}) case / if b ! 0: print(f{a}/{b}{a/b}) case _: #匹配其他所有情况 print(错误)2循环语句a、while循环计算1-100之间所有偶数的累加之和 a 1 sum 0 while a 100: if a % 2 0: sum a a 1 # else这段逻辑可有可无 else: print(f结果为{sum},正常结束)b、for循环与c语言中不太一样for的本质是遍历一个数据集中的所有元素计算1-100之间所有奇数的累加之和 sum1 0 for i in range(1, 101, 2): sum1 i #用逗号连接输出会有空格 print(1-100之间所有奇数的累加之和为,sum1) 计算100-500之间所有3的倍数之和 sum2 0 for i in range(100, 501): if i % 3 0: sum2 i #没空格 print(f100-500之间所有3的倍数之和为{sum2})c、案例打印99乘法表 for i in range(1, 10): for j in range(1, i1): print(f{j} × {i} {i*j}, end\t) print()d、关键字break和continuebreak只能用于循环中跳出当前循环continue用于略过后面的执行体进入下一次循环用户登录 while True: admin input(请输入用户名) password input(请输入密码) if admin or password : print(用户名和密码不能为空!) continue else: if (admin admin and password 666888) or (admin zhangsan and password 123456) or (admin taoge and password 888666): print(登陆成功) break else: print(用户名或密码错误)二、数据容器1、list列表2、str1如何判断某个子串是否在字符串中# 1、count()方法、find()方法 s wer123.com if s.find(.) and s.count() 1: print(邮箱格式正确) else: print(邮箱格式错误) # 2、in运算符 s wer123.com if . in s and s.count() 1: print(邮箱格式正确) else: print(邮箱格式错误)2如何将字符串反转#利用字符串切片 s asdfgh ss s[::-1]判断字符串是否是回文串s input() ss s[::-1] if s ss: print(是回文串) else: print(不是回文串)3、元组tuple注意如果元组中只有一个元素单个元素之后必须要加逗号例如100组包与解包基础解包的变量数量要与容器的元素个数一致解包用*会收集成列表便于后续处理例子# 将a b c数据交换 a, c 1, 3 b 2 a, b, c c, a, b print(a, b, c)案例grad ( (S001, 王林, 85, 92, 78), (S002, 李慕婉, 92, 88, 95), (S003, 十三, 78, 85, 82), (S004, 曾牛, 88, 79, 91), (S005, 周轶, 95, 96, 89), (S006, 王卓, 76, 82, 77), (S007, 红蝶, 89, 91, 94), (S008, 徐立国, 75, 69, 82), (S009, 许木, 86, 89, 98), (S010, 遁天, 66, 59, 72), ) # 1 每个学生计算总分、各科平均分 print(学号\t\t总分\t\t平均分) # 方式一 for g in grad: all_score g[-1] g[-2] g[-3] average_score all_score / 3 print(f{g[0]}\t{all_score}\t\t{average_score:.1f}) # 方式二 基于解包可读性高 for id, name, chinese, math, english in grad: all_score chinese math english average_score all_score / 3 print(f{id}\t{all_score}\t\t{average_score:.1f}) # 2 各科成绩的 chinese_scores [s[2] for s in grad] math_scores [s[3] for s in grad] english_scores [s[4] for s in grad] print(f语文最低分{min(chinese_scores)}最高分{max(chinese_scores)}平均分{sum(chinese_scores)/len(chinese_scores)}) print(f数学最低分{min(math_scores)}最高分{max(math_scores)}平均分{sum(math_scores)/len(math_scores)}) print(f英语最低分{min(english_scores)}最高分{max(english_scores)}平均分{sum(english_scores)/len(english_scores)}) # 3 查找成绩优秀的学生 for g in grad: all_score g[-1] g[-2] g[-3] average_score all_score / 3 if average_score 90: print(f{g[0]}同学成绩优秀平均分大于90) for id, name, chinese, math, english in grad: all_score chinese math english average_score all_score / 3 if average_score 90: print(f{id}同学成绩优秀平均分大于90)4、集合set运算符1、运算符 可以实现和intersection一样的效果set1.intersection(set2) 等价于 set1 set22、运算符 -可以实现和difference一样的效果set1.difference(set2) 等价于 set1 - set2还可以用集合推导式语法{要往集合中添加的数据 for s in set1 if 条件}set3 { s for s in set1 if s not in set2 }3、运算符 |可以实现和union一样的效果set1.union(set2) 等价于 set1 | set2将多个set合并1、成一个列表使用解包可以用于计算多个集合中每个元素一共出现多少次all_list [*set1 , *set2 , *set3]2、成一个集合使用union或者|可以用于去重5、字典dict如果键重复后面的值会覆盖前面的值添加和修改的语法一样如果字典中已经存在这个key就会修改否则添加遍历for k in dict.keys(): print(f{k} : {dict[k]}) for item in dict.items(): print(f{item[0]} : {item[1]}) for k, v in dict.items(): print(f{k} : {v}) #注意如果想遍历键值对不能直接遍历dict因为默认遍历的是键 #以下是错误的 for k in dict1: print(k)案例print(欢迎使用购物车) shop_car dict() while 1: instruct input(请选择要进行的操作\n1、添加\n2、修改\n3、删除\n4、查询\n5、退出) match instruct: case 1: name, price, num input(请输入商品名称、价格、数量).split() if name in shop_car: print(该商品已存在添加失败) else: shop_car[name] [price, num] print(添加成功) case 2: name, price, num input(请输入商品名称、价格、数量).split() if name not in shop_car: print(不存在该商品请核实) else: shop_car[name] [price, num] print(修改成功) case 3: name input(请输入商品名称) if name not in shop_car: print(商品不存在删除失败) else: del shop_car[name] print(删除成功) case 4: for k, v in shop_car.items(): print(f商品名称{k}商品价格{v[0]}商品数量{v[1]}) case 5: print(已退出) break case _: print(非法操作请重新输入)6、数据容器总结对比7、综合案例print(欢迎使用教务管理系统) menu ####################### 1、添加学生信息 2、修改学生信息 3、删除学生信息 4、查询学生信息 5、列出所有学生 6、统计班级成绩 7、退出系统 ####################### students {} while 1: print(menu) order input(请选择\n) match order: case 1: name input(请输入学生姓名:) if name in students: print(添加失败已经存在该学生) continue chinese float(input(请输入语文成绩:)) math float(input(请输入数学成绩:)) english float(input(请输入英语成绩:)) students[name] {chinese: chinese, math: math, english: english} case 2: name input(请输入学生姓名:) if name not in students: print(修改失败未找到该学生) continue chinese float(input(请输入语文成绩:)) math float(input(请输入数学成绩:)) english float(input(请输入英语成绩:)) students[name] {chinese: chinese, math: math, english: english} case 3: name input(请输入学生姓名:) if name not in students: print(删除失败未找到该学生) continue students.pop(name) case 4: name input(请输入学生姓名:) if name not in students: print(查找失败未找到该学生) continue print(f学生姓名{name}语文成绩{students[name][chinese]} f数学成绩{students[name][math]}英语成绩{students[name][english]}) case 5: for name in students: print(f学生姓名{name}语文成绩{students[name][chinese]} f数学成绩{students[name][math]}英语成绩{students[name][english]}) case 6: chinese_score [students[name][chinese] for name in students] math_score [students[name][math] for name in students] english_score [students[name][english] for name in students] print(f语文最高分{max(chinese_score)}最低分{min(chinese_score)}平均分{sum(chinese_score)/len(chinese_score)}) print(f数学最高分{max(math_score)}最低分{min(math_score)}平均分{sum(math_score) / len(math_score)}) print(f英语最高分{max(english_score)}最低分{min(english_score)}平均分{sum(english_score) / len(english_score)}) case 7: print(bye!) break case _: print(error!)

相关新闻

C语言期末核心考点精讲:从指针内存到应试技巧全攻略

C语言期末核心考点精讲:从指针内存到应试技巧全攻略

1. 从“及格万岁”到“高分稳拿”:一份C语言期末自救指南又到期末了,是不是感觉书上的代码都认识,合上书就一片空白?或者,面对老师划的重点,感觉每个字都懂,连起来却不知道从何下手?…

2026/10/17 8:52:58 阅读更多 →
Cesium三维地球动效增强工具Geo-Effect-Kit核心功能与集成实践

Cesium三维地球动效增强工具Geo-Effect-Kit核心功能与集成实践

这次我们来看一个专门为Cesium三维地球引擎设计的动效增强工具——Geo-Effect-Kit。如果你正在开发基于Cesium的数字孪生、智慧城市或地理信息可视化项目,并且觉得默认的视觉效果不够酷炫,那么这个开源工具包值得你关注。它的核心目标很直接:…

2026/10/18 5:21:56 阅读更多 →
树莓派无头部署与PyCharm远程开发完整指南

树莓派无头部署与PyCharm远程开发完整指南

1. 项目概述:无头部署树莓派的完整工作流如果你手头有一块树莓派,但暂时没有多余的显示器、键盘和鼠标,是不是就让它吃灰了?完全不是。对于很多嵌入式开发、小型服务器部署或者自动化脚本项目来说,“无头”安装和配置恰…

2026/10/18 5:22:23 阅读更多 →

最新新闻

artcraft:从创意到实物的艺术手工落地指南

artcraft:从创意到实物的艺术手工落地指南

1. 从“artcraft”这个名字说起:它到底想解决什么问题第一次看到“artcraft”这个标题,我脑子里蹦出来的第一反应是——这大概率不是一个单纯的艺术项目,也不是一个纯粹的手工教程,而是一个把“艺术表达”和“手工实现”缝合在一起…

2026/10/19 7:22:14 阅读更多 →
大模型推理优化实战:从KV Cache到量化的部署指南

大模型推理优化实战:从KV Cache到量化的部署指南

1. 第七十一期的位置:为什么系统学习后半程要重点啃"推理优化"追过这套 LLM 大模型系统学习指南的朋友应该知道,前面的期数一直在做两件事:把模型从原理层面拆开,再把训练链路跑通。到了第 71 期,我打算换一…

2026/10/19 7:22:14 阅读更多 →
硬件在环(HIL)十年演进:从物理台架到云端CI与场景库

硬件在环(HIL)十年演进:从物理台架到云端CI与场景库

十年时间,足够让一项技术从"少数人才懂的奢侈品"变成"行业默认的基本功",也足够让一批当年守着台架熬夜调参的工程师,变成今天对着云端算力和测试中台发愁的中年人。我入行做硬件在环(Hardware-in-the-Loop&a…

2026/10/19 7:22:14 阅读更多 →
初步学习ST NUCLEO-C542RC开发板

初步学习ST NUCLEO-C542RC开发板

简单介绍ST NUCLEO-C542RC开发板;举例使用配置工具STM32CubeMX2配置PIN,并生成点亮LED的代码;介绍STLink-V2连接到此开发板;使用VScode导入生成的代码,使用STM32CubeIDE for VSCode插件完成编译代码、烧写ELF文件到板子以及介绍调试方法。从S…

2026/10/19 7:22:14 阅读更多 →
《Spring Boot 3:高级与架构设计》第 6 章 Spring 拥抱 AI AI 与大语言模型 阅读笔记

《Spring Boot 3:高级与架构设计》第 6 章 Spring 拥抱 AI AI 与大语言模型 阅读笔记

《Spring Boot 3:高级与架构设计》第 6 章 Spring 拥抱 AI AI 与大语言模型 阅读笔记 本章主要内容: AI与大语言模型介绍;Spring AI 项目的整合与使用;使用多轮对话;多模态 AI 调用;RAG 构建知识库&#xf…

2026/10/19 7:22:14 阅读更多 →
GoFramePro实战:从零搭建高工程化Go业务后端接口

GoFramePro实战:从零搭建高工程化Go业务后端接口

最近在做一个内部管理平台的后端,接口表列出来四十多个。如果按老思路用原生HTTP handler一个个写,参数校验、错误返回、日志记录这些重复工作能把人磨到怀疑人生。所以我重新把Go语言生态里的框架认真扫了一遍,最后把主力压在GoFramePro这套…

2026/10/19 7:21:14 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →