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

从零开始学Python(Ⅰ)基本变量与数据类型

🥳🥳Welcome Huihui's Code World ! !🥳🥳

接下来看看由辉辉所写的关于Python的相关操作吧

目录

🥳🥳Welcome Huihui's Code World ! !🥳🥳

一.关于Python的基本知识(变量 ,注释)

二.数据类型

1.强类型&弱类型

2.静态类型&动态类型

3.基本数据类型

3.1字符串 str

3.2整数 int

3.3 浮点数 float

3.4布尔 bool

3.5 列表 list

3.6元组 tuple

3.7集合 set

3.8 字典 dict

 三.使用Python完成一个简单的学生管理系统(控制台版本) 

1.效果演示

2.代码展示 


一.关于Python的基本知识(变量 ,注释)

1.变量名规则1.1变量名只能包含字母、数字和下划线,不能够以数字开头1.2变量名不能包含空格,但可使用下划线来分隔其中的单词(一般也不用驼峰式命名,通常也是           使用下划线)1.3不要将Python关键字和函数名用作变量名
2.注释2.1单行注释:#注释 
​​​​2.2.1多行注释:'''注释'''
2.2.2多行注释:"""注释"""

二.数据类型

1.强类型&弱类型

  • 在强类型中,不管在编译时还是运行时,一旦某个类型赋值给某个变量,它会持有这个类型,并且 不能同其他类型在计算某个表达式时混合计算
    • Java便是一种强类型的语言,即一旦赋值了一种类型给一个变量,那么这个变量的类型就不能够再被重新赋予另外一种类型
    •  
  • 在弱类型中,它是很容易与其他类型混合计算的
    • Python便是这种弱类型的语言,即一个类型赋值给一个变量后,这个变量不固定持有赋值的类型,后期若是再赋值一个其他类型给与这个变量,那么这个变量的类型便会改变

2.静态类型&动态类型

  • 在静态类型语言(statically typed languages)中,类型检查发生在编译阶段(compile time),静态类型(static): 所有的变量类型必须被显示地声明,因为这些信息在编译阶段就被需要
    • Java便是静态类型的语言,所有变量的类型必须在赋值的时候便标明变量类型,且不同类型的数据不能够做运算
      •  
  • 在动态类型语言(dynamically typed languages)中,类型检查发生在运行阶段(run time) ,动态(Dynamic): 显示声明不被要求,因为类型赋值发生在运行阶段
    • JavaScript便是动态语言,其中的变量不需要声明数据类型(数据类型的赋予都是使用关键字‘var’),即变量所拥有的值是什么类型,那么这个变量便是什么类型

那么这里也放置一个图解,我们通过图片的方式能够更加直观的看到各种编程语言的类型 ,那么我们也可以了解到python是一门动态的(dynamic)且强类型(strong)语言

 3.基本数据类型

3.1字符串 str

          用引号括起的都是字符串,其中的引号可以是单引号, 也可以是双引号

name="rose"
print(name)#rose
print(name,end=" ")#这里的end就是指两个字符串拼接,前面一个字符串以什么结尾的意思
name="jack"
print(name)#rose jack

 不加end输出的话便是单行输出数据

