Python青少年简明教程:基础知识

news2024/9/21 12:35:09

Python青少年简明教程:基础知识

Python是大小写敏感的语言。编程语言中的“大小写敏感”意味着该语言在识别标识符、关键字或者其他语法元素时,会区分字母的大小写。在这种语言中,大写字母和小写字母被视为不同的字符,因此,同一个词或标识符的大写形式和小写形式将代表不同的含义或者是完全不同的变量。例如在大小写敏感的编程语言如C、C++、Java、JavaScript和Python中,变量myVariable和myvariable是两个完全不同的变量。

缩进

在 Python 中,缩进是一个重要的语法规则,用于表示代码块的结构。缩进不仅用于格式化代码,还决定了代码的逻辑层次。例如:

for i in range(5):
    print(i)  # 这个语句是循环体的一部分
print("Done")  # 这个语句在循环体外

Python 官方推荐使用空格进行缩进。一个缩进级别通常是 4 个空格(这是PEP 8推荐的标准)。

Python缩进规则

和其它程序设计语言(如 Java、C 语言)采用大括号 "{}" 分隔代码块不同,Python 采用代码缩进和冒号 (:) 来区分代码块之间的层次。在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。注意,Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格),但不推荐混用空格和制表符。

Python 代码第一行语句必须顶到最左边,不能有空格。当缩进不一致时,Python会抛出这个错误IndentationError

特殊情况:

长行的换行,如果一行太长需要换行,可以使用圆括号、方括号或花括号包围,Python会忽略这些括号内的换行。如:

long_list = [
    "item1",
    "item2",
    "item3"
]

long_function_call(
    arg1,
    arg2,
    arg3
)

注释

注释用于向代码添加说明,以使其更易于理解。有时(调试代码时)会使用注释来暂时禁用一段代码。

使用#符号可以在行内添加单行注释。这种注释从#开始直到行末。

# 这是一个单行注释
print("Hello, world!")  # 这行代码打印 "Hello, world!"

