字符串的格式化及方法


1. 字符串的格式化:

1.1占位符:%s,%d

例1:name = "wuye"

    age = 22

         print("my name is %s,my age is %s"%(name,age,))  # %s 既可以接收字母,也能接收數字

         print("my name is %s,my age is %d"%(name,age,))  #  %d 只能接收數字

    print("my name is %s"%name)  # 如果只有一個參數可以省略括號

例2:用戶信息展示

name=input("name:")
age=input("age:")
sex=input("sex:")
height=input("height:")
msg='''
         ------------%s info-----------
         name:%s
         age:%s
         sex:%s
         height:%s
         ------------------------------
    '''%(name,name,age,sex,heigth,)  # 使用占位符記得在末尾加一個,號表示結束
print(msg)

1.2 format 格式化

format基本格式與占位符不同地方在於:%s 換為 {},字符串后面跟 .format()。

例1:

>>>name = "wuye"
>>>age = 22
>>>print("my name is {},my age is {}".format(name,age))  # 不設置指定位置,按默認位置進行傳參
# 輸出結果為:
my name is wuye,my age is 22

還可以設置位置進行傳參

例2:

>>>name = "wuye"
>>>age = 22
>>>print("my name is {0},my age is {1}".format(name,age))  # 設置指定位置,按位置進行傳參
# 輸出結果為:
my name is wuye,my age is 22
>>>
>>>
>>>print("my name is {1},my age is {0}".format(name,age))  # 設置指定位置
# 輸出結果為:
my name is 22,my age is wuye
>>>print("my age is {1},my name is {0},my age is {1}".format(name,age)) # 設置指定位置
# 輸出結果
my age is 22,my name is wuye,my age is 22

還可以通過關鍵字進行傳參

例3:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
print("my name is {name}, my age is {age}".format(name="wuye", age=22))
 
# 通過字典設置參數
site = {"name": "wuye", "age": 22}
print("my name is {name}, my age is {age}".format(**kwargs))
 
# 通過列表索引設置參數
my_list = ['wuye', 22]
print("my name is {0[0]}, my age is {0[1]}".format(my_list))  # "0" 是必須的
# 輸出結果全部為:
my name is wuye, my age is 22

1.3 數字格式化

>>>print("{:.2f}".format(3.141592653))
3.14

  

數字 格式 輸出 描述
3.1415926 {:.2f} 3.14 保留小數點后兩位
3.1415926 {:+.2f} +3.14 帶符號保留小數點后兩位
-1 {:+.2f} -1.00 帶符號保留小數點后兩位
2.71828 {:.0f} 3 不帶小數
5 {:0>2d} 05 數字補零 (填充左邊, 寬度為2)
5 {:x<4d} 5xxx 數字補x (填充右邊, 寬度為4)
10 {:x<4d} 10xx 數字補x (填充右邊, 寬度為4)
1000000 {:,} 1,000,000 以逗號分隔的數字格式
0.25 {:.2%} 25.00% 百分比格式
1000000000 {:.2e} 1.00e+09 指數記法
13 {:>10d}         13 右對齊 (默認, 寬度為10)
13 {:<10d} 13 左對齊 (寬度為10)
13 {:^10d}     13 中間對齊 (寬度為10)
11
'{:b}'.format(11)
'{:d}'.format(11)
'{:o}'.format(11)
'{:x}'.format(11)
'{:#x}'.format(11)
'{:#X}'.format(11)
1011 11 13 b 0xb 0XB
進制

^, <, > 分別是居中、左對齊、右對齊,后面帶寬度, : 號后面帶填充的字符,只能是一個字符,不指定則默認是用空格填充。

+ 表示在正數前顯示 +,負數前顯示 -;  (空格)表示在正數前加空格

b、d、o、x 分別是二進制、十進制、八進制、十六進制。

此外我們可以使用大括號 {} 來轉義大括號,如下實例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
print ("{} 對應的位置是 {{0}}".format("runoob"))

  

2. 字符串常用的的方法

字符串的所有方法如圖:

 

下面說明常用方法及示例:

# name='egon' #name=str('egon')
# print(type(name))
 
 
# ############### 優先掌握 ###############
# --------------- 1.rstrip() / lstrip() / strip()  # 去除左右空格和兩邊空格---------------
# msg='             hello         '
# print(msg)
# print(msg.strip())
# 移除‘*’
# msg='***hello*********'
# msg=msg.strip('*')
# print(msg)
#移除左邊的
# print(msg.lstrip('*'))
#移除右邊的
# print(msg.rstrip('*'))
 
#用處
while True:
    name=input('user: ').strip()
    password=input('password: ').strip()
    if name == 'egon' and password == '123':
        print('login successfull')
 
 
 
# --------------- 2.split() / rsplit()   切割 ---------------
message = '小黑現在一臉懵逼,因為昨天晚上學習,到深夜'
result = message.split(',',1)  #從左到右切割第一個字符
result1 = message.rsplit(',',1)  #從右到左切割第一個字符
print(result)
print(result1)

