Python基础语法教程,零基础入门到精通,看完这一篇就够了

Jetson nano/nx使用麒麟arm版向日葵实现远程控制 Jetson nano/nx使用麒麟arm版向日葵实现远程控制1、安装向日葵软件2、运行Sunlogin Client3、向日葵闪退问题4、重启系统5、重启后黑屏问题 特别提醒: 本博客的第3步切换桌面管理环境到lightdm,存在重启后开机黑屏的风险,我在自己的nano/nx上都没有问题,但帮一个同学的nx配置时,切换到lightdm,重启开机却出现了黑屏,所以执行第3步的话要有心理准备,黑屏解决方法见第5步,特此提醒。 阅读详情

学习一门编程语言,通常是学习该语言的以下几个部分的内容:

  • 基础语法:如,变量的声明与调用、基本输出语句、代码块语法、注释等;
  • 数据类型:通常都为 数字、字符串、布尔值、数组、链表、Map、Set等;
  • 运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符等;
  • 流程控制语句:分支语句、循环语句;
  • 类的定义与使用:这个是面向对象编程语言才有的内容;
  • 常用API的使用:常用方法、工具类或模块的使用。

掌握上面的内容,就算是对一门编程语言入门了,剩下的就是不断的在使用和总结中去提升了。本节我们先来说一说学习Python时的准备工作以及Python的基础语法。

本节内容


  1. Hello, World!
  2. Python2.x or Python3.x
  3. 变量与常量
  4. 接收用户输入
  5. 指定字符编码与解释器
  6. 注释
  7. 导入模块
  8. 获取脚本传入的参数
  9. 代码块语法
  10. Python程序执行过程与.pyc文件

一、Hello, World


在任意一个目录下创建一个hello.py文件,我们来输出一个经典语句"Hello World!"

print("Hello, World")

执行hello.py这个python脚本的方式是:

python hello.py

输出为:

Hello, World

当然也可以直接进入python解释器交互式终端去执行print(“Hello, World”),如下图所示:

image

思考:为什么打印一句“Hello World”已经成为很多人学习一门新语言的第一句代码?

有人说,这是学习一门语言入门的象征,因为写完了这个我就可以对别人说“我会写xx语言的程序了”。本人认为要理解为什么Hello World如此简单,却又如此广为人知并被传颂,只需要想清楚一个问题:这个程序带给我们什么?

  1. 它告诉我们在这个编程语言中基本的输出语句是怎样的,这很重要;

  2. 它告诉我们要怎样去执行这个编程语言编写的程序,这同样很重要。

如果不知道上述两个问题,我们将寸步难行。

二、Python 2.x or Python 3.x


1. Python 2.x 与 Python 3.x之间的关系

我们分别使用Python2.7 和 Python3.5的解释器提供的交互式终端来分别执行以下两条指令:

print("Hello, World")
print "Hello, World"

image

通过上图的执行结果会发现,print "Hello, World" 这条语句在Python2.7中可以正常执行,而在Python 3.5中会报错,也就是说Python 3.x与Python 2.x是不兼容的。这貌似是Python开发者犯的一个错误,而事实是Guido Van Rossum(Python语言的最初创建者)故意为之。Guido的本意就是想不考虑太多向后兼容性的问题,去适当地清理一下Python 2.x中不合理的内容,而不是把Python 3.x简单的当做对Python 2.x的更新版本。

实际上,Python 3.0在2008年12月就已经发布了,Python官方在2010年年中发布2.7时宣布,2.7将是Python 2.x的最后一个主发布版本。其实Python 2.7 是向Python 3.x的一个过渡版本,里面支持了一些Python 3.x的特性。

2014年11月,Python官方宣布Python 2.7将会被支持到2020年,并再次确认了不会有Python 2.8发布,希望用户尽快迁移到Python 3.4+ 。3.x正在处于积极开发状态,并且在过去5年里已经发布了多个稳定版本,包括2012年的3.3,2014年的3.4,2015年的3.5。这意味着最近所有的标准库更新将默认只能在Python 3.x中可用。

2. Python 2.x 与 Python 3.x 的主要区别:

1) PRINT IS A FUNCTION

在Python 3.x中,输出语句需要使用print()函数,该函数接收一个关键字参数,以此来代替Python 2.x中的大部分特殊语法。下面是几个对比项:

