[TOC]
>[success] # 字符串類型
~~~
1.str,python當中凡是用引號引起來的都是字符串,用三引號引起來的是換行字符串
2.可相加:字符串的拼接。
3.可相乘:str * int
~~~
>[danger] ##### 案例
~~~
name = "wang"
names = """
wang,
chun
"""
name_add = "wang"+"chun"
name_copy = "wang" * 3
print(name)
print(names)
print(name_add)
print(name_copy)
打印結果:
wang
wang,
chun
wangchun
wangwangwang
~~~
>[success] # 字符串方法
~~~
1.capitalize 首字母大寫
2.upper 全部大寫
3.lower 全部小寫
4.swapcase翻轉大小寫
5.title 隔開的首字母大寫
6.startswith 判斷以什么開頭三個參數
7.endswith判斷以什么結尾三個參數
8.find 找到字符串中位置(三個參數可以指定位置)
9.index 找到字符串中位置(和find不同找不到報錯)
10.sprit 去空格
11.count 計數出現的頻率
12.split 切割字符串
13.format字符格式化輸出
14.replace 替換
15.長度len()
~~~
>[danger] ##### capitalize 首字母大寫
~~~python
s = "this Is Capitalize Function"
print(s.capitalize())
打印結果:
This is capitalize function
~~~
>[danger] ##### upper 全部大寫
~~~
s = "this Is Capitalize Function"
print(s.upper())
打印結果:
THIS IS CAPITALIZE FUNCTION
~~~
>[danger] ##### lower 全部小寫
~~~
s = "THIS IS CAPITALIZE FUNCTION"
print(s.lower())
打印結果:
this is capitalize function
~~~
>[danger] ##### casefold 把所有變小寫
~~~
# 和lower 的區別,lower只能針對英文ASCII碼變小寫,casefold可以針對任何語言
s = "THIS IS CAPITALIZE FUNCTION"
print(s.casefold())
打印結果:
this is capitalize function
~~~
>[danger] ##### swapcase翻轉大小寫
~~~
s = "this Is Capitalize Function"
print(s.swapcase())
打印結果:
THIS iS cAPITALIZE fUNCTION
~~~
>[danger] ##### title 隔開的首字母大寫
~~~ python
# 空格隔開的字母首位大寫
s = "this*is1capitalize function"
print(s.title())
打印結果:
This*Is1Capitalize Function
~~~
>[danger] ##### istitle 判斷是否為標題就是每個首字母是否大寫
~~~
test = "Return True if all cased characters in S are uppercase and there is"
v = test.istitle()
print(v)
打印結果:
False
~~~
>[danger] ##### startswith 判斷以什么開頭三個參數
~~~
1.判斷以什么開頭,是返回True 否返回Flase
2.指定位置,判斷開頭位置
~~~
~~~
s = "this Is Capitalize Function"
print(s.startswith('th'))
print(s.startswith('l'))
print(s.startswith('Ca', 8, 11))
打印結果:
True
False
True
~~~
>[danger] ##### endswith判斷以什么結尾三個參數
~~~
1.判斷以什么結尾,是返回True 否返回Flase
2.指定位置,判斷結尾開始位置,末尾從1開始
~~~
~~~
s = "this Is Capitalize Function"
print(s.endswith('on'))
print(s.endswith('l'))
print(s.endswith('tio', 4, -1))
打印結果:
True
False
True
~~~
>[danger] ##### find 找到字符串中位置(三個參數可以指定位置)
~~~
1.查詢字符串的位置,查到返回第一個查詢到位置數字,不存在返回-1
2.默認從左開始查詢,使用rfind從右開始查詢
~~~
~~~
s = "this Is Capitalize Function"
print(s.find('s'))
print(s.find('1'))
打印結果:
3
-1
~~~
>[danger] ##### index 找到字符串中位置(和find不同找不到報錯)
~~~
1.默認從右開始查詢,使用rindex從右開始查詢
~~~
~~~
s = "this Is Capitalize Function"
print(s.index('s'))
print(s.index('1'))
打印結果:
3
報錯信息
~~~
>[danger] ##### sprit 去空格
~~~
1.只能去掉前后的空格,或者前后的指定字符串
2.可以使用lstrip/rstrip 去掉左右的信息
3.默認是去掉一切前后產生空格的例如:還能去掉\n和\t
~~~
~~~
s = " this "
print(s.strip(" t"))
print(s.strip())
print(s.rstrip())
print(s.lstrip())
打印結果:
his
this
this
this
~~~
>[danger] ##### count 計數出現的頻率
~~~
s = "this t "
print(s.count("t"))
打印結果:
2
~~~
>[danger] ##### split 切割字符串
~~~
s = "this"
print(s.split("t"))
打印結果:
['', 'his']
~~~
>[danger] ##### 換行分割
~~~
# 只能填寫參數True/Flase,分割的效果是是否保留換行
test = "asdfadfasdf\nasdfasdf\nadfasdf"
v = test.splitlines(True)
v1 = test.splitlines(False)
print(v, v1)
打印結果:
['asdfadfasdf\n', 'asdfasdf\n', 'adfasdf'] ['asdfadfasdf', 'asdfasdf', 'adfasdf']
~~~
>[danger] ##### partition 分割字符串
~~~
# 只能分割一次 且包含分割對象
test = "testasdsddfg"
v = test.partition('s')
print(v)
v = test.rpartition('s')
print(v)
打印結果:
('te', 's', 'tasdsddfg')
~~~
>[danger] ##### format字符格式化輸出
~~~
s = '我叫{},今年{},愛好{},再說一下我叫{}'.format('太白',36,'girl','太白')
print(s)
name = input('請輸入名字:')
s = '我叫{0},今年{1},愛好{2},再說一下我叫{0}'.format(name,36,'girl')
print(s)
name = input('請輸入名字:')
s = '我叫{name},今年{age},愛好{hobby},再說一下我叫{name}'.format(age=18,name=name,hobby='girl')
print(s)
打印結果:
我叫太白,今年36,愛好girl,再說一下我叫太白
請輸入名字:11
我叫11,今年36,愛好girl,再說一下我叫11
請輸入名字:22
我叫22,今年18,愛好girl,再說一下我叫22
~~~
>[danger] ##### replace 替換
~~~
使用 replace() 函數可以進行簡單的子串替換。用于替換的新子串,以及需
要替換多少處。最后一個參數如果省略則默認只替換全部例:
~~~
~~~
A = "我想把,逗號,變成句號"
print(A.replace(',','。'))
print(A.replace(',','。',1))
打印結果:
我想把。逗號。變成句號
我想把。逗號,變成句號
~~~
>[danger] ##### 長度len()
~~~
len()獲取長度
為了知道字符串,數組,字典等長度,可以使用len()方法例:
A = "一二三四五六七"
print(len(A))
打印結果:
7
~~~
>[danger] ##### 一些對齊操作center()/ljust()/rjust() 居中,左對齊,右對齊
~~~
center()/ljust()/rjust() 居中,左對齊,右對齊
~~~
>[danger] ##### 判斷字符串組成
~~~
name='wang123'
print(name.isalnum()) #字符串由字母或數字組成
print(name.isalpha()) #字符串只由字母組成
print(name.isdigit()) #字符串只由數字組成
~~~
>[danger] ##### 常用判斷數字 isdecimal
~~~
test = "二" # 1,②
# 只能是十進制的字符串 例如10 ,負數不可以的
v1 = test.isdecimal()
# 跟上面類似,但支持②
v2 = test.isdigit()
# 上面的都支持 額外還支持漢字
v3 = test.isnumeric()
print(v1,v2,v3)
打印結果:
False False True
~~~
>[danger] 判斷字符串中是否有制表和換行 isprintable
~~~
# 有就flase 沒有就true
test = "oiuas\tdfkj"
v = test.isprintable()
print(v)
打印結果:
False
~~~
>[danger] ##### 判斷是否都是空格 isspace
~~~
test = " "
v = test.isspace()
print(v)
打印結果:
True
~~~
>[danger] ##### maketrans -- 替換
~~~
v = "我是你好大家好"
m = str.maketrans("我你", "15")
new_v = v.translate(m)
print(new_v)
打印結果:
1是5好大家好
~~~
>[success] # % 用百分號占位
~~~
1.%s 表示字符串
2.%d 表示數字
3.%% 雙百分號可以正常輸出一個單%號
~~~
>[danger] ##### 案例
~~~
name = input('請輸入姓名')
age = int(input('請輸入年齡'))
height = input('請輸入身高')
msg = "我叫%s,今年%d 身高 %s 輸出一個百分號 %%" %(name,age,height)
print(msg)
打印結果:
我叫wnag,今年12 身高 176 輸出一個百分號 %
~~~
- PYTHON-- 基礎
- Python -- 變量、常量、注解
- 算數\比較\賦值\邏輯運算符
- Python -- input 控制臺用戶輸入
- Python -- 流程控制/循環語句
- Python -- 切片
- Python -- 數據類型
- 基礎數據類型
- int -- 數字類型
- str -- 字符類型
- bool -- 布爾類型
- list -- 列表
- type -- 元祖
- dict -- 字典
- set -- 集合
- Python -- 深淺copy
- Python -- 文件的讀寫
- Python -- 函數
- 函數 -- 做參數使用
- 函數 -- 閉包
- 函數 -- 生成器
- 函數 -- 列表推導式
- 案例
- 基礎案例一
- 基礎案例二
- 基礎案例三
- COOKBOOK
- LIST、STR、DICT、TUPLE
- LIST - 列表方法總結
- 一、序列拆分成單獨變量
- 二、* 妙用
- 三、deque- 雙向隊列
- 四、求找到最大或最小的N個元素
- 4.1 heapq-- 簡單使用
- 五、去重并保持列表順序不變
- 六、切片slice
- 七、counter 統計序列中元素次數
- 八、itemgetter 列表套著字典排序
- 九、處理大量的列表數據
- 十、隨機事件處理列表
- DICT - 字典的總結方法
- 一、defaultdict 解決 KeyError
- 二、OrdereDict有序字典
- 三、zip 和 max/min 比較
- IDCT和LIST- 推導式
- 一、LIST 推導式
- 二、字典推到式
- TUPLE-元組
- 一、命名元組
- STR-字符串
- 一、常見的字符串方法
- 二、字符串拆分
- 三、字符串的位置匹配
- 四、字符串替換
- 五、正則大小寫/換行匹配
- 六、對字節類型處理
- 數字、日期、時間處理
- 一、數字的處理
- 二、時間換算
- 2.1 時間運算
- 2.2計算某一時刻上周幾的日期
- 2.2對時間轉換格式優化
- 迭代器和生成器
- 一、iter 迭代器 使用案例
- 二、生成器 yeild
- 三、構建一個反向迭代方法
- 四、實現反正函數構造
- 五、迭代對象切片/跳過元素
- 六、迭代出所有的組合排列
- 七、索引-值迭代序列化
- 八、zip 同時迭代多個序列
- 九、同時循環多個可迭代對象
- 十、yield from 遞歸案例
- 十一、合并序列,并按順序輸出
- 十二、使用 iter 替代 while True
- 操作文件
- 一、處理文件路徑
- 二、檢測文件/獲取文件信息
- 函數
- 一、函數基本案例使用
- 二、匿名函數
- 三、回調函數
- 四、閉包實現一個單個方法類
- 五、函數嵌套回調函數
- 類與對象
- 一、str/repr--讓類字符串表示
- 二、format -- 格式化類的內容
- 三、with -- 上下文管理類
- 四、創建節省內存的類
- 五、將類里面方法變成屬性
- 六、調用父類方法
- 七、擴展子類中的屬性
- 八、創建新的類或者實類屬性
- 九、簡化數據結果,簡化init
- 十、python 接口寫法
- 十一、通過類屬性創建委托訪問
- 十二、__new__重新初始化init
- 十三、通過字符串調用類
- 元編程
- 一、裝飾器
- 1.1 去掉裝飾器修飾
- 1.2 可接受參數裝飾器
- 1.3利用裝飾器對函數參數類型檢查
- 1.4編寫類裝飾器
- 1.5為類方法和靜態方法加裝飾器
- 1.6通過裝飾器給裝飾函數加參數
- 線程和進程