python基础知识一(注释、变量以及类型、类型转换)

news2024/9/23 9:32:14

目录

注释:

注释分为两种:

注释的作用:

注释的使用原则:

编写一段代码,对比一下有无注释的区别,以冒泡排序为例

 1. 无注释版: 感官上是不是有点不清晰?

2. 有注释版: 感官上是不是清晰了很多?

变量以及类型: 

变量:

1. 变量的作用

2. 变量的命名规则

3. 变量的赋值

4. 变量的类型

5. 变量的类型转换

示例代码:

变量的命名规则:

变量的赋值:

变量的类型:

变量的类型转换:

类型转换:

数据类型:

分类:

 数据类型转换:

作用:

常用的数据类型转换:

代码实现:


注释:

在程序代码中对程序代码进行解释说明的文字。

注释分为两种:

  1. 单行注释   快捷键  ctrl + /   表示方式:#
  2. 多行注释   选中想要注释的文本 按住shift键不放 连按三次引号键即可  表示方式: 英语形态的三对引号。

注释的作用:

注释不是程序,不能被执行,只是对代码进行解释说明,让别人可以看懂代码的作用,能够大大增强程序的可读性。

注释的使用原则:

  1. 注释要简洁明了,不能啰嗦
  2. 注释要与代码对应,不能乱写
  3. 注释要及时,不能过时
  4. 注释要规范,不能随意

编写一段代码,对比一下有无注释的区别,以冒泡排序为例

 1. 无注释版: 感官上是不是有点不清晰?

array = [23, 12, 5, 8, 32, 14, 1, 10, 9, 11]  # 待排序数组
# 打印array
print("原数组:", array)


# 1. 无注释版: 感官上是不是有点不清晰?
def bubble_sort(arr):
    for i in range(len(arr)):
        for j in range(len(arr) - 1 - i):
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
    return arr

2. 有注释版: 感官上是不是清晰了很多?

# 2. 有注释版: 感官上是不是清晰了很多?
def bubble_sort_with_comment(arr):
    """
        1. 冒泡排序
        2. 时间复杂度:O(n^2)
        3. 空间复杂度:O(1)
    """
    # 1. 遍历数组
    for i in range(len(arr)):
        # 2. 遍历数组中的每一对元素
        for j in range(len(arr) - 1 - i):
            # 3. 如果前一个元素大于后一个元素,则交换
            if arr[j] > arr[j + 1]:
                # 4. 交换
                arr[j], arr[j + 1] = arr[j + 1], arr[j]

    # 5. 返回排序后的数组
    return arr

打印语句:

# 打印排序后的array
print("无注释版排序后:", bubble_sort(array))
print("有注释版排序后:", bubble_sort_with_comment(array))

打印结果:

变量以及类型: 

变量:

1. 变量的作用

- 变量是一个容器,用来存储数据的容器
- 变量的作用是为了方便我们对数据进行存储和管理

2. 变量的命名规则

- 变量名只能由字母、数字、下划线组成
- 变量名不能以数字开头
- 变量名不能使用Python中的关键字
- 变量名是区分大小写的
- 变量名是不能重复的

3. 变量的赋值

- 变量的赋值是通过等号=来实现的
- 变量的赋值是不能省略的

4. 变量的类型

- 变量的类型是指变量存储的数据类型
- 变量的类型是不可变的,一旦变量被赋值,就不能改变变量的类型

5. 变量的类型转换

- 变量的类型转换是通过内置函数int()、float()、str()来实现的

示例代码:

变量的命名规则:
# 1.变量的命名规则
# 变量名只能由字母、数字、下划线组成
# *num = 10  # 错误
# 变量名不能以数字开头
# 1num = 10  # 错误
# 变量名不能使用Python中的关键字
# if = 10  # 错误 if是python中的关键字
# 变量名是不能重复的
# num1 = 10
# num1 = 20  # 错误 已重新声明上文定义的无用法的 'num1'
# 变量名是区分大小写的
# num2 = 10
# NUM2 = 20  # 不同的变量
变量的赋值:
# 2.变量的赋值
# 变量的赋值是通过等号=来实现的
# 等号左边是变量名 等号右边是变量的值
num3 = 10
# 解释
# num3 是变量名
# 10 是变量的值
# 变量的赋值是不能省略的
num4 = 10
# num5 =  # 错误 变量的赋值是不能省略的
变量的类型:
# 3. 变量的类型
# 简单举例
# 1. 整数类型
num_1 = 10
# num_1 = 10.0  # 错误 不能将浮点数赋值给整数类型的变量
# 由此可见, 变量的类型是不可变的,一旦变量被赋值,就不能改变变量的类型
# 2. 浮点数类型
num_2 = 10.0
# 3. 字符串类型
num_3 = "10"
# 4. 布尔类型
flag = True
# 5. 列表类型
list_1 = [1, 2, 3]
# 6. 元组类型
tuple_1 = (1, 2, 3)
# 7. 字典类型
dict_1 = {"name": "张三", "age": 18}
# 8. 集合类型
set_1 = {1, 2, 3}

