廬山派K230學習日記2 MicroPython基礎

MicroPython文檔:?https://docs.micropython.org/

MicroPython是編程語言 Python3 的精簡高效實現,語法和 Python3 保持一致,但只實現了 Python 標準庫的一小部分,并且經過優化,適用于物聯網 (IoT)、消費電子和嵌入式系統等領域。,所以我們在使用 MicroPython 需要了解其語法,其有以下特點:

輕量級設計

  • MicroPython 是專為運行在微控制器上的 Python 實現,既有精簡的內存占用也有高效的性能表現。

Python 語法支持

  • 盡管是標準python輕量級的實現,MicroPython 支持大部分 Python 3 的核心語法和許多標準庫。所以學習成本極低,對熟悉 Python 的開發者非常友好。

硬件訪問能力

  • MicroPython 提供訪問底層硬件的接口,比如 GPIO(通用輸入輸出)、I2C、SPI、PWM、ADC(模擬數字轉換)等,方便直接控制硬件。

交互式 REPL

  • 廬山派K230通過虛擬串口提供了?交互式解釋器?REPL(讀取(Read)-運算(Eval)-輸出(Print)-循環(Loop))接口,可以通過串口實現實時交互,幫助調試和測試代碼。可以把它類比理解為電腦上的控制臺。

1 注釋?

在Python中使用"#"進行單行注釋,使用三個單引號 '''...''' 或3個雙引號 """...""" 進行多行注釋。注釋對于代碼的可讀性和維護都非常重要。

#這個是單行注釋'''
這個是多行注釋
'''
"""
這個也是多行注釋
"""

需要注意的是,在MicroPython中是不需要在語句的結尾加分號的。

2 運算符?

算術(數學)運算符:

下表中說明的a=10,b=5

3 數據類型轉換?

4 字符串?

字符串的三種定義方式-> 單引號定義法; 雙引號定義法; 三引號定義法;

其中,單引號定義法,可以內含雙引號;

雙引號定義法可以內含單引號 ;并且可以使用轉義字符(\)來將引號解除效用,變成普通字符串

name = '立創開發板'            #單引號定義法
name = "立創開發板"            #雙引號定義法
name = """立創開發板"""        #三引號定義法

4.1 字符串拼接?

name = 'LCKFB'
print("hello " + name)

注意:字符串無法和非字符串變量進行拼接

name = 'LCKFB'
print("hello " + name, end='')

默認print語句輸出內容會自動換行,在print語句中,加上 end=‘’ 即可輸出不換行了。

使用print()函數可以將數據打印到終端。

4.2 字符串格式化?

我們可以通過如下語法,完成字符串和變量的快速拼接。

如下代碼,完成字符串、整數、浮點數,三種不同類型變量的占位。

name = "張三"
age = 18
weight = 140.54
message = "我叫%s,今年%d歲,體重%f斤" % (name, age, weight)
print(message)

注意:這種寫法不做精度控制也不理會類型。

5 判斷語句?

if語句的基本格式

if age >= 18:print("你是一個成年人了")

歸屬于if判斷的代碼語句塊,需在前方填充4個空格縮進。

Python通過縮進判斷代碼塊的歸屬關系。

if...else語句格式

if age >= 18:print("你的年齡大于等于18歲")
elif age > 10:print("你的年齡大于10歲并且小于18歲")
else:print("你的年齡小于等于10歲")

6 循環語句?

6.1 while循環?

i = 0
while i < 10:print("i = %d" % i)i += 1

6.2 for循環?

 name = "LCKFB"
for x in name:print(x)

語法一:range(num)

range語句是用于獲得一個數字序列。指的是從0開始,到num結束(不含num本身)

for x in range(5):print(x)

圖 0

語法二:range(num1, num2)

for x in range(5, 10):print(x)

指的是從num1開始,到num2結束(不含num2本身)

7 函數?

函數是組織好的,可重復使用的,用來實現特定功能的代碼段。 函數的定義:

def 函數名(傳入參數):函數體return 返回值

注意: 如果函數沒有使用return語句返回數據,會返回None這個字面量;在if判斷中,None等同于False;定義變量,但暫時不需要變量有具體值,可以用None來代替。

使用 global關鍵字 可以在函數內部聲明變量為全局變量,相當于C語言里的static。

def test():global numnum = 200print(num)

8 類和繼承?

在Python中,可以通過定義類來實現面向對象編程。類包含數據和函數,數據保存在類的屬性中,而函數保存在類的方法中。通過創建類,可以生成相同類型(或者父類)的多個對象,它們共享相同的屬性和方法。

繼承是指一個類可以派生出另一個子類,而子類繼承了父類的屬性和方法。子類可以進一步重載父類的方法或者添加新的屬性和方法,從而實現對父類的擴展。

  1. 定義類:

使用 class 關鍵字定義一個類,并使用代碼塊來編寫類的屬性和方法。例如:

class MyClass:def __init__(self, param):self.param = paramdef method(self):# 方法實現pass
  1. 實例化對象:

通過調用類的構造函數,可以創建類的實例(對象)。例如:

my_object = MyClass("value")
  1. 訪問屬性和調用方法:

使用對象名后跟 . 來訪問對象的屬性和方法。例如:

value = my_object.param
my_object.method()
  1. 繼承:

在 microPython 中,您可以使用繼承來創建一個類從另一個類繼承屬性和方法。通過繼承,子類可以獲得父類的特征并添加自己的特定功能。例如:

class ChildClass(MyClass):def __init__(self, param, child_param):super().__init__(param)self.child_param = child_paramdef child_method(self):# 子類方法實現pass

在上面的示例中,ChildClass 繼承了 MyClass,并添加了自己的屬性和方法。super().init(param) 調用父類的構造函數。

  1. 多重繼承: microPython 支持多重繼承,即一個類可以從多于一個父類繼承。多重繼承可通過在類定義中列出多個父類來實現。例如:
class ChildClass(ParentClass1, ParentClass2): # 類定義
pass

這些是 microPython 中類和繼承的基本用法。類和繼承是面向對象編程的核心概念,可以幫助您組織和抽象代碼,實現代碼的重用和擴展性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64833.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64833.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64833.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《計算機組成及匯編語言原理》閱讀筆記:p177-p177

《計算機組成及匯編語言原理》學習第 13 天&#xff0c;p177-p177 總結&#xff0c;總計 1 頁。 一、技術總結 1.real mode A programming model where the program has access to the entire capability of the machine, bypassing security and memory management. Useful…

2000-2020年各省財政一般預算支出面板數據

2000-2020年各省財政一般預算支出面板數據 1、時間&#xff1a;2000-2020年 2、來源&#xff1a;國家統計局 3、指標&#xff1a;年份、省份、地方財政一般預算支出 4、范圍&#xff1a;31省 指標解釋&#xff1a;地方財政一般預算支出?是指地方ZF根據預算安排&#xff0…

python小項目:給復制出來的段落前添加星號

給復制出來的段落前添加星號 最終效果二、實現步驟2.1 編寫python腳本2.2 批處理腳本2.3 運行腳本 三、用到知識3.1 pyperclip 模塊 最終效果 說明&#xff1a;復制四段內容&#xff08;段落實際不做限制&#xff09;&#xff0c;在windows終端輸入 bulletPointAdder&#xff0…

【LeetCode Hot100 二分查找】搜索插入位置、搜索二維矩陣、搜索旋轉排序數組、尋找兩個正序數組的中位數

二分查找 搜索插入位置搜索二維矩陣在排序數組中查找元素的第一個和最后一個位置尋找旋轉排序數組中的最小值搜索旋轉排序數組尋找兩個正序數組的中位數&#xff08;hard&#xff09; 搜索插入位置 給定一個排序數組和一個目標值&#xff0c;在數組中找到目標值&#xff0c;并…

24.Java 新特性擴展(重復注解、類型注解)

一、重復注解 1、基本介紹 自從 JDK 5 引入注解以來&#xff0c;注解的使用開始流行&#xff0c;在各個框架中被廣泛使用 不過注解有一個很大的限制&#xff0c;在同一個地方不能多次使用同一個注解 JDK 8 引入了重復注解的概念 2、具體實現 &#xff08;1&#xff09;自…

后端java開發路由接口并部署服務器(四)

一、安裝IntelliJ IDEA&#xff0c;安裝包下載 1、官網下載 2、網盤資源 安裝包下載完成后進行傻瓜式下一步安裝就可以了 打開IntelliJ IDEA&#xff0c;輸入網盤資源文件內容 三、漢化處理 插件搜索chinese&#xff0c;就會找到相應的插件安裝重啟軟件即可 四、新建后端j…

Vue.js 表單驗證實戰:一個簡單的登錄頁面

修改日期備注2025.1.2初版 一、前言 Vue.js 學習第一天——學會一個帶有簡單表單驗證的登錄頁面。通過這個項目&#xff0c;會對 Vue.js 的核心概念有了更深入的理解&#xff0c;加深掌握如何運用 Vue 的一些強大特性來實現動態交互和數據處理。 二、項目的基本結構 首先&a…

MySQL 鎖那些事

Q1 : MySQL有哪些鎖,功能是什么,如何項目中使用?Q2 : 行鎖是如何實現的?什么情況下會使用行鎖?Q3 : 四種事務隔離形式的行鎖有什么不一樣?讀未提交讀提交可重復讀串行 Q4 : MySQL 的讀寫都是怎樣加鎖的?Q5 : 需要注意什么? Q1 : MySQL有哪些鎖,功能是什么,如何項目中使用…

國產文本編輯器EverEdit - 批量轉碼轉換行符

1 批量轉碼&轉換行符 1.1 應用場景 如果用戶批量在Windows編輯文件&#xff0c;要上傳到異構系統&#xff0c;如&#xff1a;Linux&#xff0c;則需要批量轉換編碼和換行符&#xff0c;此時可以使用EverEdit的批量轉碼功能。 1.2 使用方法 選擇主菜單文檔 -> 批量轉碼…

Java實現下載excel模板,并實現自定義下拉框

GetMapping("excel/download")ApiOperation(value "模板下載")public void getUserRecordTemplate(HttpServletResponse response, HttpServletRequest request) throws IOException {OutputStream outputStream response.getOutputStream();InputStream…

成立一家無人機培訓機構需要哪些基礎配置

成立一家無人機培訓機構&#xff0c;需要一系列基礎配置來確保教學質量、學員安全以及機構的正常運營。以下是根據公開發布的信息整理出的關鍵基礎配置&#xff1a; 一、場地配置 1. 飛行場&#xff1a;提供一個安全、寬敞的室外飛行環境&#xff0c;面積最好大于三千平米&…

交換機性能詳解

1. 背板帶寬 只有模塊化交換機&#xff08;擁有可擴展插槽&#xff0c;可靈活改變端口數量&#xff09;才有這個概念&#xff0c;固定端換機是沒有這個概念的。并且固定端換機的背板容量和交換容量大小是相等的。 背板帶寬是交換機的總數據處理能力&#xff0c;由硬件架構設…

讀“將計算性能調高到極致的基點秘訣”的嘗試

看到一篇文章&#xff0c;說最近閱讀LAMMPS源碼&#xff0c;悟出了很多道理。在計算性能優化這塊&#xff0c;源代碼作者很多寫法我最初不以為意&#xff0c;后來發現是作者有意為之&#xff0c;就是為了把計算性能優化到極致。做計算仿真軟件&#xff0c;也特別需要注意這些吧…

Gitea代碼倉服務搭建

特點與優勢 輕量級:Gitea是一個輕量級的Git服務,提供了快速、穩定的代碼托管和協作開發環境。它資源占用低,適合在資源受限的環境中運行。易于安裝和部署:Gitea提供了簡單易用的安裝和部署方式,支持多種安裝方式,包括二進制文件、Docker容器等,并提供了詳細的文檔和配置…

leetcode hot 小偷

class Solution(object):def rob(self, nums):""":type nums: List[int]:rtype: int"""# 使用動態規劃&#xff0c;把之前的給保存起來ans[0,nums[-1]]for i in range(1,len(nums)):ans.append(max(ans[-1],ans[-2]nums[-1*i-1]))return ans[-1]…

端口被占用

端口8080被占用 哈哈哈&#xff0c;我是因為后端項目跑錯了&#xff0c;兩個項目后端名稱太像了&#xff1b; &#xff08;1&#xff09;netstat -aon | findstr 8080&#xff0c;找到占用8080端口的進程號&#xff0c;獲取對應的進程號pid&#xff1b; &#xff08;2&#…

文件本地和OSS上傳

這里寫目錄標題 前端傳出文件后端本地存儲阿里云OSS存儲上傳Demo實現上傳ConfigurationProperties 前端傳出文件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>上傳文件</title> </head&g…

[人工智能] 結合最新技術:Transformer、CLIP與邊緣計算在提高人臉識別準確率中的應用

隨著人工智能的快速發展&#xff0c;特別是深度學習和自然語言處理領域的革命性技術&#xff0c;越來越多的前沿技術被應用于人臉識別中。Transformer架構、CLIP模型以及邊緣計算的結合&#xff0c;正成為提升人臉識別準確率和應用效能的關鍵技術路徑。特別是在多樣化場景下&am…

Python的*args和**kwargs

參考 總結&#xff1a; &#xff08;1&#xff09;*args用于在函數中處理傳遞的位置參數序列&#xff1b; &#xff08;2&#xff09;**kwargs則用于處理傳遞的關鍵字參數字典。 &#xff08;3&#xff09;示例&#xff1a; def complex_function(first, *args, **kwargs)…

Vue3 + ElementPlus動態合并數據相同的單元格(超級詳細版)

最近的新項目有個需求需要合并單元列表。ElementPlus 的 Table 提供了合并行或列的方法&#xff0c;可以參考一下https://element-plus.org/zh-CN/component/table.html 但項目中&#xff0c;后臺數據返回格式和指定合并是動態且沒有規律的&#xff0c;Element 的示例過于簡單&…