# msg='hello world egon say hahah'
# print(msg.split()) #默認以空格作為分隔符
 
#cmd='download|xhp.mov|3000'
# cmd_l=cmd.split('|')
# print(cmd_l[1])
# print(cmd_l[0])
# print(cmd.split('|',1))
 
#用處
while True:
    cmd=input('>>: ').strip()
    if len(cmd) == 0:continue
    cmd_l=cmd.split()
    print('命令是:%s 命令的參數是:%s' %(cmd_l[0],cmd_l[1]))
 
 

# --------------- 3.長度len ---------------
# print(len('hell 123'))
 
 

# --------------- 4.索引 ---------------
# 切片:切出子字符串
# msg='hello world'
# print(msg[1:3]) #1 2
# print(msg[1:4]) #1 2 3
 
 

# --------------- 5 .upper() / .lower() 字符串大小寫轉換 ---------------
# value = 'alex'
# new1 = value.upper()  # 變大寫
# new2 = value.lower()  # 變小寫

# 用處:驗證碼判斷
check_code = 'IyUf'
code = input('請輸入驗證碼%s:'%(check_code,))
print(code)
if code.lower() == check_code.lower():
    print('輸入正確')
 
 

# --------------- 6. startswith,endswith 以什么 開頭/結尾 ---------------
# name='wye_NB'
# print(name.endswith('NB'))
# print(name.startswith('wye'))
 
 

# --------------- 7. replace 替換 ---------------
# name='alex say :i have one tesla,my name is alex'
# print(name.replace('alex','SB',1))
 
# print('my name is %s my age is %s my sex is %s' %('wuye',22,'male'))
# print('my name is {} my age is {} my sex is {}'.format('wuye',2,'2male'))
# print('my name is {0} my age is {1} my sex is {0}:
{2}'.format('wuye',22,'male'))
# print('my name is {name} my age is {age} my sex is {sex}'.format(
#     sex='wuye',
#     age=22,
#     name='egon'))
 
 

# --------------- 8. 索引查找,計數---------------
# name='goee say hello'
# # print(name.find('S',1,3)) #顧頭不顧尾,找不到則返回-1不會報錯,找到了則顯示索引
# # print(name.index('S')) #同上,但是找不到會報錯
#
# print(name.count('S',1,5)) #顧頭不顧尾,如果不指定范圍則查找所有,找到了返回元素個數
 
 
# --------------- 9. join ---------------
# info='root:x:0:0::/root:/bin/bash'
# print(info.split(':'))
 
# l=['root', 'x', '0', '0', '', '/root', '/bin/bash']
# print(':'.join(l))
 


# --------------- 10. isdicimal 判斷是否是整數 ---------------
# name = '1'
# print(name.isdecimal()) # 只能判斷字符串中的元素
 

# ############### 了解部分 ############### # --------------- expandtabs # name='egon\thello' # print(name) # print(name.expandtabs(1)) # --------------- center,ljust,rjust,zfill # name='egon' # print(name.center(30,'-')) # 居中,左右用-填充,長度為30 # print(name.ljust(30,'*')) # 文字靠左,右邊用*填充,長度為30 # print(name.rjust(30,'*')) # 文字靠右,左邊用*填充,長度為30 # print(name.zfill(50)) #用0填充 # --------------- captalize,swapcase,title # name='eGon' # print(name.capitalize()) #首字母大寫,其余部分小寫 # print(name.swapcase()) #大小寫翻轉 # msg='egon say hi' # print(msg.title()) #每個單詞的首字母大寫 #在python3中 num0='4' num1=b'4' #bytes num2=u'4' #unicode,python3中無需加u就是unicode num3='四' #中文數字 num4='Ⅳ' #羅馬數字 #isdigt:str,bytes,unicode # print(num0.isdigit()) # print(num1.isdigit()) # print(num2.isdigit()) # print(num3.isdigit()) # print(num4.isdigit()) #isdecimal:str,unicode # num0='4' # num1=b'4' #bytes # num2=u'4' #unicode,python3中無需加u就是unicode # num3='四' #中文數字 # num4='Ⅳ' #羅馬數字 # print(num0.isdecimal()) # # print(num1.) # print(num2.isdecimal()) # print(num3.isdecimal()) # print(num4.isdecimal()) #isnumeric:str,unicode,中文,羅馬 # num0='4' # num1=b'4' #bytes # num2=u'4' #unicode,python3中無需加u就是unicode # num3='四' #中文數字 # num4='Ⅳ' #羅馬數字 # # print(num0.isnumeric()) # # print(num1) # print(num2.isnumeric()) # print(num3.isnumeric()) # print(num4.isnumeric()) # --------------- is其他 # name='egon123' # print(name.isalnum()) #字符串由字母和數字組成 # name='asdfasdfa sdf' # print(name.isalpha()) #字符串只由字母組成 # # name='asdfor123' # print(name.isidentifier()) name='egGon' print(name.islower()) # print(name.isupper()) # print(name.isspace()) name='Egon say' print(name.istitle())

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM