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

目录

注释:

注释分为两种:

注释的作用:

注释的使用原则:

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

 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.mfbz.cn/a/566732.html

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

相关文章

介绍TCP三次握手、传输数据、四次挥手标志为确认号变化规律

TCP协议的三次握手是一个关键过程&#xff0c;用于在客户端和服务器之间建立可靠的连接。以下是三次握手的详细过程&#xff0c;包括标志位、序列号以及ACK的变化规律&#xff1a; 第一次握手&#xff1a; 客户端&#xff1a; 标志位&#xff1a;SYN1&#xff08;表示请求建立…

什么是定点数?

在实际的工程应用中&#xff0c;往往会进行大量的数学运算。运算时除了会用到整数&#xff0c;很多时候也会用到小数。而我们知道在数字电路底层&#xff0c;只有「高电平1」和「低电平0」的存在&#xff0c;那么仅凭 0和1 该如何表示小数呢&#xff1f; 数字电路中&#xff0…

共享股东模式:实体门店的创新商业模式

大家好&#xff0c;我是微三云周丽&#xff0c;今天给大家分析当下市场比较火爆的商业模式&#xff01; 小编今天跟大伙们分享什么是共享股东模式&#xff1f; 在传统的商业模式中&#xff0c;实体门店通常由单一的老板或少数股东掌控&#xff0c;并且经营模式相对封闭。然而&…

grafana报错This panel requires Angular (deprecated)

1.原因 报错解释&#xff1a; Grafana在更新到7.0版本后&#xff0c;弃用了AngularJS&#xff08;一种用于构建大型Web应用的JavaScript框架&#xff09;。在早期的Grafana版本中&#xff0c;某些面板可能依赖于AngularJS&#xff0c;但这种依赖已经逐步被新的React或Vue面板所…

基于SSM+Vue的护工预约服务小程序和后台管理系统

1、系统演示视频&#xff08;演示视频&#xff09; 2、需要请联系

每日一题 — 二分查找

704. 二分查找 - 力扣&#xff08;LeetCode&#xff09; 朴素二分查找模板&#xff1a; while(.......){//防止溢出int mid left(right - left)/2;if(........){right mid-1;}else if(......){left mid1;}else{return mid;}} 代码&#xff1a; public int search(int[] num…

【Python进阶实战】Flask接口并发实战

【Python进阶实战】Flask接口并发实现 前言Flask阻塞接口接口实现接口阻塞 Flask并发接口接口实现接口并发 服务部署Windows部署Linux部署gunicorn安装gunicorn运行 结语 前言 Python版本&#xff1a;3.12.3 IDE&#xff1a;Pycharm 2024.1 对于Flask接口阻塞问题&#xff0…

沙漠里的气膜场馆,你见过吗?

在茫茫的沙漠之中&#xff0c;一座独特的建筑傲然而立&#xff0c;宛若一朵盛开的奇葩。这并非是传统的砖瓦建筑&#xff0c;也不是典型的钢筋混凝土构造&#xff0c;而是一座气膜场馆&#xff0c;以其轻盈的身姿和独特的设计&#xff0c;在沙漠中展现出了无与伦比的魅力。 这座…

java锁常识

AQS框架 AQS&#xff08;AbstractQueuedSynchronizer&#xff09;是 Java 中用于构建锁和同步器的基础框架。它提供了一种实现同步器的方式&#xff0c;使得开发者可以基于 AQS 构建各种类型的同步工具&#xff0c;如独占锁、共享锁、信号量等。 AQS 主要基于 FIFO 队列&…

Qt 集成OSG

Qt 你好 | 专注于Qt的技术分享平台 一&#xff0c;新建一个 QOsgWidget 类&#xff0c;继承自osgQOpenGLWidget #ifndef QOSGWIDGET_H #define QOSGWIDGET_H#include <QObject> #include <osgViewer/Viewer> #include <osgQOpenGL/osgQOpenGLWidget> class…

一种基于PET和ICT的双功能荧光探针,用于同时识别活细胞中的Cys和H2S