目标Python 2.x的实现Python 3.x的实现
拼接并输出多个值print “The result is”, 2+3print(“The result is”, 2+3)
打印一个元祖(1,2,3)print(1,2,3) 或 print (1,2,3)print((1,2,3))
输出一个内容并且不换行print “Hello”,print(“Hello”, end=" ")
输出一个新空白行printprint()
将输出内容输出到标准错误输出文件print >>sys.stderr, “fatal error”print(“fatal error”, file=sys.stderr)
自定义多个输出内容之间的分隔/拼接符N/Aprint(“There are <”, 2**32, “> possibilites!”, sep="")
2) ALL IS UNICODE

Python 2.x中使用的默认字符编码为ASCII码,要使用中文字符的话需要指定使用的字符编码,如UTF-8;Python 3.x中使用的默认字符编码为Unicode,就不存在这个问题了。

3) 多变量同时赋值问题

python 2.x中如果要给多个变量同时赋值,要求=号右边的表达式返回结果的个数要与=号左边接收值的变量个数相等,不能多,也不能少。如:

a,b,c = (1,2,3) # 正常,a=1, b=2, c=3
a,b,c = range(5) # 报错,ValueError: too many values to unpack
a,b,c,d,e = [1,2,3] # 报错,ValueError: need more than 3 values to unpack 

python 3.x中允许=号昨边的变量数小于=号右边表达式返回的结果的个数,但是需要有1个且只能有1个字典类型的变量来接收多余的返回值。与python 2.x相同的是 python 3.x中=号左边的变量数也是不能多与=号右边表达式的返回值个数,但是错误提示语更清晰了。

a,b,c = (1,2,3) # 正常,a=1, b=2, c=3
a,*b,c = range(5) # 正常,a=0, b=[1,2,3], c=4
a,b,c,d,e = [1,2,3] # 报错,ValueError: not enough values to unpack (expected 5, got 3)

4) 某些库改名字了
Old NameNew Name
_winregwinreg
ConfigParserconfigparser
copy_regcopyreg
Queuequeue
SocketServersocketserver
markupbase_markupbase
reprreprlib
test.test_supporttest.support
5) 选择Python 2 还是 Python 3呢?

如果是要开发一个新项目,不用考虑与老项目的兼容问题,最好是使用Python 3,因为就像Python官方说的那样,Python 3才是Python语言的将来。现在很多第三方类库已经完成了或者正在积极完成对Python 3的支持,只是有些项目由于过于庞大,很难在短时间内完成。我们需要考虑的最大问题在于,新项目中是否存在必须的第三方类库,且该类库当前还不支持Python 3。如果不存在这个问题,那坚定的选择Python 3吧。

三、变量与常量


1. 变量

这是只是简单说下Python中变量的定义和使用,方便继续下面的内容。事实上,Python中变量的使用确实很简单:

name = "wader"
age =28
print("Name: ", name,) # Name: wader
print("Age : ", age) # Age : 28

2. 查看变量数据类型

python定义变量无需指定变量类型,python解释器会在运行时自动推断变量的数据类型。我们可以通过type()方法来查看变量类型:

type(name) # str
type(age) # int

image

3. 常量

事实上,Python中没有语法约束下的常量,仅仅是用完全大写字母的变量来表示这个变量不应该被改变。

COUNT = 10

四、接收用户输入


很多时候都需要与用户进行交互,通过用户输入的内容来做下一步操作。这里需要说明的是,Python 2 与Python 3中接收用户输入的方法是不一样的。

1. Python 2

Python 2中接收用户输入时,主要使用的是raw_input()函数:

name = raw_input("Enter your name: ")
print "Your name is ", name

image

2. Python 3

Python 3中接收用户输入时,主要使用的是input()函数:

name = input("Enter your name: ")
print("Your name is ", name)

image

3. 说明

  • 通过Python 2中的raw_input() 与 Python 3中的input() 获取到的值都是str类型,若想转换为其他数据类型需要进行强制类型转换,这个等将Python数据类型的时候会说。

image

image

  • Python 2中其实也有input()方法,但是通过这个input()方法获取的值是与输入内容的数据类型有关的,这很容易造成混乱,因此现在Python 2中很少用这个方法,而是用raw_input()代替了。

image

