Python入門4

#20100803
#數字 Python=================================================
#Python中數字並不是一個真正的對象類型,二是一組類似類型的分類。

#數字常量===
#Python中有4種類型的數——整數、長整數、浮點數和複數
#整數:一般意義上的整數,包含八進制(以數字0開頭)及十六進制(以0x開頭),如2009,-2009,09(八進制),0xAB(十六進制)等
#長整數:無限大小的數,在其結尾添加小寫字母l或大寫字母L,如2009000000000L
#浮點數:小數或者用E或e表示的冪,如2.9,1234e+10,105E-10
#複數:複數的虛部以字母j或J結尾,如1+2j,2.2+2.0J

#內置數學工具盒擴展:
#表達式操作符
#+、*、>>、**等。
#內置數學函數
#pow  abs
#共用模塊
#random  math

#python 表達式操作符及其程序
#在python中除了基本的算術運算符加、減、乘、除、取餘等運算符以外,還有邏輯運算符,如位移運算符、位邏輯運算符等
"""
  運算符                                描述
   **                               乘方運算符 
   *                                乘法運算符                
   /                                除法運算符
   %                                取餘運算符
   +                                加法運算符
   -                                減法運算符
   |                                位或運算符
   ^                                位異或運算符
   &                                位與運算符
   <<                               左移運算符
   >>                               右移運算符
  
Python表達式操作符及程序  
  操作符                                 描述
  yield x                           生成器函數發送協議(2.5版本新增)
  lambda args:expression            生成匿名函數
  x if y else z                     三元選擇表達式(2.5版本新增)
  x or y                            邏輯或
  x and y                           邏輯與
  not x                             邏輯非
  x < y, x <= y,x > y,x == y,x<>y   比較操作
  x != y,x is y,x is not y,x in y,x not in y  序列成員測試
"""

#需要注意的是除法運算, 如果除數和被除數都是整數,那麼結果是截調小數部分的整數
#解決的辦法是將除數和被除數任意之一加小數點,或是加小數點和零
print 5/2
print 5.0/2
#模數操作符“%”計算兩個整數的餘數
print 12 % 5
2
#混合類型自動升級:整數比長整數簡單,長整數比浮點數簡單,浮點數比複數簡單
#整數與浮點數混合時,會升級轉換爲浮點數。
print 34 + 3.1222

#手動調用內置函數來強制轉換類型
print int(3.1415)
print float(3)
print long(4)
#通常每必要這麼做,因爲混合後會自動升級,由簡單到複雜升級。

#運算符重載
#所有的pyhon操作符可以通過Python的類或C擴展類被重載(既實現),讓它工作於你所創建的對象中
"""
#變量和基本表達式
變量在它第一次賦值時創建
變量在表達式中使用將被替換爲它們的值
變量在表達式中使用以前必須已賦值
變量像對象一樣不需要在一開始進行聲明


數字顯示的格式:
>>> a = 3
>>> b = 4
>>> b / (2.0 + a)
0.80000000000000004
>>> print b / (2.0 + a)
0.8
爲什麼會不同結果:== 原因是浮點數的硬件限制,以及它無法精確地表現一些值。
>>> num = 1/3.0
>>> num
0.33333333333333331
>>> print num
0.333333333333

Str和repr顯示格式
str (打印語句) – 變換得到一種對用戶更加友好的格式
repr (默認交互式回顯) – 產生的結果看起來就像是它們是代碼。
默認的交互模式回顯和打印的區別就相當於內置repr和str函數的區別
>>> repr (num)
'0.33333333333333331'
>>> str (num)
'0.333333333333'
"""
#除法
"""
除法:傳統除法、Floor除法和真除法
Floor除法://    2.5 這個操作不考慮操作對象的類型,總會省略掉結果的小數部分,剩下最小的能整除的整數部分。
>>> (5 / 2),(5 / 2.0),(5 / -2.0),(5 / -2)
(2, 2.5, -2.5, -3)
>>> (5 // 2),(5 // 2.0),(5 // -2.0),(5 // -2)
(2, 2.0, -3.0, -3)
>>> (9 / 3),(9.0 / 3),(9 // 3),(9 // 3.0)
(3, 3.0, 3, 3.0)

真除法:總是保留小數部分,即使應用在實數上,例如 1/2 = 0.5 而不是0   1//2仍然是0
在這個變換完全採用前,可以通過特定的導入形式來使用這種未來將會採用的 “/”
>>> from __future__ import division   執行這條命令會讓”/”變成真除法

>>> from __future__ import division
>>> (5 / 2),(5 / 2.0),(5 / -2.0),(5 / -2)
(2.5, 2.5, -2.5, -2.5)
>>> (5 // 2),(5 // 2.0),(5 // -2.0),(5 // -2)
(2, 2.0, -3.0, -3)
>>> (9 / 3),(9.0 / 3),(9 // 3),(9 // 3.0)
(3.0, 3.0, 3, 3.0)
"""
#位操作
x =1      #0001
print (x << 2)  #左移2位 0100
print (x | 2)   #OR運算 0011
print (x & 1)   #AND 運算 0001

"""
長整數
長整數型數 當一個長整數常量以字母L(或小寫l)結尾,Python就會創建一個長整型數。Python中一個長整型數可以任意大,也就是說你的內存空間有多大它就可以有多少位
>>> 999999999999999999999999999999L + 1
1000000000000000000000000000000L
複數
複數是個不同的核心對象類型   複數表示爲兩個浮點數(實部和虛部)並接在虛部增加了j或J的後綴。
我們能夠把非零實部的複數寫成由+連接起來的兩部分
例如:一個複數的實部爲2虛部爲-3可以表示爲:2 + 3j
>>> 1j * 1J
(-1+0j)
>>> 2 + 1j*3
(2+3j)
>>> (2+1j)*3
(6+3j)

十六進制和八進制記數
>>> 01,010,0100
(1, 8, 64)
>>> 0x01,0x10,0xFF
(1, 16, 255)

oct  函數會將十進制數轉換爲8進制數
hex 函數會將十進制轉換爲16進制數
>>> oct(64),hex(64),hex(255)
('0100', '0x40', '0xff')
int  函數會將一個數字的字符串變換爲一個整數,並通過定義的第二個參數來確定變換後的數字進制數
>>> int('0100'),int('0100',8),int('0x40',16)
(100, 64, 64)

Eval 函數
eval(str [,globals [,locals ]])函數將字符串str當成 有效Python表達式來求值,並返回計算結果。
>>> eval('3+4')
7
>>> print('3+4')
3+4
>>> exec 'a=100'
>>> a
100

>>> oct(64),hex(64),hex(255)
('0100', '0x40', '0xff')
>>>
>>> eval('100'),eval('0100'),eval('0x40')
(100, 64, 64)
>>> "%o,%x,%X" % (64,64,255)
'100,40,FF'
>>>

round 函數
round(flt, ndig=0) 接受一個浮點數 flt 並對其四捨五入,保存 ndig位小數。
若不提供ndig 參數,則默認小數點後0位。
round()僅用於浮點數。(譯者注:整數也可以, 不過並沒有什麼實際意義)

abs函數:是取絕對值

pow函數
pow是用來做冪運算的,你的powersum(2,3,4)實現的就是:3的平方加上4的平方。
>>> pow(2,5)
32
其它的內置數學工具
除了核心對象類型以外,Python還支持用於數學處理的內置函數和內置模塊
內置函數int和round,分別省略浮點數的小數部分或省略保持小數點後若干位。

"""

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章