第二週學習--基本資料型別
上一週我們認識了基本的python程式結構,知道了python語法以及練習了一道溫度轉換問題。相信大家和我一樣對python已經有一個初步的認識了,那麼這一週,我們繼續學習python的內容吧。
基本數字型別
首先我們開始認識一下基本的數字型別吧:
- 整數型別
- 浮點數型別
- 複數型別
整數型別
1 整數型別其實與數學中的整數是一樣的定義,整數型別包括正整數,負整數,沒有取值範圍。
pow(x,y),pow()函式,用來計算x的y次方
2 整數型別還有四種進位制關係:
- 十進位制 100 99 -125
- 二進位制 0101001101 001110101
- 八進位制 以0o或0O開頭 0o123, -0O456
- 十六進位制 以0x或者0X開頭 0x9a
浮點數型別
- 帶有小數點以及小數的數字
- 其取值範圍基本無限制
這裡需要注意一下浮點數之間的運算會存在不定尾數的情況,不是語言的bug,是很多程式設計都會出現的情況。例如。
0.1 + 0.3 = 0.4
但是 0.1 + 0.2 = 0.30000000004
就是因為二進位制與十進位制轉換的問題:
0.1 0.00011001100110011001100110011001100110011001100110011010 (二進位制表示) 53位二進位制表示小數部分,約10-16
0.1000000000000000055511151231257827021181583404541015625 (十進位制表示)
0.1 + 0.2 二進位制表示小數,可以無限接近,但不完全相同 結果無限接近0.3,但可能存在尾數
複數型別
複數型別與數學中複數的定義相同,大家可先了解一下,日後我們用到再去具體講解。
數字運算運算子
在程式設計中對於數字的操作是非常重要的,而數字之間的運算也是最常見的操作,對於掌握數字操作是一個很好地基礎。
- x + y x與y相加
- x - y x與y相減
- x * y x與y相乘
- x / y x與y相除
- x // y x與y整數除,x與y之整數商 10//3結果是3
- +X 表示 x的本身
- -X表示負的X
- x%y 餘數,取模運算 10%3 為 1
數字運算相關函式
- abs() 絕對值函式 abs(-10) = 10
- divmod(x,y) 取餘 商函式 同時輸出兩個數餘和商divmod(10,3) = (3,1)
- pow(x, y)冪函式
- round(x[, d]) 四捨五入,d是保留小數位數,預設值為0 round(-10.123, 2) 結果為 -10.12
- max(x1,x2,xn)最大值函式 輸出其中最大的一個
- min(x1,x2,xn)最小值函式 輸出其中最小的一個
- int(x) 將X變成整型
- float(x) 將X變為浮點型
- complex(x)將X變成複數型別
例項分析–天天向上的力量
大家可以看下面這個例子:
一年365天,每天進步1‰,累計進步多少呢? 1.001365
一年365天,每天退步1‰,累計剩下多少呢? 0.999365
那麼如何透過程式將問題解決呢?
dayup = pow(1.001,565)#每天進步千分之一
daydown = pow(0.999,365)#每天退步千分之一
print('向上的值為:{:.2f},向下的值為:{:.2f}'.format(dayup,daydown))
我們再來思考一個問題:
一年365天,一週5個工作日,每天進步1%
一年365天,一週2個休息日,每天退步1%
這種工作日的力量,如何計算呢
dayup = 1.0 # 定義一個初始進步值
dayfoctor = 0.01 #定義每天進步百分之一
for i in range(365):#每年365天 建立一個for迴圈
if i % 7 in [0,6]: #取模運算
dayup = dayup*(1-dayfoctor)
else:
dayup = dayup*(1+dayfoctor)
print('工作日的力量:{:.2f}'.format(dayup))
(執行結果) 工作日的力量:4.63
for i in range(365):
if i % 7 in [0,6]:
分析這段程式碼,我們可以知道 建立一個for迴圈,i 是進步的天數,可以自動迴圈一年。if i % 7 in [0,6],對 i 進行取模運算,如果餘數為0則說明為為週末,如果餘數為6則說明為週六,就是退步的時間。
那我們接著看這個問題:
工作日模式要努力到什麼水平,才能與每天努力1%一樣?
A君: 一年365天,每天進步1%,不停歇
B君: 一年365天,每週工作5天休息2天,休息日下降1%,要多努力才能追上A呢?
def dayup(df):#建立函式
dayup = 1.0#設定初始值
for i in range(365):
if i % 7 in [0,6]:
dayup = dayup*(1 - 0.01)
else:
dayup = dayup*(1 + df)
return dayup
dayfoctor = 0.01
while dayup(dayfoctor) < 37.2:#如果一年的增長值小於A的進步則繼續執行
dayfoctor += 0.001
print('工作日需要努力:{:.3f}'.format(dayfoctor))
這個程式碼借鑑了上一問的程式碼,但是為了判斷是否追上了A,所以加入了while語句,用作與判斷,透過while我們可以讓程式自己判斷是否超過了A,如果沒有超過則進步值自增0.001,如果超過A,則跳出程式,結束執行。
好了,透過我們今天的學習,我們知道了基本的數字型別,還有數字操作的一些知識,並且透過了一個例項來研究數字操作。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4550/viewspace-2825567/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python學習教程:基本資料型別Python資料型別
- python學習第二天之基本資料型別及其方法Python資料型別
- Python3學習(基本資料型別-集合-字典-基本資料型別總結)Python資料型別
- PHP基本語法學習 [資料型別]PHP資料型別
- js學習 第二篇資料型別JS資料型別
- Python3學習-(基本資料型別-列表)Python資料型別
- Python3學習-(基本資料型別-字串)Python資料型別字串
- Go語言學習(4) - 基本資料型別Go資料型別
- Python學習筆記2:基本資料型別Python筆記資料型別
- Python學習教程之基本資料型別字串Python資料型別字串
- GO語言學習——基本資料型別字串Go資料型別字串
- hive學習筆記之一:基本資料型別Hive筆記資料型別
- python學習筆記1—python的基本資料型別Python筆記資料型別
- 基本資料型別資料型別
- 初學Python(2)基本資料型別Python資料型別
- js資料型別之基本資料型別和引用資料型別JS資料型別
- rust學習三、基本型別Rust型別
- 學習變數的目的及基本資料型別介紹變數資料型別
- 基本資料型別與字串型別資料型別字串
- Java基本資料型別Java資料型別
- JavaScript基本資料型別JavaScript資料型別
- python基本資料型別Python資料型別
- 003基本資料型別資料型別
- MySQL基本資料型別MySql資料型別
- Java 基本資料型別Java資料型別
- JAVA中基本資料型別和引用資料型別Java資料型別
- Python3學習筆記1,基本資料型別-Number、strPython筆記資料型別
- Flutter學習筆記(3)--Dart變數與基本資料型別Flutter筆記Dart變數資料型別
- 一個 JSer 的 Dart 學習日誌(五):基本資料型別JSDart資料型別
- 深入學習JavaScript資料型別JavaScript資料型別
- Python學習之資料型別Python資料型別
- TypeScript學習(一)—— 資料型別TypeScript資料型別
- TypeScript學習第二天:認識ts的資料型別TypeScript資料型別
- Java中的基本資料型別與引用資料型別Java資料型別
- Redis資料型別基本操作Redis資料型別
- Java的基本資料型別Java資料型別
- java Atomic 基本資料型別Java資料型別
- 基本資料型別,for迴圈資料型別