五、 指定字符编码与解释器


1. 字符编码的作用

计算机只认识0和1组成的二进制序列,因此任何文件中的内容要想被计算机识别或者想存储在计算机上都需要转换为二进制序列。那么字符与二进制序列怎么进行想换转换呢?于是人们尝试建立一个表格来***存储一个字符与一个二进制序列的对应关系***。

  • 编码 将字符转换为对应的二进制序列的过程叫做字符编码
  • 解码 将二进制序列转换为对应的字符的过程叫做字符解码

2. 字符编码的简单发展过程

1) ASCII码诞生

最早建立这个字符与十进制数字对应的关系的是美国,这张表被称为ASCII码(American Standard Code for Information Interface, 美国标准信息交换代码)。ASCII码是基于拉丁字母的一套电脑编程系统,主要用于显示现代英语和其他西欧语言。它被设计为用1个字节来表示一个字符,所以ASCII码表最多只能表示2**8=256个字符。实际上ASCII码表中只有128个字符,剩余的128个字符是预留扩展用的。

image

2) GBK等各国编码诞生

随着计算机的普及和发展,很过国家都开始使用计算机。大家发现ASCII码预留的128个位置根本无法存储自己国家的文字和字符,因此各个国家开始制定各自的字符编码表,其中中国的的字符编码表有GB2312和GBK。

3) Unicode诞生

后来随着世界互联网的形成和发展,各国的人们开始有了互相交流的需要。但是这个时候就存在一个问题,每个国家所使用的字符编码表都是不同的。比如我们发送一句“你好,我好喜欢你演的爱情动作电影!”给岛国的仓老师,苍老师电脑上用的是日本的字符编码表,因此她的电脑无法正确显示我们发送的内容。这个时候,人们希望有一个世界统一的字符编码表来存放所有国家所使用的文字和符号,这就是Unicode。Unicode又被称为 统一码、万国码、单一码,它是为了解决传统的字符编码方案的局限性而产生的,它为每种语言中的每个字符设定了统一并且为之一的二进制编码。Unicode规定所有的字符和符号最少由2个字节(16位)来表示,所以Unicode码可以表示的最少字符个数为2**16=65536。

4) UTF-8诞生

为什么已经有了Unicode还要UTF-8呢?这是由于当时存储设备是非常昂贵的,而Unicode中规定所有字符最少要由2个字节表示。人们认为像原来ASCII码中的字符用1个字节就可以了,因此人们决定创建一个新的字符编码来节省存储空间。UTF-8是对Unicode编码的压缩和优化,它不在要求最少使用2个字节,而是将所有字符和符号进行分类:

  • ascii码中的内容用1个字节保存
  • 欧洲的字符用2个字节保存
  • 东亚的字符用3个字节保存
  • …

UTF-8是目前最常用,也是被推荐使用的字符编码。

3. Python中的字符编码问题

我们上面提到过,一般在两个地方会用到字符编码:

  • 磁盘写入或读取数据时;
  • 程序执行时的输入和输出;

磁盘写入或读取数据时使用的字符编码是由编辑器指定的工程或文件的字符编码决定的,这与Python解释器是无关的;但是Python程序执行时,将Python脚本文件加载到内存时所使用的字符编码是主要问题所在。在Python 2中,Python解释器默认使用的是ASCII码,此时如果要运行的程序中如果有中文Python解释器就会报错。

print("你好,世界")

SyntaxError: Non-ASCII character ‘\xe4’ in file C:/Users/wader/PycharmProjects/LearnPython/day01/code.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

这是因为Python解释器执行该程序时试图从ASCII编码表中查找中文字符对应的二进制序列,但是发现找不到。此时要想该程序正常运行,就需要在python脚本文件的开始位置声明该文件的所使用的字符编码:

# -*- coding:utf-8 -*-

print("你好,世界")

需要说明的是:

Python 3的解释器默认使用Unicode编码,它本身是可以对中文字符进行编码和解码的,所以即便不指定字符编码也能正常运行,但是还是建议保留字符编码的声明。

4. 指定python解释器

通常python脚本都是跑在Linux上的,为了让python脚本文件可以像shell脚本那样可以直接调用执行,我们通常需要在python文件最开始的位置指定python解释器:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

print("你好,世界")

不建议写python解释器的绝对路径,如:

