㈠ 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 存儲輸出字元的數量放進參數列表的下一個變數中
㈡ python中如何格式化代碼
你的問題是什麼?我沒有理解。如果只是代碼縮進的話。那隻要不是notepad隨便一個ide或編輯器都做的到。先把問題描述清楚。
㈢ python如何格式化∪盤
方式一:直接+拼接
print(src + username + " 年齡是:" + str(age))
回到頂部
方式二: f字元串表達式
# a、需要在字元串前面添加f
# b、可以在字元串中間使用{},花括弧的中間可以寫任何錶達式(或變數)
# c、python3.6+的版本可用
info = f"我的名字是:{username} \t 年齡是:{age}"info1 = f"我的名字是:{username[:-1]} \t 年齡是:{age + 1}"print(info)print(info1)
回到頂部
方式三:使用format進行格式化
# a、{} 為佔位符,format方法中的參數進行一一對應
# b、往往花括弧的數量與format方法中的參數個數一致
# c、{}花括弧中可以填寫format方法參數的索引值
info2 = "我的名字是:{} \t 年齡是:{}".format(username, age)
info3 = "我的名字是:{2} \t 年齡是:{1} \t 我的分數為{0}".format(username, age, 99)print(info2)print(info3)
回到頂部
方式四:python2 中推薦方法
info4 = "我的名字是:%s 年齡是:%s 我的分數為:%s" % (username, age, 88)print("info4:", info4)
㈣ python 格式化日期
python格式化日期的方法:可以利用time.asctime(time.local(time.time()))函數來格式化日期。如果我們要獲取當前日期,可以利用時間函數time()來獲取。
㈤ python 的格式化輸入
沒有這樣的格式,要麼讓用戶分次輸入,要麼一次輸入後,解析字元串賦給3個參數(":"分隔)
㈥ python格式化字元
第一個print有兩個錯誤 %d是整數類型, %前面沒逗號
print("let 's talk about %s"%(my_name))
第二個和第三錯誤是format前面是點, 不是逗號
print("he 's {} inches tall.".format(my_height))
㈦ python里的.format()是什麼意思
format函數這是一種字元串格式化的方法,用法如str.format()。
基本語法是通過 {} 和 : 來代替以前的 % 。
以下展示兩種主要用法:
(1)如:語句print("{:.2f}".format(3.1415926)),它的輸出為3.14,可以看出命令為保留兩位小數點。
(2)如:語句"{1} {0} {1}".format("hello", "world"),它的輸出為'world hello world',可以看出format為他們設置了位置。
又如:語句print '{} *'.format(j)表示輸出變數j的值以及乘號:j*,可以看出用在循環里可以輸出一個乘法的等式。
又如:語句print "{} 對應的位置是 {{0}}".format("runoob"),它的輸出為'runoob對應的位置是0'.

(7)python格式化擴展閱讀:
如果在格式化數字時沒有指定format,Format會提供與Str函數類似的功能,盡管它是國際化的。然而,以Format作用在正數上不會保留正負號空間,而以Str的話則會。
如果要格式化一個沒有本地化的數值字元串,應該使用一個用戶自定義的數值格式,以保證得到需要的外觀。
注意如果Calendar屬性設置是Gregorian ,並且format指定了日期格式,那麼,提供的expression必須是Gregorian 。如果Visual BasicCalendar屬性設置是 Hijri,則提供的的expression必須是Hijri 。
㈧ python3 格式化字元串
這個屬於python語法問題, 語法就是規定, 你按照規定做就是了.
㈨ Python 格式化字元的問題
因為在python中,不管被除數和除數是整數還是小數,/的結果一定是浮點數(小數)。
而對於*而言,如果乘數和被乘數都是整數,結果依然是整數。
所以,只要循環中第一次執行else後,a就變成小數了,以後再執行if也好,else也好,a就都是小數了。
如果想輸出整數,可以將a=a/2改成:a=int(a/2)。
㈩ Python字元串格式化問題
*,表示輸出的字元的寬度,你給的例子,就是4個字元的寬度
又比如
>>> '%.*s%.*s'%(2, "abce", 3, "324223")
'ab324'
>>> '%.*s%*.s'%(2, "abce", 3, "324223")
'ab '
第一個:2個寬度所以只有ab,後面的只有3個寬度,就是324
需要注意. 和 *的先後順序
第二個:2寬度,也是ab,後面由於.和*的順序變了,沒有輸出字元,但給了3個寬度
======================================================================
這么給你說嘛: '%*.*s'%(10,2, "abce")
第一個*表示輸出的『內容』長度為10
第二個*表示『abce』這個串,只取前兩位,你可以理解為精度
s表示是字元串
結果為:8個空格 + ab
==========再來看你的問題=====================================
'%*.s' % (4,'hi')
我的疑問是為什麼'hi'沒有輸出?如何理解?
[ans:沒輸出因為.後面沒有給int值,所以沒輸出hi]
另外,點(.)後如果沒有加精度值,機器將如何執行?
[ans:結果你已經看到了,沒給值就不輸出]
還有如果輸出的是字元串,但是點(.)的前後都有星號(*),那麼此時輸出的字元串寬度到底是多少?
[ans:*.*,都給了值,第一個是輸出字元串的寬度,第二個是取你給的字元串的寬度,上面給你舉得例子, '%*.*s'%(10,2, "abce"),輸出寬度為10,取 abce的前兩個字元]
是以前面一個星號為准還是後面的那個?
[ans:同上]