fractionspython
1. python 運算
1、Python使用與C、Java類似的運算符,支持整數與浮點數的數學運算。同時還支持復數運算與無窮位數(實際受限於計算機的能力)的整數運算。除了求絕對值函數abs()外,大多數數學函數處於math和cmath模塊內。前者用於實數運算,而後者用於復數運算。使用時需要先導入它們,比如:
>>>importmath
>>>print(math.sin(math.pi/2))
1.0
fractions模塊用於支持分數運算;decimal模塊用於支持高精度的浮點數運算。
2、Python定義求余運行a % b的值處於開區間[0, b)內,如果b是負數,開區間變為(b, 0]。這是一個很常見的定義方式。不過其實它依賴於整除的定義。為了讓方程式:b * (a // b) + a % b = a恆真,整除運行需要向負無窮小方向取值。比如7 // 3的結果是2,而(-7) // 3的結果卻是-3。這個演算法與其它很多編程語言不一樣,需要注意,它們的整除運算會向0的方向取值。
3、Python允許像數學的常用寫法那樣連著寫兩個比較運行符。比如a < b < c與a < b and b < c等價。C++的結果與Python不一樣,首先它會先計算a < b,根據兩者的大小獲得0或者1兩個值之一,然後再與c進行比較。
2. python怎麼導出fractions函數的分子
python的fractions可以助你一臂之力:
#coding=utf-8
fromfractionsimportFraction
numerator=2#分子
denominator=6#分母
print(Fraction(numerator,denominator)+1)
輸出結果:
4/3
3. python九九乘法表是什麼
首先,你的語法是 Python3 的語法,但是用的是 Python2;
其實,類似這種題目,藉助格式化輸出會更加方便,看代碼:
# -*- encoding: gbk -*-
for row in range(1, 10):
for col in range(1, row + 1):
prod = row * col
print '%d * %d = %-2d ' % (col, row, prod),
Python定義
求余運行a % b的值處於開區間[0, b)內,如果b是負數,開區間變為(b, 0]。這是一個很常見的定義方式。不過其實它依賴於整除的定義。為了讓方程式:b * (a // b) + a % b = a恆真,整除運行需要向負無窮小方向取值。比如7 // 3的結果是2,而(-7) // 3的結果卻是-3。這個演算法與其它很多編程語言不一樣,需要注意,它們的整除運算會向0的方向取值。
以上內容參考:網路-Python
4. Python中的Fraction分數問題
兄弟,八分之十不就等於四分之五嗎
5. 使用Python實時將gps返回的經緯度轉化為圖片
主要就是做了兩件事情:
1.生成一張有文本信息的JPG圖片
2.寫入EXIF信息
生成照片需要PIL和libjpeg
import Imageimport ImageDrawimport ImageFontdef create_pic(path, text=[], type='jpeg'):
img = Image.new("RGB", (2448, 3264), '#37b6ce')#顏色和大小
draw = ImageDraw.Draw(img)
font = ImageFont.truetype('ziti.ttf', 120)#ttf是字體,120是字型大小
for h in range(0, len(text)):#多行文本
draw.text((256, 256 + 120 * h), text[h], font=font)
img.save(path, type)#保存
# img.show()
讀寫EXIF信息需要pyexiv2,獲取google的經緯度需要geopy
順便說下經緯度的表示:
一般exif里看到的都是這樣的57°55'56.6",是度,分,秒這么展示的,google上獲取來的是十進制的57.9323888888888
所以需要轉換一下再寫進去
公式:57°55'56.6" =57+55/60+56.6/3600=57.9323888888888
etemplate=pyexiv2.ImageMetadata('IMG_4408.JPG')template.read()#exif信息很多,所以找個真正手機拍攝的照片當模版googlev3=geopy.GoogleV3()place,gps=googlev3.geocode(location)#獲取gps信息,location寫地名,比如『北京王府井』,偶爾會被牆,最好掛個代理defset_exif(path,date_time=None,gps=()):
"""
datetime=2014:10:0412:41:38
geo=(lat=39.12315,lng=115.12231)
"""
metadata=pyexiv2.ImageMetadata(path)
metadata.read()
forkintemplate.exif_keys:
metadata[k]=pyexiv2.ExifTag(k,template[k].value)
ifnotdate_time:
date_str=pyexiv2.utils.exif(date_time)
metadata['Exif.Photo.DateTimeOriginal']=date_str
metadata['Exif.Photo.DateTimeDigitized']=date_str
metadata['Exif.Image.DateTime']=date_str
iflen(geo)>0:
c_lat=decimal2coordinate(geo[0],['S','N'])
c_lng=decimal2coordinate(geo[1],['W','E'])
metadata["Exif.GPSInfo.GPSLatitude"]=coordinate2rational(c_lat[0],c_lat[1],c_lat[2])
metadata["Exif.GPSInfo.GPSLatitudeRef"]=c_lat[3]
metadata["Exif.GPSInfo.GPSLongitude"]=coordinate2rational(c_lng[0],c_lng[1],c_lng[2])
metadata["Exif.GPSInfo.GPSLongitudeRef"]=c_lng[3]
else:
metadata._delete_exif_tag("Exif.GPSInfo.GPSLatitude")
metadata._delete_exif_tag("Exif.GPSInfo.GPSLatitudeRef")
metadata._delete_exif_tag("Exif.GPSInfo.GPSLongitude")
metadata._delete_exif_tag("Exif.GPSInfo.GPSLongitudeRef")
metadata.write()defdecimal2coordinate(value,loc):
"""
loc=lat=>["S","N"],lng=>["W","E"]
retrunD,M,S,locate
"""
ifvalue<0:
loc_value=loc[0]
elifvalue>0:
loc_value=loc[1]
else:
loc_value=""
abs_value=abs(value)
deg=int(abs_value)
t1=(abs_value-deg)*60
min=int(t1)
sec=round((t1-min)*60,5)
return(deg,min,sec,loc_value)defcoordinate2rational(D,M,S):
return(fractions.Fraction(D,1),fractions.Fraction(int((M+S/60)*100),100),fractions.Fraction(0,1))
6. python中如何實現float(3/5)=0.6
3和5
都是整數類型,3/5得出的結果也必定是整數,不會出現小數。所以有除不盡的,只會顯示商,而不顯示余數。求余是3
%
5
得出3,還是不能被整除。
可以轉化成float浮點數在進行除法運算。
float(3)
/
float(5)
0.6
7. Python基本內置數據類型有哪些
內置類型是指任何語言在設計初期定義的類型,如C語言中的int、double、char等。它也是在一種語言中最基本的類型,與編譯器編譯出的代碼具有重大關系。值得一提的是,不同語言也擁有不同的內置類型, 但是所有內置類型的定義都與計算機的運算方式相關。
Python主要內置類型包括數值、序列、映射、類、實例和異常等。
數值類型:全局中只有一個(Python在解釋器啟動的時候,Python會用None類型生成一個None的對象),包括int類型、float類型、complex類型、bool類型。
迭代類型:在Python中,迭代類型可以使用循環來進行遍歷。
序列類型:list(是可變序列,通常用於存放同類項目的集合)、tuple(是不可變序列,通常用於儲存異構數據的多項集)、str(在Python中處理文本數據是使用str對象,也稱為字元串。字元串是由Unicode碼位構成的不可變序列。)、array、range(表示不可變的數字序列,通常用於在for循環中循環指定的次數)、bytes(由單個位元組構成的不可變序列)、bytearray(bytes對象的可變對應物)、memoryvie(二進制序列)
映射類型:映射對象將具有hash的值映射到任意對象。映射是可變的對象。目前只有一種標准映射,即dictionary。字典的鍵幾乎是任意值,也就是說,包含列表、字典或其他可變類型的值。
集合類型:作為一種無序的多項集,集合並不記錄元素位置或插入順序。相應地,集合不支持索引、切片或其他序列類的操作。目前Python有兩種內置集合類型:set和frozenset。
set類型是可變的,其內容可以使用add()和remove()這樣的方法來改變。由於是可變類型,它沒有哈希值,且不能被用作字典的鍵或其他集合的元素。
frozenset類型是不可變並且具有哈希值,其內容在被創建後不能再改變,因此它可以被用作字典的鍵或其他集合的元素。
上下文管理類型:with語句
其他類型:模塊、class、實例、函數、方法、代碼、object對象、type對象、ellipsis(省略號)、notimplemented
8. python中denominator是什麼方法
denominator是fractions模塊的Fraction類的實例的屬性,不是方法
from fractions import Fraction
a = Fraction(1,2)
a.numerator # 分子
a.denominator # 分母
9. python中如何實現float(3/5)=0.6
3和5 都是整數類型,3/5得出的結果也必定是整數,不會出現小數。所以有除不盡的,只會顯示商,而不顯示余數。求余是3 % 5 得出3,還是不能被整除。
可以轉化成float浮點數在進行除法運算。
float(3) / float(5)
0.6
10. python中如何翻譯from fractions import fraction,用編程的的意思翻譯,不是按英文的意思翻譯
就是吧fractions.fraction 這個模塊導入進來唄。