# 打印变量的类型
# 由此可知,在python中不需要写类型,系统会根据值自动推导出类型
print("num_1的类型是:", type(num_1))  # <class 'int'>
print("num_2的类型是:", type(num_2))  # <class 'float'>
print("num_3的类型是: ", type(num_3))  # <class 'str'>
print("flag的类型是: ", type(flag))  # <class 'bool'>
print("list_1的类型是: ", type(list_1))  # <class 'list'>
print("tuple_1的类型是: ", type(tuple_1))  # <class 'tuple'>
print("dict_1的类型是: ", type(dict_1))  # <class 'dict'>
print("set_1的类型是: ", type(set_1))  # <class 'set'>
变量的类型转换:
# 4. 变量的类型转换 简单举例
# 变量的类型转换是通过内置函数int()、float()、str()来实现的
# 输入两个数相加
num_4 = int(input("请输入第一个数:"))
num_5 = int(input("请输入第二个数:"))
# 打印类型
print("num_4的类型是: ", type(num_4))
print("num_5的类型是: ", type(num_5))
# 打印两个数相加的结果
print("结果: ", num_4 + num_5)

类型转换:

在上面简单的提了一下类型转换,在这详细介绍一下。

说类型转换之前先说一说数据类型(同变量类型)。

数据类型:

分类:
数据类型:
    1. 数字类型
        - 整数类型:int
        - 长整型: long
        - 浮点数类型:float
        - 复数类型:complex
        - 布尔类型:bool
    2. 非数字类型
        - 字符串类型:str
        - 列表类型:list
        - 元组类型:tuple
        - 字典类型:dict
        - 集合类型:set
    3. 特殊类型:None(空类型:NoneType)

查看数据类型(变量类型):

  • 可以通过type()函数获取变量类型

 数据类型转换:

作用:

数据类型转换是将一个数据类型的值转换为另一个数据类型的值的过程。在编程中,由于不同的数据类型具有不同的存储方式、取值范围和操作规则,因此经常需要将一个数据类型的值转换为另一个数据类型,以满足不同的计算或处理需求。

常用的数据类型转换:
数据类型转换:
函数                             说明
int(x [,base ])                    将x转换为一个整数
float(x )                      将x转换为一个浮点数
complex(real [,imag ])         创建一个复数,real为实部,imag为虚部
str(x )                            将对象 x 转换为字符串
repr(x )                       将对象 x 转换为表达式字符串
eval(str )                     用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s )                      将序列 s 转换为一个元组
list(s )                       将序列 s 转换为一个列表
chr(x )                            将一个整数转换为一个Unicode字符
ord(x )                            将一个字符转换为它的ASCII整数值
hex(x )                            将一个整数转换为一个十六进制字符串
oct(x )                            将一个整数转换为一个八进制字符串
bin(x )                            将一个整数转换为一个二进制字符串
代码实现:
# 1. 数字类型
# 1.1 整数类型
print(type(10))  # class 'int'
# 1.2 长整型
# print(type(10L))  # 在Python 2中,这会输出 <type 'long'>
print(type(10000000000000000000000000000000000000000000000000))  # 在Python 3中,这会输出 <class 'int'>
# 1.3 浮点数类型
print(type(10.0))  # class 'float'
# 1.4 复数类型
print(type(10j))  # class 'complex'
# 1.5 布尔类型
print(type(True))  # class 'bool'

# 2. 非数字类型
# 2.1 字符串类型
print(type('abc'))  # class 'str'
# 2.2 列表类型
print(type([1, 2, 3]))  # class 'list'
# 2.3 元组类型
print(type((1, 2, 3)))  # class 'tuple'
# 2.4 字典类型
print(type({'name': '张三', 'age': 18}))  # class 'dict'
# 2.5 集合类型
print(type({1, 2, 3}))  # class 'set'

# 3. 特殊类型
# 3.1 None类型
print(type(None))  # class 'NoneType'