Python没有正式的多行注释语法,但可以使用多个单行注释,或者使用三重引号(''' 或 """)来创建多行字符串,这也可以用作注释。

a.使用多个单行注释,例如:

# 求1到10的累加和  
# 内置函数range(1, 11)用于生成一个从 1 开始到 10 结束的整数序列。  
# 注意,包含1但不包含11。  
sum = 0  
for i in range(1, 11):  
    sum += i  # 累加计算  
print(sum)  # 打印结果:55

b.使用三重引号,例如:

'''  
求1到10的累加和  
内置函数range(1, 11)用于生成一个从 1 开始到 10 结束的整数序列。  
注意,包含1但不包含11。  
'''  
sum = 0  
for i in range(1, 11):  
    sum += i  # 累加计算  
print(sum)  # 打印结果:55

 注意,使用三重引号实际上会创建一个字符串对象,虽然它未被赋值给任何变量,所以通常用于文档字符串(docstrings)和注释。

如果三重引号用放在函数、类或模块的开头,Python 会把它们当作文档字符串(docstring),这是一种特别的多行注释形式,用于生成文档,可以通过 __doc__ 属性 或 help() 函数查看。

Python 的保留字/关键字

保留字也称为关键字。保留字是 Python 语言中用于特定目的的单词,不能用作变量名、函数名或任何其他标识符名称。Python 的保留字包括:

False   class    is       return

None    continue lambda   try

True    def      nonlocal while

and     del      not      with

as      elif     or       yield

assert  else     pass

break   except   raise

for     if       import   in

from    global

关键字可以执行如下命令进行查看:

import keyword

print(keyword.kwlist)

Python中的表达式

在Python中,表达式(expression)是指能够计算出一个值的代码片段。表达式可以由字面量(如数字、字符串等)、变量、操作符、函数调用等组成,它会产生一个值——可以被Python解释器计算并返回一个值。

字面量(Literal)是指在程序中直接表示固定值的表示法——是源代码中直接出现的数据值。

表达式可以是简单的,如一个数值或一个变量,也可以是复杂的,如包含多个运算符和函数调用的复杂表达式,以及列表、字典、集合等。

以下是一些Python表达式的例子:

12.34 :这是一个数值。

x = 10 :这是一个变量。变量是存储值的标识符。

2 + 2:这是一个简单的算术表达式,由两个数字和一个加法运算符组成。Python会计算这个表达式的值并返回结果4。

"Hello, " + "World!":这是一个字符串表达式,由两个字符串和一个加法运算符组成。Python会计算这个表达式的值并返回结果"Hello, World!"。

len("Hello"):这是一个函数调用表达式,由一个函数名和一个参数组成。Python会计算这个表达式的值并返回结果5。

x > 10:这是一个比较表达式,由一个变量、一个比较运算符和一个数字组成。Python会计算这个表达式的值并返回结果True或False。

Python的表达式可以非常复杂,并且可以包含各种各样的运算符、函数调用、方法调用等。

在Python中,你可以在任何需要一个值的地方使用表达式,例如在赋值语句中,或者在if语句的条件中,等等。

语句(Statement

语句(Statement)是 Python 程序的基本执行单位。它是一个完整的指令,告诉 Python 解释器执行特定的操作。例子:

x = 5                  # 赋值语句

if x > 0:              # if 语句
    print("Positive")  # print 语句

for i in range(3):     # for 循环语句
    pass

del x                  # del 语句

方法(Method

方法是与特定类型的对象相关联的函数。它定义了对象可以执行的操作——方法是特定对象类型的操作。

方法一般有返回值。方法的调用方式是通过实例名和点号(.)来调用来调用,语法格式: instance.method()。

例子:

my_list = [1, 2, 3]
my_list.append(4)     # append 是列表的一个方法
length = len(my_list) # len 是一个内置函数,不是方法

my_string = "hello"
upper_string = my_string.upper()  # upper 是字符串的一个方法

数与数制基础知识

二进制 (Base-2)

符号:使用0和1两个符号。

计算机的基本单位(比特)只能表示两种状态:0 或 1。因此,计算机内部的所有数据和指令都使用二进制表示。

位值原则:在二进制数中,每一位上的数字都有其特定的价值,这个价值取决于该位的位置。从右至左,每一位的值都是前一位的2倍。

进位规则:当某一位上的数值达到2时,需要向前一位进位1,这一位上的数值则变为0

a)从十进制转换到二进制

除以2取余法:

    将十进制数除以2。

    记录余数。

    将商继续除以2,重复此过程直到商为0。

    将余数逆序排列,即得到二进制数。

示例: 将十进制数13转换为二进制。

(13 ÷ 2 = 6) 余 (1)

(6 ÷ 2 = 3) 余 (0)

(3 ÷ 2 = 1) 余 (1)

(1 ÷ 2 = 0) 余 (1)

逆序排列余数1101,即十进制13转换为二进制为1101。

有小数的十进制小数转换成二进制

以小数点为界,拆分整数部分和纯小数部分转换

整数部分转换二进制,使用的是“除2取余法”。

小数部分的转换不同于整数部分,使用的是“乘2取整法”

例如:

b)从二进制转换到十进制

按位求和法:

    从右至左,将每位上的数字乘以其对应的2的幂次方。

    将结果相加。

示例、将二进制数(1101)转换为十进制。

1×2^3 + 1×2^2 + 0×2^1 + 1×2^0 = 8 + 4 + 0 + 1 = 13

有小数的二进制转换成十进制

以小数点为界,拆分整数部分和纯小数部分转换。对于整数部分,从左到右依次乘以2的幂,并将结果相加;对于小数部分,从右到左依次乘以2的负幂,并将结果相加。参加下图:

十六进制 (Base-16)

符号:使用0到9和A到F共16个符号。

位值原则:在十六进制数中,每一位上的数字都有其特定的价值,这个价值取决于该位的位置。从右至左,每一位的值都是前一位的16倍。

进位规则:当某一位上的数值达到16时,需要向前一位进位1,这一位上的数值则变为0。

a)从十进制转换到十六进制

除以16取余法:

    将十进制数除以16。

    记录余数(10以上用A-F表示)。

    将商继续除以16,重复此过程直到商为0。

    将余数逆序排列,即得到十六进制数。

示例: 将十进制数217转换为十六进制。

(217 ÷ 16 = 13) 余 9

(13 ÷ 16 = 0)   余13(D)

逆序排列余数D9,即十进制217转换为十六进制为D9。

b)从十六进制转换到十进制

按位求和法:

    从右至左,将每位上的数字(10以上用A-F表示)乘以其对应的16的幂次方。

    将结果相加。

示例: 将十六进制数(D9)转换为十进制。

(13 × 16^1 + 9 × 16^0 = 208 + 9 × 1 = 217)

二进制到十六进制:将二进制数从右向左每 4 位分成一组。如果最后一组少于 4 位,可以在前面补零。将每组4位二进制数转换成对应的十六进制数。

十六进制到二进制:将每个十六进制字符转换为 4 位二进制,然后拼接。

二进制与十六进制的对应关系:

0000 <--> 0
0001 <--> 1
0010 <--> 2
0011 <--> 3
0100 <--> 4
0101 <--> 5
0110 <--> 6
0111 <--> 7
1000 <--> 8
1001 <--> 9
1010 <--> A
1011 <--> B
1100 <--> C
1101 <--> D
1110 <--> E
1111 <--> F

附、关于数制及其转换杂谈 https://blog.csdn.net/cnds123/article/details/130237430

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

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

相关文章

[论文翻译]使用 BERT 检测安卓恶意软件

Android Malware Detection Using BERT Souani B, Khanfir A, Bartel A, et al. Android malware detection using bert[C]//International Conference on Applied Cryptography and Network Security. Cham: Springer International Publishing, 2022: 575-591. 摘要 在本文…

cad文件被写保护怎么解除保护?

CAD文件被写保护怎么解除保护?四五设计网小编给大家整理出的方法希望能够帮助到大家&#xff01; 解除CAD文件写保护的最简单方法是创建一个文件的副本&#xff0c;并在副本上进行编辑。 原文件可能因为文件属性或权限设置而被设置为写保护。创建副本不会改变原始文件的保护…

指针详解(六)

目录 1. sizeof 和 strlen 1&#xff09;sizeof 2&#xff09;strlen 3&#xff09;sizeof 和 strlen的区别 2. 数组和指针试题解析 1&#xff09;一维数组 2&#xff09;字符数组 3&#xff09;二维数组 3. 指针运算试题解析 1. sizeof 和 strlen 1&#xff09;sizeo…

【hot100篇-python刷题记录】【全排列】

R5-回溯篇 思路也是如下&#xff1a; 层层固定 class Solution:def permute(self, nums: List[int]) -> List[List[int]]:#x代表当前固定/选择的数的下标def dfs(x):if xlen(nums)-1:ret.append(list(nums))returnfor i in range(x,len(nums)):#交换&#xff0c;将nums[i]固…

SAP_MM模块-MASS批量操作技巧

业务背景: 现在想要获得平台的流量券,每天必须要发两篇文章才行,但是一天发两篇的话,按照我的写作风格,很难写得出来~~我又不想把原本一篇完整的文章给拆分开来,那怎么办呢??今天就讲一下我常用的批量操作事务码MASS吧。 一、功能概述; MASS是系统标准的批量操作程序,…

HCIP第十一(生成树基础知识点)

企业网三层架构-冗余&#xff08;线路&#xff0c;设备&#xff0c;网关&#xff0c;电源Ups&#xff09; 三层架构-冗余&#xff0c;线路冗余&#xff1a;二层桥接技术 一台交换机上的一个接口可以映射多个MAC地址&#xff0c;但是一个MAC地址只能对应一个接口 当交换机触环…

2024.8.19 学习记录 —— 作业

一、TCP机械臂测试 #include <myhead.h>#define SER_PORT 8888 // 与服务器保持一致 #define SER_IP "192.168.0.114" // 服务器ip地址int main(int argc, const char *argv[]) {// 创建文件描述符打开键盘文件int fd open("/dev/input/event1…

设备实时数据采集:开启制造业智能化、自动化的新篇章

传统制造业在进行生产过程中&#xff0c;会涉及到设备实时数据采集需求&#xff0c;这些数据对于监控生产流程、优化生产效率、保证产品质量以及降低成本等方面至关重要。以下是一些常见的数据采集需求&#xff1a; 1.生产数据&#xff1a;包括生产数量、生产批次、生产速度等&…

Facebook与区块链:社交网络如何融入去中心化技术

随着区块链技术的飞速发展&#xff0c;去中心化理念逐渐渗透到各个领域&#xff0c;社交网络也不例外。作为全球领先的社交平台&#xff0c;Facebook在这一趋势下开始积极探索区块链技术的潜力&#xff0c;希望利用这一前沿技术来提升平台的安全性、透明度和用户控制权。本文将…

Maven-02.介绍安装

一.介绍 首先从本地仓库中寻找所需要的jar包&#xff0c;如果没有就从中央仓库中寻找。然后从中央仓库中下载使用。但是中央仓库的服务器在国外&#xff0c;因此速度和稳定性都不好&#xff0c;因此我们在中间设立远程仓库&#xff08;私服&#xff09;&#xff0c;远程仓库一般…

光伏气象站——提升光伏发电效率和稳定运行

光伏气象站作为现代光伏电站的必备组成部分&#xff0c;‌特别适用于地理分布广泛、‌气象条件复杂多变的地区&#xff0c;‌如山区、‌森林或分散的屋顶安装等。‌这些地方由于可能存在微气候差异&#xff0c;‌对光伏系统的运行效率和性能有着显著影响。‌因此&#xff0c;‌…

LeetCode:3148. 矩阵中的最大得分(DP Java)

目录 3148. 矩阵中的最大得分 题目描述&#xff1a; 实现代码与解析&#xff1a; DP 原理思路&#xff1a; 3148. 矩阵中的最大得分 题目描述&#xff1a; 给你一个由 正整数 组成、大小为 m x n 的矩阵 grid。你可以从矩阵中的任一单元格移动到另一个位于正下方或正右侧…

STM32裸机和RTOS中的线程安全问题及STM32cubeMX中的线程安全策略

STM32线程安全问题 术语“线程” 和“多线程” 适用于裸机和基于RTOS的应用程序&#xff0c;线程安全问题并不只存在于基于RTOS的应用程序中&#xff1b;裸机应用程序中也存在这个问题&#xff0c;在裸机应用程序中&#xff0c;中断服务程序允许调用C库函数。线程安全问题可能…

『Z-Workshop』 The Graph workshop mini hackathon活动

Community Meetup In Hangzhou ZJUBCA 2024 求是 创新 概述 / OVERVIEW The Graph作为一个去中心化的查询协议&#xff0c;为区块链数据的索引和查询提供了强大的支持。我们希望通过这场黑客松&#xff0c;激发大家对区块链技术更深层次的探索和应用&#xff0c;共同推动这一…

第七十四:前端实现点击页面某个菜单跳转到对应的锚点功能

1.用js来实现 scrollIntoView方法 先定义个id或者class随意&#xff0c;因为我是循环好几个小模块所以用动态的来实现 点击的时候传对应的类名进行滑动 document.getElementById(item.variableCode).scrollIntoView({behavior:“smooth”}); 加上behavior:“smooth” 进行平…

为Linux/centos虚拟机已有硬盘扩容

为Linux已有硬盘扩容 旧盘扩容的大体流程与关键命令&#xff1a; 为虚拟机磁盘加容量&#xff1b; 为磁盘新容量分区&#xff08;fdisk&#xff09;&#xff1b; 将分区信息写入内核&#xff08;partx&#xff09;&#xff1b; 为分区创建物理卷&#xff08;pvcreate&#xff0…

电脑如何录屏?三款电脑录屏工具分享

电脑如何录屏&#xff1f;作为一个经常需要录制电脑屏幕大职场人&#xff0c;不是为了制作教程、记录会议&#xff0c;就是偶尔想自己做个游戏解说视频。市面上的录屏软件琳琅满目&#xff0c;经过一番尝试和比较&#xff0c;我选出了三款我个人认为表现不错的软件&#xff0c;…

Qt qss以及对话框

字体对话框的实现 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }void Widget::on_fontbtn_clicked() {bool ok;QFont ret…

开源的向量数据库Milvus

Milvus是一款开源的向量数据库&#xff0c;专为处理向量搜索任务而设计&#xff0c;尤其擅长处理大规模向量数据的相似度检索。 官网地址&#xff1a;https://milvus.io/ 以下是关于Milvus的详细介绍&#xff1a; 一、基本概念 向量数据库&#xff1a;Milvus是一款云原生向量…

pyinstaller打包vnpy项目

因为我写的软件主要是自己用&#xff0c;很少有打包的习惯&#xff0c;直接源代码部署&#xff0c;导致打包&#xff0c;以下记录一下给一个朋友做的&#xff0c;对vnpy的改写&#xff0c;实现实时读取信号文件&#xff0c;发现文件中信号改变就做出相应的交易动作&#xff0c;…