日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

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

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

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

輸出

1、

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

print('hello, world') hello, world

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

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()也可以打印整數(shù),或者計算結(jié)果:

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

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

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

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

變量

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

a = 123 # a是整數(shù)print(a)a = 'ABC' # a變?yōu)樽址?/span>print(a)

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

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

和靜態(tài)語言相比,動態(tài)語言更靈活,就是這個原因。

List列表

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

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

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

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

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

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

classmates[-1] 'Tracy'

以此類推,可以獲取倒數(shù)第2個、倒數(shù)第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

當(dāng)然,倒數(shù)第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']

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

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

list里面的元素的數(shù)據(jù)類型也可以不同,比如:

L = ['Apple', 123, True]

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

L = []len(L)0

tuple元組

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

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

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

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

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

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

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

t = (1)t1

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

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

t = (1,)t(1,)

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

條件判斷

if語句的完整形式是:

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

比如:

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

循環(huán)

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

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

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

MichaelBobTracy

所以for x in ...循環(huán)就是把每個元素代入變量x,然后執(zhí)行縮進塊的語句

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

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

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

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

第二種循環(huán)是while循環(huán),比如我們要計算100以內(nèi)所有奇數(shù)之和,可以用while循環(huán)實現(xiàn):

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

===== 數(shù)據(jù)類型轉(zhuǎn)換 =====

Python內(nèi)置的常用函數(shù)還包括數(shù)據(jù)類型轉(zhuǎn)換函數(shù),比如int()函數(shù)可以把其他數(shù)據(jù)類型轉(zhuǎn)換為整數(shù):

>>> 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

===== 函數(shù) =====

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

我們先寫一個計算x2的函數(shù):

def power(x):return x * x

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

當(dāng)我們調(diào)用power函數(shù)時,必須傳入有且僅有的一個參數(shù)x:

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

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

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

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

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

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

修改后的power(x, n)函數(shù)有兩個參數(shù):x和n,這兩個參數(shù)都是位置參數(shù),調(diào)用函數(shù)時,傳入的兩個值按照位置順序依次賦給參數(shù)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,唯一區(qū)別是tuple不可變。因此,tuple也可以用切片操作,只是操作的結(jié)果仍是tuple:

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

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

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

對象

Python是面向?qū)ο?/span>編程的,比如一個LED燈

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

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


模塊的使用

什么是模塊?

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

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

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

這個是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函數(shù)。比如上面的程序可以寫成:

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

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

如何添加自定義模塊?

之前我們提到了,OpenMV是有文件系統(tǒng)的。

文件系統(tǒng)的根目錄存在一個main.py,代碼執(zhí)行的當(dāng)前目錄就是根目錄。

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

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

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

import pid

就可以引入pid模塊了了。或者通過:

from pid import PID

這就是引入了PID類。


總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲一区二区免费视频 | 96国产视频| 亚洲一区二区日韩欧美 | 最新中文字幕视频 | 成人一级影视 | 奇米影视777在线观看 | japanese国产打屁股网站 | 精品国产aⅴ一区二区三区四川人 | 亚洲视频中文 | 好紧好爽再浪一点视频 | 91日韩| 久久男人天堂 | 国产卡一卡二卡三无线乱码新区 | 强开小受嫩苞第一次免费视频 | 在线观看亚洲一区 | jlzzjlzz亚洲女人18 | 爱上av| 国产婷婷色综合av蜜臀av | 美国黄色一级视频 | 鲁鲁狠狠狠7777一区二区 | 精品一区二区三区视频在线观看 | 久久国产在线观看 | 日韩欧美高清在线视频 | 国产精品污www一区二区三区 | 久久不卡视频 | 色人阁五月 | 日韩精品人妻一区二区中文字幕 | 第一次破处视频 | 一本色道久久88综合日韩精品 | 国产大片av| 天天操天天玩 | 国产91精品一区二区 | 舐め犯し波多野结衣在线观看 | 国产在线观看网站 | 中文字幕无线码一区 | 成人午夜高清 | 亚洲第十页 | 这里只有精品66 | 黄色免费网页 | 女人扒开屁股让男人桶 | 天天干天天日夜夜操 | 134vcc影院免费观看 | 国产精品夜夜夜爽张柏芝 | 成人在线你懂的 | 91成人免费在线视频 | 久久99精品波多结衣一区 | 亚洲免费天堂 | 欧美成人视| 99re这里只有精品首页 | 黄色a区 | 精品国产一区二区三区久久久蜜月 | 免费av在线电影 | 俄罗斯美女av| av成人 | 日产精品久久久久久久蜜臀 | 啪啪av网| 久久99久久99精品免观看粉嫩 | 2019最新中文字幕 | 午夜性色福利影院 | 欧美色综合色 | 很污的网站 | 中国大陆一级片 | 蜜桃av一区 | 日韩av在线直播 | 日日夜夜人人 | 99精品一级欧美片免费播放 | 日日碰狠狠添天天爽无码av | 欧美a视频| 精品国产乱码久久久久久久软件 | 欧美日韩激情一区 | 懂色av一区二区三区免费观看 | 国产一区二区精品在线 | 激情文学欧美 | 污黄视频在线观看 | 少妇性生活视频 | 男女网站在线观看 | 日不卡| 亚洲福利在线观看 | 精品国产av色一区二区深夜久久 | 国产福利精品在线观看 | 中文字幕日韩精品在线观看 | 在线看不卡av | 美女福利视频在线 | 亚洲我射 | 国内精品久久久久久 | 亚洲自拍另类 | 国产露脸91国语对白 | 日本欧美在线观看 | 4438全国成人免费 | 天堂视频免费看 | 懂色av一区二区三区四区五区 | 精品国产乱码久久久久久蜜臀网站 | 精品黄色片 | 97se亚洲 | 成人区人妻精品一熟女 | 五月婷婷丁香 | 婷婷丁香综合网 | 久草影视在线 | 丰满岳妇伦在线播放 |