A. 求助:用python實現國際單位換算
知道進制就可以換算啦,每一個換算用一種方法實現。如:
def kg2g(kg):
return 1000 * kg
def g2kg(g):
return g / 1000
B. python縮進長度統一嗎
Python 對代碼的縮進要求非常嚴格,同一個級別代碼塊的縮進量必須一樣,否則解釋器會報 SyntaxError 異常錯誤。
在 Python 中,對於類定義、函數定義、流程式控制制語句、異常處理語句等,行尾的冒號和下一行的縮進,表示下一個代碼塊的開始,而縮進的結束則表示此代碼塊的結束。
注意,Python 中實現對代碼的縮進,可以使用空格或者 Tab 鍵實現。但無論是手動敲空格,還是使用 Tab 鍵,通常情況下都是採用 4 個空格長度作為一個縮進量(默認情況下,一個 Tab 鍵就表示 4 個空格)。
對於 Python 縮進規則,初學者可以這樣理解,Python 要求屬於同一作用域中的各行代碼,它們的縮進量必須一致,但具體縮進量為多少,並不做硬性規定。
更多Python知識請關注Python自學網
C. python有兩種單位輸出時怎麼辦
由於底層的UnitRegistry知道不同單位之間的關系,因此您可以使用to()方法將「數量」轉換為您選擇的單位。
Pint是一個Python軟體包,用於定義,操作和操縱物理量:數值和度量單位的乘積。它允許它們之間的算術運算以及不同單位之間的轉換。
在python中如果想給計算結果添加單位,當使用不是很頻繁,使用字元串格式化輸出就很好了,常用的可以考慮繼承float類實現專門的計量單位類。
D. python怎麼設置頁面顯示單位
這個沒有統一的地方,要看你具體的程序是怎麼讀取這個顯示單位的。
可以嘗試下面的做法,不一定可以
進入Python的安裝目錄中Tools\i18n目錄
執行pygettext.py
生成一個messages.pot
修改messages.pot中編碼
CHARSET gb2312
ENCODING utf8
編輯messages.pot
添加需要國際化的內容,另存為*.po文件
我這里存成了lang.po
編譯lang.po
執行msgfmt.py lang.po
生成lang.mo
在項目中建立目錄
\locale\zh_CN\LC_MESSAGES
\locale\en_US\LC_MESSAGES
LC_MESSAGES這個是必須的
同時將剛剛的lang.po、lang.mo放入到zh_CN\LC_MESSAGES\這個目錄下。
也可以生成一個英文的對應文件放入到en_US\LC_MESSAGES\目錄下
測試下效果,輸出用_(str)代替str。成功輸出中文
將zh_CN換成en_US如果沒有配置默認直接輸出原內容,如Hello YY
完整的test.py
# -*- coding: utf-8 -*-
#!/usr/bin/env python
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import gettext
gettext.install('lang', 'F:\Workspaces\server\MobileApiServer\project\locale', unicode=False)
gettext.translation('lang', 'F:\Workspaces\server\MobileApiServer\project\locale', languages=['zh_CN']).install(True)
print _('Hello YY')
項目直接使用,服務啟動的時候載入所有的mo文件。
在請求的過濾入口處設置本次請求的語言,後面代碼中就可以直接使用啦
E. 假設Python的上手難度為1個單位,那麼Java,C#, C++等的難度為多少呢(幾個單位)
C# 是 5個
Java據說≈C#
c++ 大概9個吧
F. python的單位轉換問題
round()函數用錯了啊,你應該寫成:
lb = round(fx*2.205, 2)
這樣。
round(x[, n])
Return the floating point value x rounded to n digits after the decimal point. If n is omitted, it defaults to zero. Delegates to x.__round__(n).
For the built-in types supporting round(), values are rounded to the closest multiple of 10 to the power minus n; if two multiples are equally close, rounding is done toward the even choice (so, for example, both round(0.5) and round(-0.5) are 0, and round(1.5) is 2). The return value is an integer if called with one argument, otherwise of the same type as x.
G. PYTHON實現對CSV文件多維不同單位數據的歸一化處理
1)線性歸一化
這種歸一化比較適用在數值比較集中的情況,缺陷就是如果max和min不穩定,很容易使得歸一化結果不穩定,使得後續的效果不穩定,實際使用中可以用經驗常量來代替max和min。
2)標准差標准化
經過處理的數據符合標准正態分布,即均值為0,標准差為1。
3)非線性歸一化
經常用在數據分化較大的場景,有些數值大,有些很小。通過一些數學函數,將原始值進行映射。該方法包括log、指數、反正切等。需要根據數據分布的情況,決定非線性函數的曲線。
log函數:x = lg(x)/lg(max)
反正切函數:x = atan(x)*2/pi
Python實現
線性歸一化
定義數組:x = numpy.array(x)
獲取二維數組列方向的最大值:x.max(axis = 0)
獲取二維數組列方向的最小值:x.min(axis = 0)
對二維數組進行線性歸一化:
def max_min_normalization(data_value, data_col_max_values, data_col_min_values):
""" Data normalization using max value and min value
Args:
data_value: The data to be normalized
data_col_max_values: The maximum value of data's columns
data_col_min_values: The minimum value of data's columns
"""
data_shape = data_value.shape
data_rows = data_shape[0]
data_cols = data_shape[1]
for i in xrange(0, data_rows, 1):
for j in xrange(0, data_cols, 1):
data_value[i][j] = \
(data_value[i][j] - data_col_min_values[j]) / \
(data_col_max_values[j] - data_col_min_values[j])
標准差歸一化
定義數組:x = numpy.array(x)
獲取二維數組列方向的均值:x.mean(axis = 0)
獲取二維數組列方向的標准差:x.std(axis = 0)
對二維數組進行標准差歸一化:
def standard_deviation_normalization(data_value, data_col_means,
data_col_standard_deviation):
""" Data normalization using standard deviation
Args:
data_value: The data to be normalized
data_col_means: The means of data's columns
data_col_standard_deviation: The variance of data's columns
"""
data_shape = data_value.shape
data_rows = data_shape[0]
data_cols = data_shape[1]
for i in xrange(0, data_rows, 1):
for j in xrange(0, data_cols, 1):
data_value[i][j] = \
(data_value[i][j] - data_col_means[j]) / \
data_col_standard_deviation[j]
非線性歸一化(以lg為例)
定義數組:x = numpy.array(x)
獲取二維數組列方向的最大值:x.max(axis=0)
獲取二維數組每個元素的lg值:numpy.log10(x)
獲取二維數組列方向的最大值的lg值:numpy.log10(x.max(axis=0))
對二維數組使用lg進行非線性歸一化:
def nonlinearity_normalization_lg(data_value_after_lg,
data_col_max_values_after_lg):
""" Data normalization using lg
Args:
data_value_after_lg: The data to be normalized
data_col_max_values_after_lg: The maximum value of data's columns
"""
data_shape = data_value_after_lg.shape
data_rows = data_shape[0]
data_cols = data_shape[1]
for i in xrange(0, data_rows, 1):
for j in xrange(0, data_cols, 1):
data_value_after_lg[i][j] = \
data_value_after_lg[i][j] / data_col_max_values_after_lg[j]
H. 【python】如何把字元串類型的數字統一形式,如:"一億三千萬元"->"130000000元"
#!/usr/bin/envpython
#coding:utf-8
dict={u'零':0,u'一':1,u'二':2,u'三':3,u'四':4,u'五':5,u'六':6,u'七':7,u'八':8,u'九':9,u'十':10,u'百':100,u'千':1000,u'萬':10000,
u'0':0,u'1':1,u'2':2,u'3':3,u'4':4,u'5':5,u'6':6,u'7':7,u'8':8,u'9':9,
u'壹':1,u'貳':2,u'叄':3,u'肆':4,u'伍':5,u'陸':6,u'柒':7,u'捌':8,u'玖':9,u'拾':10,u'佰':100,u'仟':1000,u'萬':10000,
u'億':100000000}
defgetResultForDigit(a,encoding="utf-8"):
ifisinstance(a,str):
a=a.decode(encoding)
count=0
result=0
tmp=0
Billion=0
whilecount<len(a):
tmpChr=a[count]
#printtmpChr
tmpNum=dict.get(tmpChr,None)
#如果等於1億
iftmpNum==100000000:
result=result+tmp
result=result*tmpNum
#獲得億以上的數量,將其保存在中間變數Billion中並清空result
Billion=Billion*100000000+result
result=0
tmp=0
#如果等於1萬
eliftmpNum==10000:
result=result+tmp
result=result*tmpNum
tmp=0
#如果等於十或者百,千
eliftmpNum>=10:
iftmp==0:
tmp=1
result=result+tmpNum*tmp
tmp=0
#如果是個位數
eliftmpNumisnotNone:
tmp=tmp*10+tmpNum
count+=1
result=result+tmp
result=result+Billion
returnresult
if__name__=="__main__":
test_map={
'三千五百二十三':3523,
'七十五億八百零七萬九千二百零八':7508079208,
'四萬三千五百二十一':43521,
'三千五百二十一':3521,
'三千五百零八':3508,
'三五六零':3560,
'一萬零三十':10030,
'':0,
#1digit個
'零':0,
'一':1,
'二':2,
'三':3,
'四':4,
'五':5,
'六':6,
'七':7,
'八':8,
'九':9,
#2digits十
'十':10,
'十一':11,
'二十':20,
'二十一':21,
#3digits百
'一百':100,
'一百零一':101,
'一百一十':110,
'一百二十三':123,
#4digits千
'一千':1000,
'一千零一':1001,
'一千零一十':1010,
'一千一百':1100,
'一千零二十三':1023,
'一千二百零三':1203,
'一千二百三十':1230,
#5digits萬
'一萬':10000,
'一萬零一':10001,
'一萬零一十':10010,
'一萬零一百':10100,
'一萬一千':11000,
'一萬零一十一':10011,
'一萬零一百零一':10101,
'一萬一千零一':11001,
'一萬零一百一十':10110,
'一萬一千零一十':11010,
'一萬一千一百':11100,
'一萬一千一百一十':11110,
'一萬一千一百零一':11101,
'一萬一千零一十一':11011,
'一萬零一百一十一':10111,
'一萬一千一百一十一':11111,
#6digits十萬
'十萬零二千三百四十五':102345,
'十二萬三千四百五十六':123456,
'十萬零三百五十六':100356,
'十萬零三千六百零九':103609,
#7digits百萬
'一百二十三萬四千五百六十七':1234567,
'一百零一萬零一百零一':1010101,
'一百萬零一':1000001,
#8digits千萬
'一千一百二十三萬四千五百六十七':11234567,
'一千零一十一萬零一百零一':10110101,
'一千萬零一':10000001,
#9digits億
'一億一千一百二十三萬四千五百六十七':111234567,
'一億零一百零一萬零一百零一':101010101,
'一億零一':100000001,
#10digits十億
'十一億一千一百二十三萬四千五百六十七':1111234567,
#11digits百億
'一百一十一億一千一百二十三萬四千五百六十七':11111234567,
#12digits千億
'一千一百一十一億一千一百二十三萬四千五百六十七':111111234567,
#13digits萬億
'一萬一千一百一十一億一千一百二十三萬四千五百六十七':1111111234567,
#14digits十萬億
'十一萬一千一百一十一億一千一百二十三萬四千五百六十七':11111111234567,
#17digits億億
'一億一千一百一十一萬一千一百一十一億一千一百二十三萬四千五百六十七':11111111111234567,
}
foreachintest_map:
assert(test_map[each]==getResultForDigit(each))
assert的作用是判斷getResultForDigit與test_map里的對應key值是否一致
I. 請教高手,python的時間單位是什麼
時間單位自然是秒(second)了。
import time
start = time.time()
# do something
end = time.time()
delta = end - start # is a float, unit: second
python中表達時間的函數有很多,包括date, datetime, time, 等等。
日期應該是沒有單位的,但是「差」是有單位的:day,hour,minute, second。具體採用什麼單位取決你的需求了。不過,second 是「萬能」的,可以使用mktime,strptime等函數進行轉換或者格式化成你想要的時間。
J. python如何輸出單位km
python中,想要實現逆序輸出,輸出單位km,操作方法如下。
設備:華碩VivoBook15s
系統:win10
軟體:python3.9.4
1、首先打開python編輯器,輸入想要逆序輸出的字元串,比如s='kjekgrg'。