日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Python语法-1-变量、输出、List列表、tuple元组、条件判断和循环等重要基础知识

發布時間:2024/1/8 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python语法-1-变量、输出、List列表、tuple元组、条件判断和循环等重要基础知识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

針對Openmv3上的Python應用(摘錄帶修改)

輸出

1、

用print()在括號中加上字符串,就可以向屏幕上輸出指定的文字。比如輸出'hello, world',用代碼實現如下:

print('hello, world') hello, world

print()函數也可以接受多個字符串,用逗號“,”隔開,就可以連成一串輸出:

print('The quick brown fox', 'jumps over', 'the lazy dog') The quick brown fox jumps over the lazy dog

print()會依次打印每個字符串,遇到逗號“,”會輸出一個空格,因此,輸出的字符串是這樣拼起來的:

The quick brown fox jumps over the lazy dog

print()也可以打印整數,或者計算結果:

print(300) 300 print(100 + 200) 300

因此,我們可以把計算100 + 200的結果打印得更漂亮一點:

print('100 + 200 =', 100 + 200) 100 + 200 = 300

注意,對于100 + 200,Python解釋器自動計算出結果300,但是,'100 + 200 ='是字符串而非數學公式,Python把它視為字符串.

變量

在Python中,等號=是賦值語句,可以把任意數據類型賦值給變量,同一個變量可以反復賦值,而且可以是不同類型的變量,例如:

a = 123 # a是整數print(a)a = 'ABC' # a變為字符串print(a)

