Python內置函數(22)——float

来源:http://www.cnblogs.com/sesshoumaru/archive/2016/10/26/6000936.html
-Advertisement-
Play Games

英文文檔: class float([x]) Return a floating point number constructed from a number or string x. If the argument is a string, it should contain a decimal ...


英文文檔:

class float([x])

Return a floating point number constructed from a number or string x.

If the argument is a string, it should contain a decimal number, optionally preceded by a sign, and optionally embedded in whitespace. The optional sign may be '+' or '-'; a '+' sign has no effect on the value produced. The argument may also be a string representing a NaN (not-a-number), or a positive or negative infinity. More precisely, the input must conform to the following grammar after leading and trailing whitespace characters are removed:

sign           ::=  "+" | "-"
infinity       ::=  "Infinity" | "inf"
nan            ::=  "nan"
numeric_value  ::=  floatnumber | infinity | nan
numeric_string ::=  [sign] numeric_value

Here floatnumber is the form of a Python floating-point literal, described in Floating point literals. Case is not significant, so, for example, “inf”, “Inf”, “INFINITY” and “iNfINity” are all acceptable spellings for positive infinity.

Otherwise, if the argument is an integer or a floating point number, a floating point number with the same value (within Python’s floating point precision) is returned. If the argument is outside the range of a Python float, an OverflowError will be raised.

For a general Python object x, float(x) delegates to x.__float__().

If no argument is given, 0.0 is returned.

 

說明:

  1. 函數功能將一個數值或者字元轉換成浮點型數值。

>>> float(3)
3.0
>>> float('3')
3.0

  2. 不提供參數的時候,返回0.0。

>>> float()
0.0

  3. 字元串必須能正確轉換成浮點型數值的,否則報錯。

>>> float('3.14.15926')
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    float('3.14.15926')
ValueError: could not convert string to float: '3.14.15926'

  4. 字元串中允許出現“+”、“-”兩個符號,兩個符號和數字之間不能出現空格,但是符號前面和數字後面允許出現空格。

>>> float('+3.14') #帶正號
3.14
>>> float('-3.14') #帶負號
-3.14
>>> float('  -3.14  ') #正負號前、數字後可以有空格
-3.14
>>> float('- 3.14') #正負號與數字間不可以有空格
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    float('- 3.14')
ValueError: could not convert string to float: '- 3.14'

  5. 有幾個特殊的字元串能正確轉換,"Infinity"或者“inf”(不區分大小寫),能正確轉換,表示無窮大,可以和“+”、“-”一起使用;“nan”也能正確轉換,表示沒有值。

>>> float('Infinity')
inf
>>> float('inf')
inf

>>> float('inFinIty') #不區分大小寫
inf

>>> float('+inFinIty') #正無窮
inf
>>> float('-inFinIty') #負無窮
-inf

>>> float('nan') #沒有值
nan

  6. 定義的對象如果要被float函數正確轉換成浮點數,需要定義__float__函數。

>>> class X:
    def __init__(self,score):
        self.score = score

>>> x = X(9.7)
>>> float(x) #不能轉換
Traceback (most recent call last):
  File "<pyshell#20>", line 1, in <module>
    float(x)
TypeError: float() argument must be a string or a number, not 'X'


>>> class X: #重新定義類,加入__float__方法
    def __init__(self,score):
        self.score = score
    def __float__(self):
        return self.score

>>> x = X(9.7)
>>> float(x) #可以轉換
9.7

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近自學了一下NodeJS,然後做了一個小demo,實現歌曲的添加、修改、播放和刪除的功能,其中自然要實現音樂和圖片的上傳功能。於是上網查找資料,找到了一個formidable插件,該插件可以很好的實現文件的上傳功能。該小demo用到了MySQL資料庫,所有的數據都存放到了資料庫中。下麵簡單說一些如... ...
  • 可以在Index.php文件下 <?php 之前添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ...
  • REST是一種架構風格,其核心是面向資源,REST專門針對網路應用設計和開發方式,以降低開發的複雜性,提高系統的可伸縮性。REST提出設計概念和準則為: REST是一種架構風格,其核心是面向資源,REST專門針對網路應用設計和開發方式,以降低開發的複雜性,提高系統的可伸縮性。REST提出設計概念和準 ...
  • 監聽器的原理: 被監聽對象→對象擁有的事件→捕獲到事件變化→監聽器捕捉事件→監聽器處理該事件 Web伺服器上有4個範圍,拋開page範圍,還有request範圍,session範圍,application範圍。這些範圍的對象什麼時候創建,什麼時候銷毀,什麼時候往範圍中存放了數據,什麼時候替換了存放的 ...
  • 位元組流與和字元流的使用非常相似,兩者除了操作代碼上的不同之外,是否還有其他的不同呢?實際上位元組流在操作時本身不會用到緩衝區(記憶體),是文件本身直接操作的,而字元流在操作時使用了緩衝區,通過緩衝區再操作文件,如圖12-6所示。下麵以兩個寫文件的操作為主進行比較,但是在操作時位元組流和字元流的操作完成之後 ...
  • 最近在苦於思考kmeans演算法的MPI並行化,花了兩天的時間先把串列版本實現了。 聚類問題就是給定一個元素集合V,其中每個元素具有d個可觀察屬性,使用某種演算法將V劃分成k個子集,要求每個子集內部的元素之間相異度儘可能低,而不同子集的元素相異度儘可能高。 下麵是google到該演算法的一個流程圖,表意清 ...
  • 通過打電話的例子講解TCP的三次握手和四次揮手,通俗易懂,容易理解 ...
  • 前言 首先是例行的國際慣例,本文寫於本人學習設計模式的路上,適合同樣學習設計模式的朋友交流使用,大神誤入請留下您寶貴的意見,先行謝過; 前面我們已經學習過 簡單工廠模式 ,今天來學習第二個工廠模式 方法工廠模式 。 定義 百度百科 工廠方法模式的意義是定義一個創建產品對象的工廠介面,將實際創建工作推 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...