#!/usr/bin/python
# -*- coding:utf-8 -*-

print("你好,世界")

因为这样写的话,将来要想更换python解释器是非常麻烦的。

六、注释


关于注释,有两个原则:

  • 不写没必要的主要:多余的注释只会让代码阅读者看着更乱,且容易分神
  • 错误的注释不如没有注释:更改代码后,首先要做的就是更改注释

1. 块注释

块注释,顾名思义,应该是对一个代码块的注释。显然,对某个代码块的注释信息应该写在这个代码块的前面,并且缩进到与该代码块相同的级别。块注释的每一行都要以#号加上单个空格开始(注释中的缩进文本除外):

# 计算变量a与变量b的和
# 然后打印计算值
a = 10
b = 20
sum = a + b
print("sum: %d" % sum)

说明: Python中的单行注意与多行注意都是以# 号来标识的。如果注释信息只有一行,则为单行注释;如果注释信息有多行,则为多行注释。另外如果多行注释中有多个段落,则段落之间可以以一个#加单个空格的空注释行隔开。

2. 行内注释

如果要注释的代码块只有一行代码,且注释信息也很短,也可以把直接注释要写在代码的后面,这就是 行内注释 。行内注释要求代码与#号之间至少要有2个空格,同时#号与注释内容之间至少要有1个空格。

print("你好,世界")  # 打印一行文本

另外,行内注释并不被推荐使用。

3. 文档字符串(docstring)

文档字符串通常用来为某个模块、函数、类或方法提供比注释更详细的使用说明、注意事项、使用用例等帮助信息。文档字符串以三个引号(单引号和双引号都可以,通常都使用双引号)将字符串包起来。由于文档字符串表现形式类似于Python的多行字符串,因此很多人把它当做Python中的多行注释来用。

PEP 276 中对“什么是好的文档字符串的书写格式”进行了一些定义:

  • 应该为公共模块、函数、类和方法编写文档字符串。非公共方法需需要docstring,但是应该有一个描述该方法的注释,且该注释信息应该出现在def行的行末。
  • 模块的文档字符串应该写在“字符编码的声明”与“模块导入”语句之间;函数与方法的文档字符串应该写在def语句行与函数体或方法体正式代码之间;类的文档字符串应该写在class语句行与该类的第一个方法定义之间。
  • 如果文档字符串有多行,那么结尾的三个引号应该在一个单独的行。
  • 如果文档字符串只有一行,那么结尾的3个引号应该与开始的3个引号以及文档字符串在同一行。

来看下Python 3中一些内置函数的文档字符串实例:

def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
    """
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.
    """
    pass

def ord(*args, **kwargs): # real signature unknown
    """ Return the Unicode code point for a one-character string. """
    pass

def exit(*args, **kwargs): # real signature unknown
    pass

七、导入模块


当Python内置的核心模块提供的功能无法满足我们的需求时就需要导入外部模块,而导入模块的功能有两种方式:

  • import MODULE :导入整个模块
  • from MODULE import XX :导入模块中的一部分(方法、变量、或常量等)

例如,要想查看或更改python查找模块的路径列表就需要使用sys模块下的path变量;若需要执行系统命令可以使用os模块下的system()方法。

import sys
from os import system

print(sys.path)
print(system("ping www.baidu.com"))

image

八、获取python脚本执行时传入的参数


我们在写shell脚本时,经常会通过接受执行脚本时传入的变量来做相应的操作,来保证脚本的灵活性。比如我们要写一个脚本来调用ping命令对指定的域名进行ping测试,这时候显然将域名当做参数传递给脚本要比把域名写死在脚本中灵活的多。shell中可以只用$1,$2这样的特殊变量来获取传入的参数,而python中需要用sys模块下的argv变量来获取。

sys.argv是一个列表,与shell相同,其第一个元素是当前脚本的名称,之后才是传入的参数。

编写一个ping.py,内容如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import sys
import os

print(type(sys.argv))
print(sys.argv)

执行该脚本,结果如下图所示:

image

九、代码块


在Java和C语言中用花括号{}包起来的部分就是一个代码块,shell脚本中的代码块是由专门的开始和结束标识的,而python中的代码块是靠“缩进对齐”来表示的。下面我们分别一个if-else的条件判断来对这几个语言的代码块表示方式做一个对比:

1. Java

...
int a = 3;
int b = 5;
int big_num;

if(a > b){
    big_num = a;
}else{
    big_num = b;
}

System.out.println(big_num)
...

2. Shell

declare -i a=3
declare -i b=5
declare -i big_num

if [ $a -gt $b ];then
    big_num=$a
else
    big_num=$b
fi

echo $big_num

3. Python

a = 3
b = 5

if a > b:
    big_num = a
else:
    big_num = b

print(big_num)

十、Python的执行过程与.pyc文件


在之前的文章我们已经解释过:Python是一个动态的、强类型的、解释型的编程语言。而实际上,解释型语言与编译型语言的界限正在变得模糊。包括Python在内的很多高级编程语言,会将源代码先编译成特定类型的中间代码,然后再由解释器去执行,这样可以提高执行效率。Python的解释器同时也是生成Python中间代码的编译器,.pyc文件就是存放Python中间代码的文件。执行Python代码时,如果该源码文件导入了其他的.py文件,那么执行过程中会自动生成一个与导入的.py文件同名的.pyc文件。

学习资源

题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,这里分享一些python入门学习资料和书籍帮助初学者,系统的资料让学习效果事半功倍。

这份资料非常全面,从 Python 基础、到 web 开发、数据分析、机器学习、深度学习、金融量化统统都有,该手册是 HTML 版本,左侧是目录,可以点击,右侧是对目录知识点的讲解,适合 python 学习者,对某些知识点不熟悉的话,将页面保存到浏览器书签,可以快速在没网的情况下查找知识点,总计有 200 多页!

文中所展示的资料全部都是免费分享,扫一扫下方优快云官方认证微信二维码即可【100%免费获取】。

在这里插入图片描述

Python 知识手册

Linux 知识手册

爬虫查询手册

而且,这些资料不是扫描版的,里面的文字都可以直接复制,非常便于我们学习:

数据分析知识手册:

机器学习知识手册:

金融量化知识手册:

岗位内推、学习交流

我们大量需要前端岗位、python岗位、Java 岗位、Android 和 iOS 的开发岗位,工作地点:深圳腾讯,欢迎校招社招扫描下方二维码找我内推
在这里插入图片描述

如果你觉得自己学习效率低,缺乏正确的指导,可以加入资源丰富,学习氛围浓厚的优快云官方技术圈一起学习交流吧!

深入解析mSATA与mini-PCIE接口的硬件设计要点 本文深入解析mSATA与mini-PCIE接口的硬件设计要点,涵盖信号定义、电源设计、高速信号处理及PCB布局布线等关键内容。通过实战案例和调试技巧,帮助工程师规避常见设计陷阱,提升电路设计效率,特别适合工业控制和嵌入式系统开发场景。 阅读详情

相关推荐

手把手教你用DSP28335的PWM移相功能搞定双有源桥DAB(附完整代码)

本文详细解析了DSP28335的PWM移相功能在双有源桥DAB中的应用,包括ePWM模块的配置、移相时序原理及实战代码。通过精确的移相控制,实现DAB的高效运行和软开关,适用于车载充电机、储能系统等场景。附完整代码,助力开发者快速掌握硬件级移相技术。

weixin_30632089的博客 420

Python 基础语法(一)

Python的特点   1. 简单     Python是一种代表简单思想的语言。   2. 易学     Python有极其简单的语法。   3. 免费、开源     Python是FLOSS(自由/开放源码软件)之一。   4. 高层语言     使用Python编写程序时无需考虑如何管理程序使用的内存一类的底层细节。   5. 可移植性     Python已被...

dengwen9264的博客 737

Android SSL证书固定实战:原理、方案与避坑指南

SSL/TLS协议是保障网络通信安全的基石,其核心原理是通过非对称加密和数字证书实现身份认证与数据加密。在移动应用开发中,为了防止中间人攻击,证书固定技术应运而生,它通过将服务器证书或公钥的哈希值预置在应用内,强制校验服务器身份,从而大幅提升通信链路的安全性。这一技术对于金融、电商等高安全要求场景尤为重要。本文聚焦Android平台,深入解析SPKI固定、Network Security Configuration与OkHttp CertificatePinner等主流方案,并针对证书更新、调试兼容等常见痛

weixin_33935636的博客 402

