Python基礎(chǔ)總結(jié)(三)(選擇、循環(huán))

To the world you may be one person, but to one person you may be the world.


可以使用int將布爾值轉(zhuǎn)換為整數(shù)

int(true) = 1

int(false) = 0

可以使用bool函數(shù)將數(shù)字值轉(zhuǎn)換成布爾值

bool(0) = false

bool(4) = true

隨機數(shù)

函數(shù)randint(a, b) 可以用來產(chǎn)生一個a和b之間且包含a和b的隨機整數(shù),此函數(shù)在random模塊中。

函數(shù)randrange(a, b)產(chǎn)生一個在a、b-1之間的隨機數(shù),等同于randint(a, b - 1)

函數(shù)random() ?產(chǎn)生一個0<=r<=1.0的隨機浮點數(shù)r(不包括1.0)

給出一個好玩的例子;計算生日日期(數(shù)學(xué)原理這里就不講了,想知道的給我留言:))


#計算生日日期

day =0

question1 ="你的生日日期在這里面么?\n"+ \

"1 3 5 7\n"+ \

"9 11 13 15\n"+ \

"17 19 21 23\n"+ \

"25 27 29 31\n"+ \

"請輸入0代表沒有,輸入1代表有"

answer =eval(input(question1))

ifanswer ==1:

day +=1

question2 ="你的生日日期在這里面么?\n"+ \

"2 3 6 7\n"+ \

"10 11 14 15\n"+ \

"18 19 22 23\n"+ \

"26 27 30 31\n"+ \

"請輸入0代表沒有,輸入1代表有"

answer =eval(input(question2))

ifanswer ==1:

day +=2

question3 ="你的生日日期在這里面么?\n"+ \

"4 5 6 7\n"+ \

"12 13 14 15\n"+ \

"20 21 22 23\n"+ \

"28 29 30 31\n"+ \

"請輸入0代表沒有,輸入1代表有"

answer =eval(input(question3))

ifanswer ==1:

day +=4

question4 ="你的生日日期在這里面么?\n"+ \

"8 9 10 11\n"+ \

"12 13 14 15\n"+ \

"24 25 26 27\n"+ \

"28 29 30 31\n"+ \

"請輸入0代表沒有,輸入1代表有"

answer =eval(input(question4))

ifanswer ==1:

day +=8

question5 ="你的生日日期在這里面么?\n"+ \

"16 17 18 19\n"+ \

"20 21 22 23\n"+ \

"24 25 26 27\n"+ \

"28 29 30 31\n"+ \

"請輸入0代表沒有,輸入1代表有"

answer =eval(input(question5))

ifanswer ==1:

day +=16

print("\n你的生日日期是:"+str(day) +"!")


運算符的優(yōu)先級(從高到低)

+,- (一元加減運算符)

** (指數(shù)運算符)

not

*、/、 //、% (乘、除、整除、余數(shù))

+、- (二元加減)

<、<= 、>、>= (比較)

==、!=(相等運算符)

and

or

=、+=、-=、*=、/=、//=、%=(賦值運算符)

??注意在循環(huán)中不要使用浮點數(shù)值來比較相等作為控制條件,因為浮點數(shù)運算是近似的。如下例子:

#這個程序看著挺正常的,但是其實會一直運行在循環(huán)中,因為while item !=0這個判斷條件是不成立的

item=1

sum =0

while item !=0:

? ? ? ? item -=0.1

? ? ? ? sum+= item

print(sum)

那么遇到這種情況的話,可以考慮是用for循環(huán)或者使用一個整數(shù)計數(shù)來充當(dāng)哨兵值解決這個問題。

輸入輸出重定向


推薦學(xué)習(xí)博客:

http://www.cnblogs.com/turtle-fly/p/3280519.html


將輸出重定向到out.log文件,同時也在控制臺(屏幕)打印

import sys

class__redirection__:

def__init__(self):

self.buff =''

self.__console__ = sys.stdout

defwrite(self, output_stream):

self.buff += output_stream

defto_console(self):

sys.stdout =self.__console__

print(self.buff)

defto_file(self, file_path):

f =open(file_path,'w')

sys.stdout = f

print(self.buff)

f.close()

defflush(self):

self.buff =''

defreset(self):

sys.stdout =self.__console__

if__name__ =="__main__":

# redirection

r_obj = __redirection__()

sys.stdout = r_obj

# get output stream

print('hello')

print('there')

# redirect to console

r_obj.to_console()

# redirect to file

r_obj.to_file('out.log')

# flush buffer

r_obj.flush()

# reset

r_obj.reset()

for循環(huán)

for v in range(4,8):

print(v)

結(jié)果是:4,5,6,7

其中,range函數(shù)有多種形式,如:range(a) ?與range(0, a)功能一樣,range(a, b, k)中k代表步長,k也可以是負(fù)數(shù)。但是range中的數(shù)必須為整數(shù)。

求最大公約數(shù)

#歐幾里得算法求最大公約數(shù)

#遞歸

def Gcd(a, b):

if b ==0:

returna

return Gcd(b, a % b)

print(Gcd(2,4))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 燈火闌珊菊花黃, 天高云淡秋水長; 窗含盈霜笛聲遠, 風(fēng)輕搖枝桂影香。
    金永輝煌閱讀 1,034評論 4 8
  • 這些天幾乎每晚都1點多才睡早上又6點多起床,其實不用弄那么晚的就是自己控制不好多看一會手機這一惡習(xí)。看手機又不是和...
    承思而行閱讀 209評論 0 0
  • 概述 隨機算法是當(dāng)前工業(yè)界和學(xué)術(shù)界都比較熱的一個話題,從機器學(xué)習(xí)、數(shù)據(jù)挖掘到現(xiàn)在熱得發(fā)燙的深度學(xué)習(xí),無一沒有隨機算...
    CodingTech閱讀 1,219評論 0 3
  • 【月末淺留】 屬于四月的人間天 仿如流水般 悄然離去 五月的鐘聲開始啟動 燕兒的翅膀 在晨間展動起來 窗外那些落葉...
    天佑居士閱讀 179評論 0 0

友情鏈接更多精彩內(nèi)容