文章解读 文章设计了一种易于合成的双功能荧光探针NJB&#xff0c;通过明显的颜色和荧光变化用于对Cys和H2S的双位点响应&#xff0c;。在检测过程中&#xff0c;发生了光诱导电子转移 (photoinduced electron transfer, PET)和分子内电荷转移 (ICT)过程&#xff0c;NJB的颜色和…

ffmpeg支持MP3编码的方法

目录 现象 解决办法 如果有编译包没有链接上的情况 现象 解决办法 在ffmpeg安装包目录下 &#xff0c;通过./configure --list-encoders 和 ./configure --list-decoders 命令可以看到&#xff0c;ffmpeg只支持mp3解码&#xff0c;但是不支持mp3编码。 上网查寻后发现&…

SpringBoot之@Conditional衍生条件装配详解

文章目录 ☃️前言☃️简介☃️示例❄️❄️ConditionalOnProperty❄️❄️ConditionalOnClass❄️❄️ConditionalOnBean❄️❄️自定义条件 ☃️SpringBoot源码中使用☃️总结 欢迎来到 请回答1024 的博客 &#x1f353;&#x1f353;&#x1f353;欢迎来到 请回答1024的博客…

【圆桌论坛】个人作为嘉宾参与问答环节的总结,Create 2024百度AI开发者大会之AI智能体开发与应用论坛

目录 ⭐前言⭐讨论话题✨本质和价值✨端侧部署✨应用商业模式✨商业模式 ⭐主题总结⭐有趣分享 ⭐前言 首先&#xff0c;非常荣幸和开心作为开发者和创业者代表参加百度Create AI大会分论坛圆桌论坛的问答环节。 在分论坛活动开始前&#xff0c;参加了文心智能体平台&#xff…

JS 删除数组元素( 5种方法 )

No.内容链接1Openlayers 【入门教程】 - 【源代码示例300】 2Leaflet 【入门教程】 - 【源代码图文示例 150】 3Cesium 【入门教程】 - 【源代码图文示例200】 4MapboxGL【入门教程】 - 【源代码图文示例150】 5前端就业宝典 【面试题详细答案 1000】 文章目录 一、五种…

vue3中web前端JS动画案例(四)侧边栏横幅效果-右下角广告-淘宝案例

myJsAnimation.js, 这里使用了上次封装的动画方法&#xff0c;并进行了改造 /*** 动画的函数* dom 当前对象* JSON 传入元素对象的属性 {"width": 300, "opacity": 50}* * -------------------- 多物体运动&#xff0c;同时运动 ---传入JSON-------------*…

爬虫零基础学习,第一天,安装环境,requests库常用命令的讲解

Python爬虫 爬虫学习思路 URL内容获取,requests的基本常用语法 import requests # 先向目标网站发送请求 url = "http://www.baidu.com" r

【TensorFlow深度学习】人工智能绪论与深度学习前瞻

人工智能绪论与深度学习前瞻 【引言】人工智能的起源与发展机器学习与深度学习的关系深度学习的兴衰与复兴深度学习的特点与前瞻 【引言】 在信息技术蓬勃发展的今天&#xff0c;人工智能已成为推动科技革新和社会进步的关键驱动力。从最初的计算机辅助人类处理信息&#xff0…

UDP文件传输工具之UDP传输的优点和缺点

在当今快节奏的网络通信时代&#xff0c;UDP以其独特的优势&#xff0c;在众多应用场景中扮演着关键角色。本文将深入探讨UDP的优缺点及其应用场景&#xff0c;并重点介绍镭速软件如何通过技术创新&#xff0c;显著提升UDP传输的效率和可靠性。 UDP传输的优点 UDP的显著优势在…

从奇门WMS-A到金蝶云星空通过接口配置打通数据

从奇门WMS-A到金蝶云星空通过接口配置打通数据 接入系统&#xff1a;奇门WMS-A 用于菜鸟的仓库&#xff08;使用其他支持奇门的仓库同理&#xff09;&#xff0c;故而希望能和仓库的wms系统打通&#xff0c;这样我们采购收货&#xff0c;采购入库&#xff0c;销售出库&#xff…
最新文章