Python基础语法体系(详细)

Python基础语法体系 一:基本数据类型及操作 二:程序的控制结构 三:函数和代码复用 四:组合数据类型

Climb_Ma的博客 3万+

从RRT到平滑轨迹:机械臂避障规划仿真全流程解析

本文详细解析了机械臂避障规划从RRT算法到平滑轨迹优化的全流程,包括MATLAB实现、碰撞检测工程实践及轨迹平滑优化技巧。通过RRT算法在关节空间的路径搜索与Minimum Jerk/Snap优化,实现机械臂在复杂环境中的高效安全运动,适用于工业自动化与机器人控制领域。

weixin_29051811的博客 294

ModelSim 2020.4破解失败?手把手教你解决‘Unable to checkout viewer license‘报错(附环境变量配置)

本文针对ModelSim 2020.4启动时遇到的‘Unable to checkout viewer license’报错,提供了从理解许可证机制到分步修复的完整指南。文章深入解析了viewer license与图形用户界面(GUI)的关系,并详细说明了通过生成有效许可证文件、精准配置系统环境变量及替换关键文件来解决图形界面启动失败的问题,帮助用户彻底修复并理解其背后的逻辑。

k6l7m8n9的博客 991

Python以及基础语法保姆级教程(超详细)

Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。一句话,在代码中直接被写下来的固定值(数据),就叫字面量。在Python中被引号包围住的,都是字符串。(引号可以是单引号、双引号还可以是三引号)注:三引号既可以表示字符串同时也是注释的一种方法下面是字符串的三种定义形式text1 = '我是字符串的一种形式' tetx2 = "我也是字符串的一种形式" text3 = """能做注释,也能用来当字符串""" """这里是多行注释"""函数。

书山有路勤为径,学海无涯苦作舟。 2万+

5分钟搞定单细胞marker基因气泡图:scDotPlot保姆级教程(含Seurat适配)

本文提供了一份详细的scDotPlot R包使用教程,帮助用户在5分钟内完成单细胞marker基因气泡图的绘制。教程涵盖环境准备、Seurat和SingleCellExperiment对象的适配处理、进阶可视化技巧及自动化报告生成,特别适合生物信息学新手和临床研究者快速掌握这一高效的可视化工具。

weixin_29047545的博客 261

通俗易懂的Python入门基础详细教程

通过2天的学习,已近掌握了基本的Python语法、运算符,流程控制等系列的基础知识。知识的海洋是无穷的,下次会更加努力学习,同时也努力更新更优质的Python 学习文章,和大家一起讨论,一起成长。学过中报错总结问题1.遇到这种问题,就是我们输入的内容,默认是字符串,我们需要转换成int,类型。如:将grade =input("输入你的成绩:")转换成grade =int (input("输入你的成绩:"))。问题2.,这就是我们的语法问题,特别需要注意的是,条件语句后面的分号。

m0_59162248的博客 2227

深入剖析 Wenet 下 AISHELL-1 的 run.sh 脚本:从数据准备到模型训练

run.sh脚本用于处理 AISHELL-1 数据集的整个训练和测试流程。我们将逐步分析脚本中的每个部分,包括环境变量、参数设置、各个阶段的执行等。stage: 设置脚本的起始阶段(如数据准备)。stop_stage: 设置脚本的结束阶段。通过对 Wenet 下 AISHELL-1 的run.sh脚本的详细剖析,我们希望你能更好地理解每个步骤的功能及其背后的原理。此脚本不仅为模型训练提供了便利,也为用户自定义和扩展训练流程提供了基础。希望本教程能帮助你顺利完成语音识别项目!

帅小柏的博客 1633

openmediavault(OMV) (1)安装部署

EXT3(Third Extended File System): EXT3 是 Linux 中广泛使用的日志文件系统,是 EXT2 文件系统的升级版本。这里可以根据自己的需求进行设置,目前只设置了自动登出为1天,为方便后续配置使用,其他设置可根据自己的具体需求进行设置。通过cd 命令进入到我们的raid存储中,通过ls发现里面没有任何的数据,因为我们的raid存储中还未创建任何数据。我的系统要安装在100G的磁盘上,故选择100G的磁盘,实际可以根据具体情况选择。

Monster✺◟(∗❛ัᴗ❛ั∗)◞✺的博客 2168

