嵌入式和Python(二):python初识及其基本使用规则

news/2024/11/30 10:31:31/

目录

一,python基本特点

二,python使用说明 

● 两种编程方式

① 交互式编程

② 脚本式编程 

● python中文编码

● python行和缩进

● python引号

● python空行 

● python等待用户输入

① 没有转换变量类型

② 转换变量类型

● python变量类型

● Python字符串 

● python条件语句

● Python 循环语句

循环控制语句 


一,python基本特点

● Python是一种动态解释型的编程语言。可移植性强,Python可以在Windows、UNIX、MAC等多种操作系统上使用,也可以在Java、.NET开发平台上使用;
● Python使用C语言开发,但是Python不再有C语言中的指针等复杂的数据类型;Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单;
将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力;
● Python具有很强的面向对象特性,而且简化了面向对象的实现。它消除了保护类型、抽象类、接口等面向对象的元素;
● Python代码块使用空格或制表符缩进的方式分隔代码;
● Python仅有31个保留字,而且没有分号,beginend等标记;
● Python强类型语言,变量创建后会对应一种数据类型,出现在统一表达式中的不同类型的变量需要做类型转换
作为嵌入式开发工作者,用C语言的视角学习python,了解其基本用法,不用过分深究。当然可以根据自己实际需求,来决定是否深入学习。 

二,python使用说明 

声明:下文内容仅梳理了python的部分知识点内容和对应的代码案例,目的也仅在于能对python有一个基本编程规则的了解。

● 两种编程方式

① 交互式编程

交互式编程(也可以认为是指令式)不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码。linux上你只需要在命令行中输入Python命令即可启动交互式编程

>>> quit()  //quit()指令,退出python命令行

② 脚本式编程 

通过脚本参数调用解释器开始执行脚本,直到脚本执行完毕。当脚本执行完成后,解释器不再有效。下面写一个简单的 Python 脚本程序。所有 Python 文件将以 .py 为扩展名。

其实在linux中,并不会太多关心Python文件的后缀,因为在编译和执行Python程序时候会调用python解释器来解释文件。但为了严谨,尽量规范文件格式。

 python程序的编写极大程度上与shell脚本相识

 

 文件test02.py:

#!/usr/bin/python       //Python解释器在/usr/bin目录中,添加解释器路径
print("hello python!");

 

● python中文编码

原因:

在上面的例子中用 Python 输出 “Hello python”,英文没有问题,但是如果你输出中文字符 "你好,世界" 就有可能会碰到中文编码问题。

Python中默认的编码格式是 ASCII 格式,在没修改编码格式时可能无法正确打印汉字,所以在读取中文时会报错。

解决方法:

只要在文件开头加入 # -*- 编码: UTF-8 -*- 或者 # 编码=utf-8 就行了

注意:# 编码=utf-8 的 = 号两边不要空格。

文件test03.py :

#!/usr/bin/python
# -*- coding:UTF-8 -*-  //加入编码格式print("你好 世界!");

 

● python行和缩进

Python与其他语言最大的区别就是,Python 的代码块不使用大括号 { } 来控制类,函数以及其他逻辑判断。

python 最具特色的就是用缩进来写模块。缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行,否者编译报错。

① 代码没有严格执行缩进相同原则,编译出现如下报错:

  1 #!/usr/bin/python2 # -*- coding: UTF-8 -*-34 if True:5     print ("Answer")6     print ("True")7 else:8     print ("Answer")9     # 没有严格缩进,在执行时会报错10   print ("False")

 ② 代码执行缩进相同原则,编译正常执行:

  1 #!/usr/bin/python2 # -*- coding: UTF-8 -*-34 if True:5     print ("Answer")6     print ("True")7 else:8     print ("Answer")9     print ("False")

● python引号

Python 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串,引号的开始与结束必须是相同类型的。

其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。'''xxxxxx'''  或  """xxx"""  类似c语言中注释:  /*xxx*/

>>> print("hello py")  //双引号
hello py
>>> print('hello py')  //单引号
hello py
>>> 

● python空行 

函数之间或类的方法之间用空行分隔,表示一 段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

记住:空行也是程序代码的一部分。

● python等待用户输入

直接使用 input ,类似于c语言中 scanf ,但比scanf更加简单粗暴

下面的程序执行后就会等待用户输入,按回车键后就会退出:

#!/usr/bin/python
# -*- coding: UTF-8 -*-input("按下 enter 键退出,其他任意键显示...\n")

以上代码中 ,\n 实现换行。

在执行test04.py后,就会等待用户输入,enter键退出;输入的hello python 就会显示出来,回车退出

注意: 

在上面说明了python的有一项基本特点:Python强类型语言,变量创建后会对应一种数据类型,出现在统一表达式中的不同类型的变量需要做类型转换

所以在实际编程过程中一定要注意变量类型的转换,下面代码举例说明:

① 没有转换变量类型

  1 #!/usr/bin/python2 # -*- coding: UTF-8 -*-34 a = input("请输入一个加数a:")5 b = input("请输入一个加数b:")67 ret = a + b89 print(ret)

