python字串的格式化輸出,python字串格式化
很多時候我們在列印輸入內容時希望有簡單格式而不是拼接
一般做法:
1 name = input("name:").strip()2 age = input("age:").strip()3 job = input("job:").strip()4 print("Name:" + name + " Age:" + age + " Job:" + job)
結果為:
Name:zhang Age:24 Job:IT
格式化輸出做法:
name = input("name:").strip()age = input("age:").strip()job = input("job:").strip()info = '''----------info of %s ------- # info裡每個%s就是一個預留位置Name : %sAge : %sJog : %s----------end---------------'''%(name, name, age, job) # 這行的%就是把前面的預留位置和括弧後的變數關聯print(info)
結果為:
----------info of zhang -------Name : zhangAge : 24Jog : IT----------end---------------
除了%s,還有%d,%d表示你輸入的只能是數字,我們把age的%s換成%d看下會出現什麼錯誤
1 name = input("name:").strip() 2 age = input("age:").strip() 3 job = input("job:").strip() 4 info = ''' 5 ----------info of %s ------- 6 Name : %s 7 Age : %d 8 Jog : %s 9 ----------end---------------10 '''%(name, name, age, job)11 print(info)
報錯資訊:
Traceback (most recent call last): File "C:/Users/admin/PycharmProjects/test.py", line 10, in <module> '''%(name, name, age, job)TypeError: %d format: a number is required, not strName:li Age:25 Job:farmer
原因是我們input輸入的雖然是數字但是存到變數中是以字串str類型儲存的,要用%d必須要修改變數類型,把第10行做如下修改age變數轉為int類型即可正常執行
'''%(name, name, int(age), job)
所以一般在格式化輸出是用%s比較萬能,因為你輸入的都是字串str,所以不會報錯。