# 4. 数据类型转换
# 4.1 整数类型转换
print(int(10.0))  # 10
# 4.2 浮点数类型转换
print(float(10))  # 10.0
# 4.3 复数类型转换
print(complex(10))  # (10+0j)  # 实部为10,虚部为0
print(complex(10, 20))  # (10+20j)  # 实部为10,虚部为20
# 4.4 字符串类型转换
print(str(10))  # '10'
print(str(10.0))  # '10.0'
print(str(10j))  # '10j'
print(str(True))  # 'True'
print(str([1, 2, 3]))  # '[1, 2, 3]'
print(str((1, 2, 3)))  # '(1, 2, 3)'
print(str({'name': '张三', 'age': 18}))  # "{'name': '张三', 'age': 18}"
print(str({1, 2, 3}))  # '{1, 2, 3}'
# 4.5 列表类型转换
print(list('abc'))  # ['a', 'b', 'c']
print(list((1, 2, 3)))  # [1, 2, 3]
print(list({1, 2, 3}))  # [1, 2, 3]
# 4.6 元组类型转换
print(tuple('abc'))  # ('a', 'b', 'c')
print(tuple([1, 2, 3]))  # (1, 2, 3)
print(tuple({1, 2, 3}))  # (1, 2, 3)
# 4.7 字典类型转换
print(dict([('name', '张三'), ('age', 18)]))  # {'name': '张三', 'age': 18}
print(dict({'name': '张三', 'age': 18}))  # {'name': '张三', 'age': 18}
# 4.8 集合类型转换
print(set([1, 2, 3]))  # {1, 2, 3}
print(set((1, 2, 3)))  # {1, 2, 3}
print(set({1, 2, 3}))  # {1, 2, 3}
print(set('abc'))  # {'c', 'b', 'a'}

 

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

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

相关文章

绝地求生:【数据流】工资杯决赛,天霸161分夺得冠军,Aixleft战神37杀

数据制作&#xff0c;整理不易&#xff0c;求支持&#xff0c;点赞&#xff0c;收藏&#xff0c;充电哟&#xff01; 如有错误&#xff0c;请在评论区指出&#xff0c;感谢各位~ 积分&#xff1a; 战队数据&#xff1a; 排名前3&#xff1a;Tian(161) / NH(145) / PeRo(137) …

linux入门到精通-第十一章-进程间通信(无名管道)

目录 参考概念**进程通信的目的&#xff1a;**Linux 操作系统支持的主要进程间通信的通信机制: 无名管道概述pipe函数建立无名管道父子进程使用无名管道通信 管道读写特点设置非阻塞的方法查看管道缓冲区命令查看管道缓冲区函数 参考 视频教程 概念 进程是一个独立的资源分配…

Oracle进阶(2)——物化视图案例延伸以及序列、同义词

一、物化视图 物化视图&#xff08;Materialized View&#xff09;是 Oracle 数据库中的一个对象&#xff0c;它是一个预先计算和存储的查询结果集&#xff0c;类似于视图&#xff0c;但与视图不同的是&#xff0c;物化视图会将查询结果保存在物理存储中&#xff0c;而不是动态…

web前端学习笔记1

前端学习笔记 1. 走进HTML 1.1 什么是HTML 超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。您可以使用 HTML 来建立自己的 WEB 站点,HTML 运行在浏览器上,由浏览器来解析。HTML文档的后缀名 .html.htm以上两种后缀名没有区别…

给sample_gpt加上,路的选择

灵感 鲁迅说世界上本没有路走的人多了便有了路 如何将灵感转为数学表达 首先假设a到b点有3条路吧&#xff0c;假设你只能选择一条&#xff0c;那意思就是你在训练的时候&#xff0c;只要这条路的值增大别人就会减少。 那这个思思不就是&#xff0c;3条路的值加在一起有个约束…

VMP加壳工具最新 VMProtect Ultimate v3.8.4 Build1754

网盘下载 VMProtect 软件保护功能 支持的文件和格式 VMProtect 支持32位和64位可执行文件&#xff0c;动态加载库和驱动程序。这包括屏保、Active-X 组件、BPL 库和其他 PE 格式的文件。受保护的文件基本上可在任何版本的 Windows 系统上运行&#xff0c;甚至是较早的 Windows …

仿真数据和实测数据的时频变换

目录 1.仿真数据2.实测数据3.地震信号数据4.语音数据 1.仿真数据 2.实测数据 3.地震信号数据 4.语音数据

springboot整合mybatis-puls登陆注册

目录 创建springboot项目 目录结构&#xff1a; 启动类 测试类 idea建表 pom文件 编写yml文件 qq邮箱设置 登陆注册代码 编写持久层(Dao) 注册代码 业务层 业务实现类 mapper 控制层 前端代码 注册页面 邮件正文&#xff1a; 登录代码 控制层 业务层&#…

力扣HOT100 - 101. 对称二叉树