万字详细Python基础语法大全简单入门

帮助你快速入门Python

lovellsj的博客 6103

纯方位观测下的三维定位,IV-PLKF(Inverse Velocity-Weighted Pseudo-Linear Kalman Filter)

在现代定位系统中,纯方位观测因其无需测距设备的优势,在无线通信、无人机导航和室内定位等领域备受关注。本文深入探讨基于算法的三维定位方法,并提供完整的MATLAB仿真例程。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 672

Python基础语法教程(零基础入门到精通)看完这一篇就够了

掌握上面的内容,就算是对一门编程语言入门了,剩下的就是不断的在使用和总结中去提升了。本节我们先来说一说学习Python时的准备工作以及Python的基础语法。

m0_58477260的博客 1153

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Python基础语法教程(零基础入门到精通)看完这一篇就够了!

掌握上面的内容,就算是对一门编程语言入门了,剩下的就是不断的在使用和总结中去提升了。本节我们先来说一说学习Python时的准备工作以及Python的基础语法。

Python_trys的博客 1598

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了

前言 本文罗列了了python零基础入门到精通的详细教程,内容均以知识目录的形式展开。 01.python由来与发展介绍 02.项目开发流程 第一章 markdown编辑器 01.markdown基本语法 02.Typora简介与安装 03.Windows上gitee+Typora设置图床 04.macOS上gitee+Typora设置图床 第二章 计算机核心基础 01.计算机组成原理 第三章 编程语言 01.编程语言介绍 02.python是解释型的强类型动态语言 第四章 Python解释器和集成环境 0

Python_0011的博客 21万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Python入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

本文罗列了了python零基础入门到精通的详细教程,内容均以知识目录的形式展开。

2301_76161259的博客 3万+

程序员入门教程【非常详细】从零基础入门到精通,看完这一篇就够了 !

零基础编程入门先学什么?编程语言有几百种,我们应该怎么选择。想学习编程,加入互联网行业,哪一个更有前途?在小白学习编程会有各种各样的问题,今天小编我就来为你解答。一、怎么选择编程语言。编程语言有很多种,但方向不同。每个人都需要根据工作方向、学习难度和发展前景做出选择。

xx16755498979的博客 5万+

【2024最新】Python入门教程(非常详细)从零基础入门到精通,看完这一篇就够了!

本文罗列了了python零基础入门到精通的详细教程,内容均以知识目录的形式展开。

m0_62283350的博客 8727

【2025版】最新Python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了

Python它是一种直译式,面向对象,解释式的脚本语言。它和Java,C/C++,Go语言一样都是高级语言,但由于它是解释式语言,所以运行速度会比Java,C/C++等语言慢(虽说隔壁Go也是解释式语言,但比它快很多)。不过任何事物有利也有弊,Python因为自身携带了许多库(如:OS、TCP、Urllib、Trutle),语法简单,第三库也有很多(如飞机大战所需的pygame),所以被称为胶水语言,同时也深受开发者青眯。Python之父:Guido van Rossum,荷兰人。

Python_0011的博客 2万+

Python入门教程(非常详细)从零基础入门到精通,看完这一篇就够了!

本文罗列了了python零基础入门到精通的详细教程,内容均以知识目录的形式展开。

Python_trys的博客 1970

python零基础入门教程(非常详细),从零基础入门到精通,看完这一篇就够了

python零基础入门教程(非常详细),从零基础入门到精通,看完这一篇就够了

Python单行客的博客 6082

2024最新整理Python入门教程(超详细),从零基础入门到精通,看完这一篇就够了

根据同学的学习进度 安排相对应的python训练营 一周花八个小时跟着我学python就可以提升自己 给你们安排的是不要钱的。本文罗列了Python零基础入门到精通的详细教程,内容均以知识目录的形式展开。10.进程间数据共享(multiprocess.Manager)06.开启多进程(multiprocess.process)08.进程间通信(multiprocess.Queue)11.python之面向过程编程思想与匿名函数及其应用。10.python之数据类型之可变与不可变类型。

biancheng_syz的博客 4096
上一篇: 从月入4千到现在的月入1万,印刷专业转程序员,“谁说女的不适合学编程?”
下一篇: python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了
程序员_大白
博客等级 码龄5年 1万+粉丝 4001原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值