代碼:
import kuihua,e32,audio
def cn(x):
return x.decode("utf-8")
kuihua.app.body=m=kuihua.Text()
txt0=cn("親愛的\r\n")
txt1=cn("這是我用程序?qū)懡o你的第一封信\r\n")
txt2=cn("你可知道我是多么的愛你\r\n")
txt3=cn("以下省略500字,請(qǐng)同學(xué)們自由發(fā)揮")
for i in range(4):
if(i==0):
le=txt0
if(i==1):
le=txt1
if(i==2):
le=txt2
if(i==3):
le=txt3
for j in le:
m.add(j)
e32.ao_sleep(0.1)
audio.say(le)
for i in range(100):
if kuihua.query(cn("親愛的\n你愛我嗎?"),"query"):
kuihua.note(cn("謝謝你這么愛我\n"),"conf")
break
else:
kuihua.note(cn("因?yàn)槟闼o賴\n程序無法選擇該選項(xiàng)\n請(qǐng)重新選擇"),"error")
kuihua.note(cn("程序即將退出\n"),"info")
kuihua.app.set_exit()
break
這個(gè)語(yǔ)句功能比較簡(jiǎn)單,但也是很常用的,他的作用就是停止當(dāng)前的循環(huán),比如你原本循環(huán)100次的,當(dāng)執(zhí)行到這條語(yǔ)句的時(shí)候,程序就會(huì)停止當(dāng)前的循環(huán),然后去執(zhí)行其他的代碼
通俗點(diǎn)理解就是:當(dāng)你準(zhǔn)備跑100米(for循環(huán)),而我在你跑50米的時(shí)候喊停(break),你就停下來繼續(xù)做其它事
e32.ao_sleep(0.1)
這是暫停的函數(shù),后面的0.1表示暫停0.1秒,這個(gè)函數(shù)需要加入e32模塊
其他全是我們用過的函數(shù)了,現(xiàn)在我來給大家講講編程的運(yùn)行原理吧!
程序是按照源碼的前后順序不停向下執(zhí)行的,當(dāng)?shù)谝粭l執(zhí)行完了以后就會(huì)向下一條執(zhí)行:
比如:
print 1
print 2
在程序里會(huì)先執(zhí)行第一條,就是把1打印出來,打印出來以后也就相當(dāng)于這個(gè)語(yǔ)法執(zhí)行完了,執(zhí)行完這一條以后就往下執(zhí)行,就是對(duì)2的打印了
另外對(duì)于加入循環(huán)的代碼,新手可能會(huì)比較難理解,在這里我也給大家講講
一般在循環(huán)里面我們都會(huì)加入縮進(jìn),所以看起來好像循環(huán)有很多行代碼一樣,如果大家換個(gè)觀點(diǎn)就會(huì)很好理解了,比如我們不使用縮進(jìn)的,像
for i in u"lexun" :
print i
不使用縮進(jìn)的,for循環(huán)也只是一行代碼,所以要等執(zhí)行完這端for代碼以后才會(huì)在繼續(xù)往下執(zhí)行!
還有一個(gè)就是自建函數(shù)的,像
def le():
print u"lexun"
print u"wap"
le()
因?yàn)槲覀兦懊嬷皇嵌x一個(gè)函數(shù),而不是去調(diào)用他,所以程序在第一行是不會(huì)對(duì)他執(zhí)行的,只有你調(diào)用他的時(shí)候程序才會(huì)去執(zhí)行,想上面這個(gè)例子就是先打印"wap",打印完了繼續(xù)向下執(zhí)行,調(diào)用了le()函數(shù),定義函數(shù)一定要在調(diào)用函數(shù)的上面,定義其實(shí)也就是先加載到系統(tǒng),如果都沒有被加載到系統(tǒng),你又怎么調(diào)用得到呢
程序的運(yùn)行原理非常重要,大家要多試驗(yàn)幾遍,多看幾遍,好讓自己盡快掌握!
我的教程比較傾重于后期的開發(fā),因?yàn)榫幊汤锩?,你只懂用函?shù)是沒有用的,只有你掌握了思路,掌握了算法,才做得出一個(gè)好程序。
同時(shí)也希望大家在學(xué)習(xí)的過程中不要著急,遇到問題要嘗試下自己解決,要有點(diǎn)鉆研的精神,這樣能幫助你更快的掌握編程!