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
隨機(jī)數(shù)
函數(shù)randint(a, b) 可以用來產(chǎn)生一個(gè)a和b之間且包含a和b的隨機(jī)整數(shù)福铅,此函數(shù)在random模塊中滑黔。
函數(shù)randrange(a, b)產(chǎn)生一個(gè)在a环揽、b-1之間的隨機(jī)數(shù)歉胶,等同于randint(a, b - 1)
函數(shù)random() ?產(chǎn)生一個(gè)0<=r<=1.0的隨機(jī)浮點(diǎn)數(shù)r(不包括1.0)
給出一個(gè)好玩的例子;計(jì)算生日日期(數(shù)學(xué)原理這里就不講了粥谬,想知道的給我留言:))
#計(jì)算生日日期
day =0
question1 ="你的生日日期在這里面么?\n"+ \
"1 3 5 7\n"+ \
"9 11 13 15\n"+ \
"17 19 21 23\n"+ \
"25 27 29 31\n"+ \
"請(qǐng)輸入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"+ \
"請(qǐng)輸入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"+ \
"請(qǐng)輸入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"+ \
"請(qǐng)輸入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"+ \
"請(qǐng)輸入0代表沒有抑月,輸入1代表有"
answer =eval(input(question5))
ifanswer ==1:
day +=16
print("\n你的生日日期是:"+str(day) +"!")
運(yùn)算符的優(yōu)先級(jí)(從高到低)
+谦絮,- (一元加減運(yùn)算符)
** (指數(shù)運(yùn)算符)
not
*层皱、/赠潦、 //、% (乘瓮增、除、整除拳恋、余數(shù))
+砸捏、- (二元加減)
<、<= 梆暖、>轰驳、>= (比較)
==芭挽、!=(相等運(yùn)算符)
and
or
=、+=袜爪、-=、*=俺陋、/=腊状、//=、%=(賦值運(yùn)算符)
??注意在循環(huán)中不要使用浮點(diǎn)數(shù)值來比較相等作為控制條件缴挖,因?yàn)楦↑c(diǎn)數(shù)運(yùn)算是近似的映屋。如下例子:
#這個(gè)程序看著挺正常的同蜻,但是其實(shí)會(huì)一直運(yùn)行在循環(huán)中,因?yàn)閣hile item !=0這個(gè)判斷條件是不成立的
item=1
sum =0
while item !=0:
? ? ? ? item -=0.1
? ? ? ? sum+= item
print(sum)
那么遇到這種情況的話瘫析,可以考慮是用for循環(huán)或者使用一個(gè)整數(shù)計(jì)數(shù)來充當(dāng)哨兵值解決這個(gè)問題。
輸入輸出重定向
推薦學(xué)習(xí)博客:
http://www.cnblogs.com/turtle-fly/p/3280519.html
將輸出重定向到out.log文件咸包,同時(shí)也在控制臺(tái)(屏幕)打印
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))