這種變量本身類型不固定的語言稱之為動態語言,與之對應的是靜態語言。靜態語言在定義變量時必須指定變量類型,如果賦值的時候類型不匹配,就會報錯。例如Java是靜態語言,賦值語句如下(// 表示注釋):

int a = 123; // a是整數類型變量 ,靜態語言a = "ABC"; // 錯誤:不能把字符串賦給整型變量

和靜態語言相比,動態語言更靈活,就是這個原因。

List列表

Python內置的一種數據類型是列表:list。list是一種有序的集合,可以隨時添加和刪除其中的元素。 比如,列出班里所有同學的名字,就可以用一個list表示:

classmates = ['Michael', 'Bob', 'Tracy']classmates ['Michael', 'Bob', 'Tracy']

變量classmates就是一個list。用len()函數可以獲得list元素的個數:

len(classmates) 3

用索引來訪問list中每一個位置的元素,記得索引是從0開始的:

classmates[0] 'Michael' classmates[1] 'Bob' classmates[2] 'Tracy' classmates[3] Traceback (most recent call last):File "<stdin>", line 1, in <module> IndexError: list index out of range

當索引超出了范圍時,Python會報一個IndexError錯誤,所以,要確保索引不要越界,記得最后一個元素的索引是len(classmates) - 1。

如果要取最后一個元素,除了計算索引位置外,還可以用-1做索引,直接獲取最后一個元素:

classmates[-1] 'Tracy'

以此類推,可以獲取倒數第2個、倒數第3個:

classmates[-2] 'Bob' classmates[-3] 'Michael' classmates[-4] Traceback (most recent call last):File "<stdin>", line 1, in <module>IndexError: list index out of range

當然,倒數第4個就越界了。

list是一個可變的有序表,所以,可以往list中追加元素到末尾:

classmates.append('Adam')classmates ['Michael', 'Bob', 'Tracy', 'Adam']

也可以把元素插入到指定的位置,比如索引號為1的位置:

classmates.insert(1, 'Jack')classmates ['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']

刪除list末尾的元素,用pop()方法:

classmates.pop() 'Adam' classmates ['Michael', 'Jack', 'Bob', 'Tracy']

要把某個元素替換成別的元素,可以直接賦值給對應的索引位置

classmates[1] = 'Sarah' classmates['Michael', 'Sarah', 'Tracy']

list里面的元素的數據類型也可以不同,比如:

L = ['Apple', 123, True]

如果一個list中一個元素也沒有,就是一個空的list,它的長度為0:

L = []len(L)0

tuple元組

另一種有序列表叫元組:tuple。tuple和list非常類似,但是tuple一旦初始化就不能修改,比如同樣是列出同學的名字:

classmates = ('Michael', 'Bob', 'Tracy')

現在,classmates這個tuple不能變了,它也沒有append(),insert()這樣的方法。其他獲取元素的方法和list是一樣的,你可以正常地使用classmates[0],classmates[-1],但不能賦值成另外的元素。

不可變的tuple有什么意義?因為tuple不可變,所以代碼更安全。如果可能,能用tuple代替list就盡量用tuple。

tuple的陷阱:當你定義一個tuple時,在定義的時候,tuple的元素就必須被確定下來,比如:

t = (1, 2)t(1, 2)

但是,要定義一個只有1個元素的tuple,如果你這么定義:

t = (1)t1

定義的不是tuple,t是整型變量,變量t的值為1!這是因為括號()既可以表示tuple,又可以表示數學公式中的小括號,這就產生了歧義,因此,Python規定,這種情況下,按小括號進行計算,計算結果自然是1。

所以,只有1個元素的tuple定義時必須加一個逗號,,來消除歧義:

t = (1,)t(1,)

Python在顯示只有1個元素的tuple時,也會加一個逗號,,以免你誤解成數學計算意義上的括號。

條件判斷

if語句的完整形式是:

if <條件判斷1>:<執行1> elif <條件判斷2>:<執行2> elif <條件判斷3>:<執行3> else:<執行4>

比如:

age = 20 if age >= 6:print('teenager') elif age >= 18:print('adult') else:print('kid')

循環

Python的循環有兩種,一種是for...in循環,依次把list或tuple中的每個元素迭代出來,看例子:

names = ['Michael', 'Bob', 'Tracy'] for name in names:print(name)

執行這段代碼,會依次打印names的每一個元素:

MichaelBobTracy

所以for x in ...循環就是把每個元素代入變量x,然后執行縮進塊的語句。

如果要計算1-100的整數之和,從1寫到100有點困難,幸好Python提供一個range()函數,可以生成一個整數序列,再通過list()函數可以轉換為list。比如range(5)生成的序列是從0開始小于5的整數

list(range(5))[0, 1, 2, 3, 4]

range(101)就可以生成0-100的整數序列,計算如下:

sum = 0 for x in range(101):sum = sum + x print(sum)

第二種循環是while循環,比如我們要計算100以內所有奇數之和,可以用while循環實現:

sum = 0 n = 99 while n > 0:sum = sum + nn = n - 2 print(sum)

===== 數據類型轉換 =====

Python內置的常用函數還包括數據類型轉換函數,比如int()函數可以把其他數據類型轉換為整數:

>>> int('123') 123 >>> int(12.34) 12 >>> float('12.34') 12.34 >>> str(1.23) '1.23' >>> str(100) '100' >>> bool(1) True >>> bool('') False

===== 函數 =====

在Python中,定義一個函數要使用def語句,依次寫出函數名、括號、括號中的參數和冒號:,然后,在縮進塊中編寫函數體,函數的返回值用return語句返回。

我們先寫一個計算x2的函數:

def power(x):return x * x

對于power(x)函數,參數x就是一個位置參數。

當我們調用power函數時,必須傳入有且僅有的一個參數x:

>>> power(5)25>>> power(15)225

現在,如果我們要計算x3怎么辦?可以再定義一個power3函數,但是如果要計算x4、x5……怎么辦?我們不可能定義無限多個函數。

你也許想到了,可以把power(x)修改為power(x, n),用來計算xn,說干就干:

def power(x, n):s = 1while n > 0:n = n - 1s = s * xreturn s

對于這個修改后的power(x, n)函數,可以計算任意n次方:

>>> power(5, 2)25>>> power(5, 3)125

修改后的power(x, n)函數有兩個參數:x和n,這兩個參數都是位置參數,調用函數時,傳入的兩個值按照位置順序依次賦給參數x和n。

切片

取一個list或tuple的部分元素是非常常見的操作。比如,一個list如下:

>>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']

取前3個元素,用一行代碼就可以完成切片:

>>> L[0:3]['Michael', 'Sarah', 'Tracy']

L[0:3]表示,從索引0開始取,直到索引3為止,但不包括索引3。即索引0,1,2,正好是3個元素。

如果第一個索引是0,還可以省略:

>>> L[:3]['Michael', 'Sarah', 'Tracy']

也可以從索引1開始,取出2個元素出來:

>>> L[1:3]['Sarah', 'Tracy']

tuple也是一種list,唯一區別是tuple不可變。因此,tuple也可以用切片操作,只是操作的結果仍是tuple:

>>> (0, 1, 2, 3, 4, 5)[:3](0, 1, 2)

字符串'xxx'也可以看成是一種list,每個元素就是一個字符。因此,字符串也可以用切片操作,只是操作結果仍是字符串:

>>> 'ABCDEFG'[:3]'ABC'

對象

Python是面向對象編程的,比如一個LED燈

from pyb import LEDred_led = LED(1) red_led.on()

LED是一個,red_led就是一個對象,可以對這個對象進行操作,比如點亮on,關掉off,查看value


模塊的使用

什么是模塊?

隨著代碼的增多,在一個文件里的代碼會越來越長,越來越難看懂。

為了編寫可維護的代碼,我們把很多函數分組,放到不同的文件里。在Python中,一個.py文件就稱之為一個模塊(Module)。

模塊有什么好處?復用代碼方便!如果我寫了一個模塊,你也寫了一個模塊,我們就有了兩個模塊。我們把這些模塊都組織起來,大家就可以少寫很多代碼了!

這個是OpenMV的模塊庫,包含常見的模塊。?https://github.com/SingTown/OpenMV-lib

如何使用模塊?

import pybred_led = pyb.LED(1)red_led.on()

import pyb就是引入pyb這個模塊。通過import語句,就可以引入模塊。

還有from xxx import ooo 的語句,意思是通過xxx模塊引入ooo類,或者通過xxx模塊引入ooo函數。比如上面的程序可以寫成:

from pyb import LEDred_led = LED(1)red_led.on()

這就是通過pyb的模塊來引入LED類了。

如何添加自定義模塊?

之前我們提到了,OpenMV是有文件系統的。

文件系統的根目錄存在一個main.py,代碼執行的當前目錄就是根目錄。

所以我們把模塊的文件復制到OpenMV的“U盤”里就可以。如圖:

這里的pid.py只是舉一個舉例。

我把pid.py復制到了U盤的根目錄下。那么在程序中:

import pid

就可以引入pid模塊了了?;蛘咄ㄟ^:

from pid import PID

這就是引入了PID類。


總結

以上是生活随笔為你收集整理的Python语法-1-变量、输出、List列表、tuple元组、条件判断和循环等重要基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。