要注意的是数字类型的数据不能够与字符串类型的数据进行拼接➡会出现错误(这个错误的意思就是不支持整数类型与字符串类型拼接

3.2整数 int

# 基本的运算
count = 7
print(count + 1)
print(count - 1)
print(count * 2)
print(count / 2)
#Python使用两个乘号表示乘方运算
print(count ** 2)

python中的‘/’与数学中的除法算出来的结果是一致的

3.3 浮点数 float

a=decimal.Decimal("0.1")
b=decimal.Decimal("0.2")
result=a+b
print(result)

       因为有时候我们在计算小数的时候,它后面的小数位不确定,那么这个时候我们便可以         使用decimal来处理数据

 

3.4布尔 bool

True False
>= <= == and or
0 None “ ” [ ]都是False

print(0 and 5)#0
print(1 and 0)#0
print(1 or 0)#1
print(5 and 1)#1

 bool中有一个短路性质,我们可以运用这个性质解决一些棘手的问题,那么我们可以通过一个小案例来看一下到底什么是短路性质

#题目需求:假设需要检查一个数字是否大于0并且不是None,然后再进行相应的操作
def check_condition(value):result = value and "满足条件" or "不满足条件"print(result)check_condition(5 > 0)      # 输出 "满足条件"
check_condition(-3 > 0)     # 输出 "不满足条件"
check_condition(None)       # 输出 "不满足条件"

 输出结果

 

3.5 列表 list

lst = ['a', 'b', 'c', 'd']
print(lst[0])#a
print(lst[-1])#d
# 增
# insert
lst.insert(3,"e")#前面的参数表示的是需要插入的下标,后面的参数是指插的数据
print(lst)#['a', 'b', 'c', 'e', 'd']
# append
lst.append("f")
print(lst)#['a', 'b', 'c', 'e', 'd', 'f']# 删
# pop
lst.pop(3)
print(lst)#['a', 'b', 'c', 'd', 'f']\
# remove
lst.remove("d")
print(lst)#['a', 'b', 'c', 'f']# 对列表进行永久性排序 sort
lst.sort()
print(lst)#['a', 'b', 'c', 'f']
lst.sort(reverse=True)
print(lst)#['f', 'c', 'b', 'a']# 对列表进行临时性排序 sorted
sorted(lst)
print(lst)#['a', 'b', 'c', 'f']
sorted(lst)# 确定列表的长度 len
print(len(lst))#4# 切片功能
# start: 起始下标 stop: 停止下标 step: 步长
# start和stop的正值代表列表下标,负值代表列表从左往右数起,倒数第几个数据。
# 方向由step确定,step为正时,从左往右切片,step为负时,从右往左切片。
# start和stop的空值分别代表列表的头尾的最后一个数据,至于start和stop空值的时候代表的是列
# 表的头还是尾,由step的正负值决定,即由step确定列表切片的方向后决定
print(lst[0:3:2])#['a', 'c']
print(lst[len(lst)-1:0:-2])#['f', 'b']

3.6元组 tuple

nums = (0, 1, 2)
print(nums)#(0, 1, 2)
a, b, c = nums
print(a,b,c)#0 1 2

3.7集合 set

# 增
#add
myset = {'a', 'b', 'c', 'd'}
print(myset)#{'b', 'd', 'c', 'a'}
myset.add('f')
print(myset)#{'c', 'a', 'd', 'b', 'f'}#删
# remove
myset.remove("a")
print(myset)#{'f', 'b', 'd', 'c'}# in &not in
print(a in myset)#False
print(a not in myset)#True#集合的运算
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
print(a - b)#{1, 2}
print(a | b)#{1, 2, 3, 4, 5, 6}
print(a & b)#{3, 4}
print(a ^ b)#{1, 2, 5, 6}

3.8 字典 dict
 

字典是一系列键—值对。每个键都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典

mydict = {'color': 'red', 'points': 7}
print(mydict)#{'color': 'red', 'points': 7}
print(mydict['color'])#red#增
mydict['name'] = 'wh'
print(mydict)#{'color': 'red', 'points': 7, 'name': 'wh'}#删
del mydict['name']
print(mydict)#{'color': 'red', 'points': 7}

 三.使用Python完成一个简单的学生管理系统(控制台版本) 

1.效果演示

 

2.代码展示 

def create_student():#def用于定义函数sid = input("请输入学生的学号: ")#从用户输入中获取学生学号name = input("请输入学生姓名: ")  # input:获取到用户在控制台输入一些内容,并以字符串的形式返回用户所输入的内容  从用户输入中获取学生姓名age = int(input("请输入学生年龄: "))  # 从用户输入中获取学生年龄student = {"学号":sid,"姓名": name, "年龄": age}  # 创建一个包含学生姓名和年龄的字典(键值对方式)students.append(student)  # 将学生信息字典添加到学生列表中print("成功创建学生信息!")def read_students():print("所有学生信息:")for student in students:print(f"学号:{student['学号']},姓名: {student['姓名']}, 年龄: {student['年龄']}")def update_student():sid = input("请输入要更新的学生学号: ")  # 从用户输入中获取要更新的学生姓名found = False  # 初始化一个变量,用于标记是否找到要更新的学生信息for student in students:if student["学号"] == sid:  # 如果学生姓名与要更新的姓名匹配new_age = int(input("请输入新的年龄: "))  # 从用户输入中获取新的年龄,因为获取的是字符串类型,所以需要转成int➡int(input())student["年龄"] = new_age  # 更新学生信息中的年龄new_name = input("请输入新的学生姓名: ")  # 从用户输入中获取新的年龄,因为获取的是字符串类型,所以需要转成int➡int(input())student["姓名"] = new_name  # 更新学生信息中的年龄print("成功更新学生信息!")found = True  # 标记为找到要更新的学生信息breakif not found:  # 如果没有找到要更新的学生信息print("未找到该学生学号!")def delete_student():sid = input("请输入要删除的学生学号: ")  # 从用户输入中获取要删除的学生姓名found = False  # 初始化一个变量,用于标记是否找到要删除的学生信息for student in students:if student["学号"] == sid:  # 如果学生姓名与要删除的姓名匹配students.remove(student)  # 从学生列表中删除该学生信息print("成功删除学生信息!")found = True  # 标记为找到要删除的学生信息breakif not found:  # 如果没有找到要删除的学生信息print("未找到该学生姓名!")def main():#自定义函数while True:#循环print("\n请选择操作:")print("1. 创建学生信息")print("2. 查看所有学生信息")print("3. 更新学生信息")print("4. 删除学生信息")print("0. 退出")choice = input("请输入操作编号: ")if choice == "1":create_student()elif choice == "2":read_students()elif choice == "3":update_student()elif choice == "4":delete_student()elif choice == "0":print("程序已退出。")breakelse:print("无效的选择,请重新输入。")if __name__ == "__main__":#相当于Java中的main方法main()#调用函数

好啦,今天的分享就到这了,希望能够帮到你呢!😊😊  

相关文章:

从零开始学Python(Ⅰ)基本变量与数据类型

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Python的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.关于Python的基本知识&#xff08;变量…...

SQL ASNI where from group order 顺序 where和having,SQL底层执行原理

SQL语句执行顺序&#xff1a; from–>where–>group by -->having — >select --> order 第一步&#xff1a;from语句&#xff0c;选择要操作的表。 第二步&#xff1a;where语句&#xff0c;在from后的表中设置筛选条件&#xff0c;筛选出符合条件的记录。 …...

Mac M2 Ventura(13.3) 新机 安装Cocoapods

1.执行命令&#xff1a; sudo gem install cocoapods 因为是新机&#xff0c;内置的ruby版本是&#xff08;2.6.0&#xff09;太低&#xff0c;会报错 所以需要安装新的ruby版本 2.如果已经安装了低版本的homebrew&#xff0c;可以先卸载&#xff1a; 卸载&#xff1a; /b…...

Unity 引擎做残影效果——2、屏幕后处理方式

Unity实现残影效果 大家好&#xff0c;我是阿赵。 这里继续介绍Unity里面做残影的方法。之前介绍了BakeMesh的方法做残影&#xff0c;这一期介绍的是用屏幕后处理的方法做残影。 一、原理 之前的BakeMesh方法&#xff0c;是真的生成了很多个网格模型在场景里面。如果用后处理做…...

考研算法38天:反序输出 【字符串的翻转】

题目 题目收获 很简单的一道题&#xff0c;但是还是有收获的&#xff0c;我发现我连scanf的字符串输入都忘记咋用了。。。。。我一开始写的 #include <iostream> #include <cstring> using namespace std;void deserve(string &str){int n str.size();int…...

“深入解析JVM:探秘Java虚拟机的工作原理“

标题&#xff1a;深入解析JVM&#xff1a;探秘Java虚拟机的工作原理 摘要&#xff1a;本文将深入探讨Java虚拟机&#xff08;JVM&#xff09;的工作原理&#xff0c;包括类加载、内存管理、垃圾回收、即时编译等关键概念。通过详细解析JVM的各个组成部分&#xff0c;读者将能够…...

[Flask]SSTI1

根据题目提示&#xff0c;这关应该是基于Python flask的模版注入&#xff0c;进入靶场环境后就是一段字符串&#xff0c;而且没有任何提示&#xff0c;有点难受&#xff0c;主要是没有提示注入点 随机尝试一下咯&#xff0c;首先尝试一下guest&#xff0c;GET传参 但是没有反应…...

Object Map 的相互转换

学生业务对象定义&#xff1a;Student Student student new Student(); student.setId(1L); student.setName("令狐冲") student.setAge(10) 第一种&#xff1a;通过Alibaba Fastjson实现 pom.xml 文件依赖 <dependency><groupId>com.alibaba</g…...

VS+Qt环境下解决中文乱码问题

目录 原因解决方案总结 原因 使用VSQt出现中文乱码的情况一般都是给控件添加中文文本时出现&#xff0c;而控件需要的字符串类型是QString&#xff0c;默认是utf-8。在 Visual Studio 中&#xff0c;源代码文件的默认执行字符集可能是 Windows 默认的 ANSI 字符集&#xff0c;…...

互联网摸鱼日报(2023-08-08)

互联网摸鱼日报(2023-08-08) 36氪新闻 宝洁、欧莱雅、联合利华加大广告预算投入&#xff1a;越萧条&#xff0c;要越营销&#xff1f; 把智能手机的“高端货”装进汽车&#xff0c;厂商的脑洞越来越大了 王一博《热烈》票房破7亿&#xff0c;街舞是一门怎样的生意&#xff1…...

NTT DATA利用相干伊辛机模拟基因组组装和疾病治疗的潜力

​ &#xff08;图片来源&#xff1a;网络&#xff09; 7月20日&#xff0c;日本领先的IT服务提供商和行业咨询公司NTT DATA宣布完成了一个使用量子计算优化基因组组装过程的项目。这是量子计算应用于医疗保健和生命科学行业中的一个里程碑。 本项目通过比较量子和非量子计算方…...

哈希表语法(转载自用)

哈希表 哈希表是一种很常见的数据结构,我现在平时刷算法题一般使用C++刷(不要问我为什么,懂的都懂)。C++关于哈希表有很多数据结构,平时使用的比较多的有unordered_set 跟 unordered_map。其中unordered_map 存储的是键值对。 其实我们在某些情况下可以使用数组构建哈希表…...

打破界限,图文档与物料清单完美互联

在现代企业的产品开发过程中&#xff0c;图文档和物料清单是不可或缺的重要信息。然而&#xff0c;由于数据来源多样、格式繁杂&#xff0c;图文档与物料清单之间的信息传递往往存在障碍。而PDM系统&#xff08;Product Data Management&#xff0c;产品数据管理&#xff09;的…...

【电机绘图】:插补算法(一)—直线插补—逐点比较法

今日介绍学习一种使用电机作画、绘图、加工零件时需要使用的算法 &#xff1a; 插补算法 本文提供直线插补的概念基础&#xff0c;基本思路分析&#xff0c;C语言实现等&#xff0c;代码会直接贴出&#xff01; 插补算法是指在数值计算或数据处理中&#xff0c;根据已有的数据…...

16-2_Qt 5.9 C++开发指南_使用样式表Qss自定义界面

进行本篇介绍学习前&#xff0c;请先参考链接01_1_Qt工程实践_Qt样式表Qss&#xff0c;后再结合本篇进行融合学习如何使用样式表定义界面。 文章目录 1. Qt样式表2. Qt样式表句法2.1 一般句法格式2.2 选择器 (selector)2.3 子控件&#xff08;sub-controls&#xff09;2.4 伪状…...

chatgpt openai API报错openai.error.APIConnectionError

openai.error.APIConnectionError: Error communicating with OpenAI: 报错信息无用方案问题查看urllib3版本方法 可行方案法1法2&#xff1a;自己找包安装 报错信息 raise error.APIConnectionError( openai.error.APIConnectionError: Error communicating with OpenAI: HTT…...

【果树农药喷洒机器人】Part1:研究现状分析以及技术路线介绍

本专栏介绍&#xff1a;付费专栏&#xff0c;持续更新机器人实战项目&#xff0c;欢迎各位订阅关注。 关注我&#xff0c;带你了解更多关于机器人、嵌入式、人工智能等方面的优质文章&#xff01; 文章目录 一、项目背景二、国内外研究现状2.1 国内研究现状2.2 国外研究现状 三…...

QT-QTablewidget 设置选中某一行

要在 QTableWidget 中设置选中的行&#xff0c;可以使用 setCurrentItem() 函数来设置当前的 QTableWidgetItem。你可以通过调用 QTableWidget 的 item() 函数获得指定行和列的 QTableWidgetItem&#xff0c;然后通过将其传递给 setCurrentItem() 函数来设置选中的行。 下面是…...

[shell] 删除指定文件状态变更之前的文件及文件夹示例

参考文件 Linux查找某个指定时间要求的文件 脚本示例 #!/bin/bash# 删除指定时间之前文件&#xff0c;单位&#xff1a;分钟 ago75# 监控路径,必须使用使用绝对路径&#xff0c;防止意外删除重要文件 monitoring_path"/home/dev/test/test" # 使用find命令查找75分…...

代码中 isEmpty 和 isBlank 的区别

isEmpty系列 StringUtils.isEmpty() 是否为空. 可以看到 " " 空格是会绕过这种空判断,因为是一个空格,并不是严格的空值,会导致 isEmpty(" ")false tringUtils.isEmpty(null) true StringUtils.isEmpty("") true StringUtils.isEmpty(" …...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

【堆垛策略】设计方法

堆垛策略的设计是积木堆叠系统的核心&#xff0c;直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法&#xff0c;涵盖基础规则、优化算法和容错机制&#xff1a; 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则&#xff1a; 大尺寸/重量积木在下&#xf…...

五子棋测试用例

一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏&#xff0c;有着深厚的文化底蕴。通过将五子棋制作成网页游戏&#xff0c;可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家&#xff0c;都可以通过网页五子棋感受到东方棋类…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能

指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...

【实施指南】Android客户端HTTPS双向认证实施指南

&#x1f510; 一、所需准备材料 证书文件&#xff08;6类核心文件&#xff09; 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...

内窥镜检查中基于提示的息肉分割|文献速递-深度学习医疗AI最新文献

Title 题目 Prompt-based polyp segmentation during endoscopy 内窥镜检查中基于提示的息肉分割 01 文献速递介绍 以下是对这段英文内容的中文翻译&#xff1a; ### 胃肠道癌症的发病率呈上升趋势&#xff0c;且有年轻化倾向&#xff08;Bray等人&#xff0c;2018&#x…...