為什麼列印字串符之前要格式化,這個格式化是什麼意思?

時間 2021-06-09 21:17:53

1樓:OhYee

列印字串前不一定要格式化,但是如果需要對變數進行拼接,一般使用格式化

格式化是指將變數以及字串常量拼接成符合特定格式要求的字串

首先,不是必需格式化。

比如直接輸出hello world就可以直接輸出

print

("hello world"

)但是當輸出的內容有格式要求時,則需要對其格式化

格式化本身是乙個佔位符,將你要輸出的的字串的格式寫好同時可能會變化的部分使用佔位符來標記。這樣每次輸出時,可以按照變數的不同輸出符合要求的內容。

同時由於變數型別不同,比如python中有int,str,list等型別,當你要輸出成字串時還需要手動將其轉換成字串格式,使用格式化的佔位符則可以省略轉換的過程

如要輸出日期2012-01-25,就會出現乙個問題:月份是以整數形式儲存,在1~9月,需要補乙個0在前面。這時採用格式化就可以簡單解決這個問題y=

2012m=

1d=25

print("

%d-%02d

-%02d"%

(y,m

,d))這樣就可以實現按照指定格式要求輸出。

而當乙個變數需要在字串中多次出現時,可以使用format進行對每個佔位符命名,從而使乙個變數在字串可以出現多次y=

2012m=

1d=25

print("

---"

.format(y

=y,m

=m,d

=d))

C語言中,字串常量為什麼只能給字元陣列初始化,而不能通過指標賦值

程佳 陣列是指標常量,常量不能賦值。字串在c語言裡不是原生資料型別,就是乙個內容非0結尾為0的位元組陣列。所以對字串的操作要使用string.h裡那些庫函式。 神念的經 想啥呢,一旦定義成了靜態陣列,首元素位址就是定死的。想改位址?門都沒有。指標賦值?那是改指向的位址,不是改指向的內容。strcpy...

Rust的字串為什麼設計的這麼難用

記憶體塊生命週期 這不難用啊,因為確實應該拷一下記憶體。首先leta hello letb world 這兩和c語言的const char 一樣的。如果你要乙個string,那麼是不是得拷貝乙份?這時to string建立了份string然後由變數c持有,變數c持有前有了string物件你才能 b。...

C語言字元指標(字串)為什麼不可以直接像陣列那樣賦值?

check 777 直接定義乙個指標陣列不就行了,char a 3 tika64208 這個問題好理解,char str申請的是陣列,char p 申請的是乙個指標。而是什麼,是乙個具體的值,或者說3個具體的值,在編譯的時候就已經知道的值。你申請了4個元素的陣列,說裡面要存3個指定的值,叫分別是 a...