② 转换变量类型

  1 #!/usr/bin/python2 # -*- coding: UTF-8 -*-34 a = input("请输入一个加数a:")5 b = input("请输入一个加数b:")67 a = int(a)  //注意转换的格式,与c语言是反着写的8 b = int(b)910 ret = a + b1112 print(ret)

 

● python变量类型

Python 中的变量赋值不需要类型声明。但是在上面输入的例子中,就必须要转换变量的类型,注意区分

每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。

每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

等号 = 用来给变量赋值。

等号 = 运算符左边是一个变量名,等号 = 运算符右边是存储在变量中的值。

#!/usr/bin/python
# -*- coding: UTF-8 -*-counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串print (counter)
print (miles)
print (name)

 输出结果:

100
1000.0
John

● Python字符串 

根据下面示例代码很容易理解

加号(+)是字符串连接运算符,星号(*)是重复操作

#!/usr/bin/python
# -*- coding: UTF-8 -*-str = 'Hello World!'print (str)           # 输出完整字符串
print (str[0])        # 输出字符串中的第一个字符
print (str[2:5])      # 输出字符串中第三个至第六个之间的字符串
print (str[2:])       # 输出从第三个字符开始的字符串
print (str * 2)       # 输出字符串两次
print (str + "TEST")  # 输出连接的字符串
Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST

● python条件语句

Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。可以通过下图来简单了解条件语句的执行过程:

Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。

Python 编程中 if 语句用于控制程序的执行,基本形式为:

if 判断条件:执行语句……
else:执行语句……

代码示例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-# 例1:if 基本用法flag = False
name = 'luren'
if name == 'python':         # 判断变量是否为 python flag = True              # 条件成立时设置标志为真print('welcome boss')    # 并输出欢迎信息
else:print(name)              # 条件不成立时输出变量名称
luren            # 输出结果

● Python 循环语句

Python 提供了 for 循环和 while 循环(在 Python 中没有 do..while 循环):

循环类型描述
while 循环在给定的判断条件为 true 时执行循环体,否则退出循环体。
for 循环重复执行语句
嵌套循环可以在while循环体中嵌套for循环

循环控制语句 

循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:

控制语句描述
break 语句在语句块执行过程中终止循环,并且跳出整个循环
continue 语句在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
pass 语句pass是空语句,是为了保持程序结构的完整性。

http://www.ppmy.cn/news/30267.html

相关文章

[ vulnhub靶机通关篇 ] Empire Breakout 通关详解

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

深度学习第一步——Pytorch-Gpu环境配置:Win11/Win10+Cuda10.2+cuDNN8.5.0+Pytorch1.8.0(步步巨细,少走十年弯路)

博主已有:PycharmAnaconda 通过这篇博客你将获得:Cuda10.2cuDNN11.xPytorch1.8.0(GPU) import torchprint(torch.cuda.is_available()) print(torch.__version__) print(torch.version.cuda) True 1.8.0 10.2 目录 1.确定自己电脑有无显卡 2.确定显卡支…

K8S篇-安装nfs插件

前言 有关k8s的搭建可以参考:http://t.csdn.cn/H84Zu 有关过程中使用到的nfs相关的nas,可以参考: http://t.csdn.cn/ACfoT http://t.csdn.cn/tPotK http://t.csdn.cn/JIn27 安装nfs存储插件 NFS-Subdir-External-Provisioner是一个自动配置…

生产环境线程问题排查

线程状态的解读RUNNABLE线程处于运行状态,不一定消耗CPU。例如,线程从网络读取数据,大多数时间是挂起的,只有数据到达时才会重新唤起进入执行状态。只有Java代码显式调用sleep或wait方法时,虚拟机才可以精准获取到线程…

数字图像学笔记 —— 17. 图像退化与复原(自适应滤波之「最小二乘方滤波」)

文章目录维纳滤波的缺点约束最小二乘方滤波给一个实际例子吧维纳滤波的缺点 维纳滤波(Wiener Filter),虽然是一种非常强大的退化图像还原算法,但是从实验过程我们也发现它存在着致命的缺陷,那就是要求输入退化系统的 …

KNN学习报告

原理 KNN算法就是在其表征空间中,求K个最邻近的点。根据已知的这几个点对其进行分类。如果其特征参数只有一个,那么就是一维空间。如果其特征参数只有两个,那么就是二维空间。如果其特征参数只有三个,那么就是三维空间。如果其特征…

进程控制~

进程控制 (创建、终止,等待,程序替换) 进程创建: pid_t fork();父子进程,数据独有,代码共享,各有各的地址 pit_t vfork();父进程阻塞,直到子进程exit退出或者程序替换之…

shell基础(5)算数计算:运算语法、自增自减

文章目录1. shell算数运算的特点2. 运算符一览3. 运算语法3.1 整形运算3.2. 小数运算 ing4. 自增自减4.1. a与a4.2. 自加1. shell算数运算的特点 Shell 和其它编程语言不同,Shell 不能直接进行算数运算,必须使用数学计算命令。Shell只支持整数运算&#…