python格式化字元
1. python 3 格式化字元串的幾種方法
有的,知道的有三種方式可選。
1、可以用類似C語言的格式化方式,比如:
f = 1.234print("%.2f" % f)
2、使用字元串的format函數.
3、rjust(n)、ljust(n)
2. python字元串格式化什麼意思
在python中也有類似於c中的printf()的格式輸出標記。在python中格式化輸出字元串使用的是%運算符,通用的形式為
格式標記字元串 % 要輸出的值組
其中,左邊部分的」格式標記字元串「可以完全和c中的一致。右邊的'值組'如果有兩個及以上的值則需要用小括弧括起來,中間用短號隔開。重點來看左邊的部分。左邊部分的最簡單形式為:
%cdoe
其中的code有多種,不過由於在python中,所有東西都可以轉換成string類型,因此,如果沒有什麼特殊需求完全可以全部使用』%s『來標記。比如:
'%s %s %s' % (1, 2.3, ['one', 'two', 'three'])
它的輸出為'1 2.3 ['one', 'two', 'three']',就是按照%左邊的標記輸出的。雖然第一個和第二值不是string類型,一樣沒有問題。在這個過程中,當電腦發現第一個值不是%s時,會先調用整型數的函數,把第一個值也就是1轉成string類型,然後再調用str()函數來輸出。前面說過還有一個repr()函數,如果要用這個函數,可以用%r來標記。除了%s外,還有很多類似的code:
整型數:%d
無符號整型數:%u
八進制:%o
十六進制:%x %X
浮點數:%f
科學記數法: %e %E
根據數值的不同自動選擇%e或%f: %g
根據數值的不同自動選擇%E或%f: %G
就跟前面說用\進行轉義一樣,這里用%作為格式標記的標識,也有一個%本身應該如何輸出的問題。如果要在」格式標記字元串「中輸出%本身,可以用%%來表示。
上面說的只是格式標記的最簡間的形式,來看復雜一點的:
『%6.2f』 % 1.235
在這種形式中,在f的前面出現了一個類似小數的6.2它表示的意思是,總共輸出的長度為6個字元,其中小數2位。還有更復雜的:
『%06.2f』 % 1.235
在6的前面多了一個0,表示如果輸出的位數不足6位就用0補足6位。這一行的輸出為『001.24』,可以看到小數也佔用一位。類似於這里0這樣的標記還有-、+。其中,-表示左對齊,+表示在正數前面也標上+號,默認是不加的。最後來看最復雜的形式:
『%(name)s:%(score)06.1f』 %{'score':9.5, 'name':'newsim'}
這種形式只用在要輸出的內容為dictionary(一種python的數據類型)時,小括弧中的(name)和(score)對應於後面的鍵值對中的鍵。前面的例子可以看到,」格式標記字元串「中標記的順序和"要輸出的值組"中的值是一一對應的,有順序,一對一,二對二。而在這種形式中,則不是,每個格式標記對應哪個值由小括弧中的鍵來指定。這行代碼的輸出為:'newsim:0009.5'。
有時候在%6.2f這種形式中,6和2也不能事先指定,會在程序運行過程中再產生,那怎麼輸入呢,當然不能用%%d.%df或%d.%d%f。可以用%*.*f的形式,當然在後面的」要輸出的值組「中包含那兩個*的值。比如:'%*.*f' % (6, 2, 2.345)就相當於'%6.2f' % 2.345。
這是這本書到此為止看起來最復雜的內容。不過如果記不住,或不想那麼耐煩,完全可以全部用%s代替,或者用多個"+"來構造類似的輸出字元串。這里的%真有點除法的味道,怪不得設計者會選擇用%這個除號。
象C 中的sprintf函數一樣,可以用「%」來格式化字元串
Table 3.1. 字元串格式化代碼
格式 描述
%% 百分號標記
%c 字元及其ASCII碼
%s 字元串
%d 有符號整數(十進制)
%u 無符號整數(十進制)
%o 無符號整數(八進制)
%x 無符號整數(十六進制)
%X 無符號整數(十六進制大寫字元)
%e 浮點數字(科學計數法)
%E 浮點數字(科學計數法,用E代替e)
%f 浮點數字(用小數點符號)
%g 浮點數字(根據值的大小採用%e或%f)
%G 浮點數字(類似於%g)
%p 指針(用十六進制列印值的內存地址)
%n 存儲輸出字元的數量放進參數列表的下一個變數中
3. format在python中的用法是什麼
常見於字元串格式化。
比如 print("第{0}天".format(d))。會列印"第5天"。
python3的format函數中s表示格式化字元串類型數據。{:>15s}表示右對齊15個字元,左側空白默認用空格填充。{:<8.2f}表示左對齊加小數點一共8位的浮點型小數,保留小數點後兩位。
{:>15s}:{:<8.2f}中間的冒號,就是分隔兩個數據的分隔符。
Python
是完全面向對象的語言。函數、模塊、數字、字元串都是對象。並且完全支持繼承、重載、派生、多繼承,有益於增強源代碼的復用性。Python支持重載運算符和動態類型。相對於Lisp這種傳統的函數式編程語言,Python對函數式設計只提供了有限的支持。有兩個標准庫(functools, itertools)提供了Haskell和Standard ML中久經考驗的函數式程序設計工具。
4. python字元串格式化輸出方法
在python中也有類似於c中的printf()的格式輸出標記。在python中格式化輸出字元串使用的是版%運算符,通用的形式為 格式標記字元串 % 要輸權出的值組 其中,左邊部分的」格式標記字元串「可以完全和c中的一致。
5. python,為什麼使用f'{<變數>:.1f}格式化字元串要加f
題主你好,
這是字元串格式化的一種方式,給題主舉個例子吧.
我們一開始最常見的格式化變數的形式是這樣的:
name="zhangsan"
print("我的名字叫: %s"%name)
但後來版本更新後, 我們還可以這樣寫:
name="zhangsan"
print(f"我的名字叫{name}")
-----
你還可以這樣理解,我在字元串前面前綴一個f,就可以在字元串里使用{變數名}的方式進行變數引用了.
-----擴展閱讀-----
=====
希望可以幫到題主, 歡迎追問
6. format在python中的用法
fotmat作為Python的的格式字元串函數,主要通過字元串中的花括弧{},來識別替換欄位,從而完成字元串的格式化。format是python2.6新增的一個格式化字元串的方法,相對於老版的%格式方法,它有很多優點。單個參數可以多次輸出,參數順序可以不相同。
python中的format函數用法
基本語法是通過{}和:來代替以前的%
1、例如輸出保留兩位的數字:print("{:.2f}".format(3.1456879)),且會四捨五入。
2、大括弧里可以填索引,以此來保證後續format中參數的順序位置,例如:
print("{2}{0}{1}".format("are","you","How"))
輸出為Howareyou,注意索引應從0開始。
而且需要注意的是如果未填索引,那麼會默認按format中參數順序位置填充,此時大括弧佔位數要與format參數相等。如果填充索引,索引數需要不大於format索引數。
3、如果是雙層大括弧結構,則認為第二層大括弧為普通字元串,不會進行格式化。例如:
print("{}對應的位置是{{普通字元串}}".format("字元串"))
輸出為:字元串對應的位置是{普通字元串},注意加粗部分,第二層大括弧會作為普通的字元串,不會進行格式化。
7. python格式化字元
第一個print有兩個錯誤 %d是整數類型, %前面沒逗號
print("let 's talk about %s"%(my_name))
第二個和第三錯誤是format前面是點, 不是逗號
print("he 's {} inches tall.".format(my_height))
8. Python 格式化字元的問題
因為在python中,不管被除數和除數是整數還是小數,/的結果一定是浮點數(小數)。
而對於*而言,如果乘數和被乘數都是整數,結果依然是整數。
所以,只要循環中第一次執行else後,a就變成小數了,以後再執行if也好,else也好,a就都是小數了。
如果想輸出整數,可以將a=a/2改成:a=int(a/2)。