乐学python_铁乐学python_day01-作业
第一題:使用while循環(huán)輸入 1 2 3 4 5 6 8 9 10
# 使用while循環(huán)輸入 1 2 3 4 5 6 8 9 10
count = 0
while (True) :
count = count + 1
#判斷當(dāng)count等于7的時(shí)候,返回循環(huán)最初,不執(zhí)行下面的打印等語(yǔ)句
if count == 7:
continue
print (count)
#判斷當(dāng)count等于10的時(shí)候,跳出循環(huán)。
if count == 10:
break
思路是設(shè)置一個(gè)初始值count,然后開(kāi)始循環(huán),自增1;
加if判斷語(yǔ)句,當(dāng)count為7時(shí)使用continue跳過(guò)打印7;
當(dāng)count為10時(shí),使用break中斷和跳出循環(huán)。
敲的時(shí)候出了很多規(guī)范性的錯(cuò),
比如沒(méi)有使用英文的冒號(hào),
沒(méi)有對(duì)應(yīng)縮進(jìn)區(qū)塊,
== 錯(cuò)敲成了=,這兩者的區(qū)別,
前者是比較值,后者是直接賦值。
更優(yōu)雅的寫(xiě)法應(yīng)該是while的同時(shí)將其中滿足跳出循環(huán)的條件也給上,節(jié)省代碼行數(shù),也比較優(yōu)雅易懂。
例如以下:
#計(jì)數(shù)初始為0
count = 0
#當(dāng)count小于10時(shí),進(jìn)行循環(huán),反之則是中止循環(huán),不需要用到break
while ( count < 10 ) :
count = count + 1
#當(dāng)count為7時(shí)使用continue跳過(guò)打印7;
if count == 7:
continue
print (count)
對(duì)比兩例可看出,有效代碼行數(shù)從8行節(jié)省到6行,關(guān)鍵是易讀性提高了。
第二題:求1-100的所有數(shù)的和
# 求1-100的所有數(shù)的和
# 求和,故除設(shè)置初始計(jì)數(shù)的count變量外,還應(yīng)設(shè)置多一個(gè)sum和的變量
count = 0
sum = 0
# 注意,設(shè)置滿足的條件我最初設(shè)的是小于101,結(jié)果得數(shù)把101也算進(jìn)去了,
# 排查后發(fā)現(xiàn)是count自增1,到count為99的時(shí)候再加1就是100了,條件設(shè)為小于100才是剛剛好。
while (count < 100):
#計(jì)數(shù)器自增1
count = count + 1
#和數(shù)和計(jì)數(shù)器相加
sum = sum + count
#循環(huán)中止的時(shí)候我們輸出結(jié)果,注意字符串只能和字符串拼接,所以sum要用str轉(zhuǎn)義
print (‘1-100的所有數(shù)之和為:‘+str(sum))
第三題 輸出 1-100 內(nèi)的所有奇數(shù)
odd = 1
while (odd < 101):
print (odd)
#奇數(shù)的特質(zhì)之一是從1開(kāi)始,自身加2后的數(shù)同樣也是奇數(shù)
odd = odd + 2
如果換另一種思路,從奇數(shù)的另一個(gè)特質(zhì),被2除后都余1來(lái)輸出的話會(huì)怎么樣呢?
odd = 0
while (odd < 100):
odd = odd + 1
#取余來(lái)進(jìn)行判斷,余數(shù)為1則輸出打印,不用對(duì)余數(shù)為0的情況再進(jìn)行判斷。
if (odd % 2 == 1) :
print (odd)
注意,上面敲代碼的時(shí)候我縮進(jìn)的時(shí)候混合使用了tab鍵和spaces鍵以致報(bào)錯(cuò)。
所以python在對(duì)縮進(jìn)規(guī)范這里要求挺嚴(yán)的,嗯,要優(yōu)雅,不要慌亂。
第四題:輸出1-100內(nèi)的所有偶數(shù)
# 輸出 1-100 內(nèi)的所有偶數(shù)
even = 0
while (even < 100):
even = even + 1
#對(duì)even進(jìn)行取余運(yùn)算,等于0的則打印輸出even
if even % 2 == 0:
print (even)
這題與第三題是同類(lèi)型的,不多作敘述。
第五題:求1-2+3-4+5 ... 99的所有數(shù)的和
# 求1-2+3-4+5 ... 99的所有數(shù)的和
# 計(jì)數(shù)器初始為0,和也初始為0
count = 0
sum = 0
while (count < 99):
count = count + 1
#當(dāng)count是偶數(shù)時(shí)(取余為0)就被和相減
if count % 2 == 0:
sum = sum - count
#加上continue來(lái)控制它不再執(zhí)行下面的語(yǔ)句,又周而復(fù)始進(jìn)行下一次循環(huán)
continue
#反之,奇數(shù)時(shí)直接相加
sum = sum + count
#別忘了將得出的sum結(jié)果輸出給用戶,str轉(zhuǎn)義成字符串與提示拼接。
print (‘1-2+3-4+5...99的所有數(shù)的和為:‘+str(sum))
第六題:模擬用戶登錄(三次機(jī)會(huì)重試)
# 用戶登錄(三次機(jī)會(huì)重試)
# 這里題意比較含糊,實(shí)際上現(xiàn)在還是基礎(chǔ)階段,
# 老師這題的意思是大致讓你模擬出人機(jī)交互及認(rèn)證三次
# 故定義用戶名和密碼變量如下:
username = ‘tiele‘
password = ‘ABCabc123‘
#認(rèn)證計(jì)數(shù)器初始為3
count = 3
#開(kāi)始三次認(rèn)證循環(huán)
while (count > 0):
#開(kāi)始人機(jī)交互,分別輸入用戶名和密碼
name = input ("請(qǐng)輸入用戶名:")
#需要給個(gè)pass讓用戶進(jìn)行輸入交互
pass
passwd = input ("請(qǐng)輸入密碼:")
if username == name and password == passwd :
print ("你已成功登錄")
#成功登錄后當(dāng)然要break跳出循環(huán)
break
else:
#輸錯(cuò)機(jī)會(huì)減1并給出提示
count = count - 1
print ("用戶名或密碼錯(cuò)誤,你還有"+str(count)+"次機(jī)會(huì)進(jìn)行驗(yàn)證。")
最初我做這題的時(shí)候是用了機(jī)會(huì)初始為0,增加到3則中止循環(huán)的方式,后來(lái)對(duì)照了一下同學(xué)的,感覺(jué)的確使用初始機(jī)會(huì)為3,然后能逐次-1并提示的思路人性化一點(diǎn)。
后來(lái)發(fā)覺(jué)有別的同學(xué)用的是我最初的0增到3的思路,直接提示登錄失敗,到3次時(shí)提示超過(guò)三次登錄失敗,請(qǐng)稍后重試,也是很符合常見(jiàn)的情境。
所以是感覺(jué)都可以。
至此,day1的作業(yè)就全部完成了。
2018-3-17
end
總結(jié)
以上是生活随笔為你收集整理的乐学python_铁乐学python_day01-作业的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql 查看所有表的引擎_MySQL
- 下一篇: python语音识别框架_横评:五款免费