解题思路&#xff1a; class Solution {public boolean isSymmetric(TreeNode root) {if(root null) return true;return recur(root.left, root.right);}boolean recur(TreeNode L, TreeNode R) {if (L null && R null) return true;if (L null || R null || L.…

【数学】深度学习中的概率基础知识记录

基于 Deep Learning (2017, MIT) 书总结了必要的概率知识 原blog 以及用到的Ipython notebook 文章目录 1 概述2 知识2.1 离散变量和概率质量函数&#xff08;PMF&#xff09;2.2 连续变量和概率密度函数&#xff08;PDF&#xff09;2.3 边缘概率2.4 条件概率2.5 条件概率的链式…

项目实战 | 责任链模式 (下)

案例二&#xff1a;工作流&#xff0c;费用报销审核流程 同事小贾最近刚出差回来&#xff0c;她迫不及待的就提交了费用报销的流程。根据金额不同&#xff0c;分为以下几种审核流程。报销金额低于1000元&#xff0c;三级部门管理者审批即可&#xff0c;1000到5000元除了三级部…

Docker 的基本管理

一. 云的相关知识 1. 关于云 云端服务器都有哪些提供商&#xff1a; 国内&#xff1a; 阿里云&#xff08;Alibaba Cloud&#xff09;&#xff1a; 提供ECS&#xff08;Elastic Compute Service&#xff09;弹性计算服务&#xff0c;包括通用型、计算型、内存型等多种实例…

go的编译以及运行时环境

开篇 很多语言都有自己的运行时环境&#xff0c;go自然也不例外&#xff0c;那么今天我们就来讲讲go语言的运行时环境&#xff01; 不同语言的运行时环境对比 我们都知道Java的运行时环境是jvm &#xff0c;javascript的运行时环境是浏览器内核 Java -->jvm javascript…

modelsim波形高度异常,值为X

一、问题 波形高度异常&#xff0c;忽高忽低&#xff0c;正常波形高电平和低电平是统一高度的 timescale 1ns/1nsmodule key_test_tb();//parameter define parameter CLK_PERIOD 20; parameter CNT_MAX 25d25; //仅用于仿真,对应 500nsreg sys_clk; //周期 20ns reg d; wir…

AJAX——Promise-链式调用

1.Promise链式调用 概念&#xff1a;依靠then()方法会返回一个新生成的Promise对象特性&#xff0c;继续串联下一环任务&#xff0c;知道结束 细节&#xff1a;then()回调函数中的返回值&#xff0c;会影响新生成的Promise对象最终状态和结果 好处&#xff1a;通过链式调用&…

基于 Spring Boot 博客系统开发(二)

基于 Spring Boot 博客系统开发&#xff08;二&#xff09; 本系统是简易的个人博客系统开发&#xff0c;为了更加熟练地掌握SprIng Boot 框架及相关技术的使用。&#x1f33f;&#x1f33f;&#x1f33f; 基于 Spring Boot 博客系统开发&#xff08;一&#xff09;&#x1f4…

JavaSE-14笔记【反射机制(+2024新)】

文章目录 1.反射机制概述2.获取Class的四种方式3.通过反射机制实例化对象*4.反射机制结合配置文件灵活实例化对象*5.java.lang.reflect.Field5.1反编译类中的所有字段/属性5.2 通过反射机制给属性赋值* 6.java.lang.reflect.Method6.1反编译类中的所有方法6.2 通过反射机制调用…

实验4 数字频率计

实验目的&#xff1a; 1、使用铆孔U7输出一个脉冲&#xff0c;频率不定。 2、使用铆孔V7测量脉冲频率&#xff0c;并在数码管上显示。 实验内容及步骤&#xff1a; 设计原理 测量频率的方法有很多&#xff0c;按照其工作原理分为无源测量法、比较法、示波器法和计数法等。…

【RT-Thread应用笔记】RA8D1-VisionBoard上的RW007实践——WiFi延迟和带宽测试

【RT-Thread应用笔记】RA8D1-VisionBoard上的RW007实践——WiFi延迟和带宽测试 一、准备环境1.1 安装RT-Thread Studio1.2 安装开发板支持包1.3 安装调试器支持包1.4 安装工具链支持包 二、创建项目2.1 创建RT-Thread项目 三、编译下载3.1 编译代码3.2 下载程序 四、WiFi测试4.…

每日一题---移除链表元素

文章目录 前言1.题目2.分析思路3.参考代码 前言 Leetcode–-移除链表元素 1.题目 2.分析思路 首先要创建一个新的链表&#xff0c;在定义三个指针&#xff0c;newHead&#xff0c;newTail和pcur&#xff0c;分别代表新链表头&#xff0c;新链表尾以及用于遍历原链表。 其次是…