字符串的知識點總結:#!/usr/bin/env python
字符串:
一個個字符組成的有序的 序列,是字符的集合
使用單引號,雙引號,三引號引住的字符序列
字符串是不可變對象
pytnon3 起,字符串就是Unicode類型
字符串支持使用索引訪問
有序的字符集合,字符序列
可迭代
python字符串格式化符號:
<tbody
符 號 | 描述 |
---|---|
%c | 格式化字符及其ASCII碼 |
%s | 格式化字符串 |
%d | 格式化整數 |
%u | 格式化無符號整型 |
%o | 格式化無符號八進制數 |
%x | 格式化無符號十六進制數 |
%X | 格式化無符號十六進制數(大寫) |
%f | 格式化浮點數字,可指定小數點后的精度 |
%e | 用科學計數法格式化浮點數 |
%E | 作用同%e,用科學計數法格式化浮點數 |
%g | %f和%e的簡寫 |
%G | %f 和 %E 的簡寫 |
%p | 用十六進制數格式化變量的地址 |
格式化操作符輔助指令:
符號 | 功能 |
---|---|
* | 定義寬度或者小數點精度 |
- | 用做左對齊 |
+ | 在正數前面顯示加號( + ) |
<sp> | 在正數前面顯示空格 |
# | 在八進制數前面顯示零('0'),在十六進制前面顯示'0x'或者'0X'(取決於用的是'x'還是'X') |
0 | 顯示的數字前面填充'0'而不是默認的空格 |
% | '%%'輸出一個單一的'%' |
(var) | 映射變量(字典參數) |
m.n. | m 是顯示的最小總寬度,n 是小數點后的位數(如果可用的話) |

# -*- coding:utf-8 -*-
# __author__:anxu.qi
# Date:2018/11/19
##################### 首字母大寫(capitalize) ##############################################
# capitalize : 首字母大寫,其他字符串中的字符全是小寫
aa = "beijing Tami KEJI YouXian GongSi"
print(aa.capitalize()) # 僅僅是整個字符串的首字母變大寫,其他都變成小寫。
# 結果:Beijing tami keji youxian gongsi
##################### 內容居中 (center)##############################################
# center :設置總長度,內容居中
# center(self, width, fillchar=None):
# 內容居中,width:總長度;fillchar:空白處填充內容,默認為空格,但是只能填寫一個字符
aa = "beijing Tami KEJI YouXian GongSi"
print(aa.center(50,'_')) # 內容居中,總長度為50,空白處填寫'_'
# 結果: _________beijing Tami KEJI YouXian GongSi_________
注:print(aa.center(50, '99'))
結果報錯:只能填寫一個字符
print(aa.center(50, '99'))
TypeError: The fill character must be exactly one character long
##################### 左右 填充 (just 、ljust、rjust)##############################################
# ljust(self, width, fillchar=None): (left 左 ) (right 右)
# 內容左對齊,右側填充。
aa = "beijing Tami KEJI YouXian GongSi"
# print(aa.ljust(50,'0000')) # TypeError: The fill character must be exactly one character long
# 以上是一個錯誤,原因是:填充字符必須正好是一個字符長
print(aa.ljust(50,'*'),1111111)
print(aa.rjust(50,'*'),1111111)
# 結果:beijing Tami KEJI YouXian GongSi****************** 1111111
# ljust(self, width, fillchar=None):
# 內容右對齊,右側填充。
aa = "beijing Tami KEJI YouXian GongSi"
# print(aa.ljust(50,'0000')) # TypeError: The fill character must be exactly one character long
# 以上是一個錯誤,原因是:填充字符必須正好是一個字符長
print(aa.rjust(50,'*'),1111111)
# 結果:beijing Tami KEJI YouXian GongSi****************** 1111111
##################### 方法返回指定長度的字符串,原字符串右對齊,前面填充0 ##############################################
# zfill(self, width):
# 方法返回指定長度的字符串,原字符串右對齊,前面填充0。
aa = "beijing Tami KEJI YouXian GongSi"
print(aa.zfill(50))
# 結果:000000000000000000beijing Tami KEJI YouXian GongSi
##################### 統計子序列個數(count) ##############################################
# count :統計子序列個數
# count(self, sub, start=None, end=None)
aa = "beijing Tami KEJI YouXian GongSi"
print(aa.count('i')) # 只寫統計的字符,就是統計全部出現的個數
# 結果:5
print(aa.count('i',4)) # 從下標4開始尋找,一直到結束
# 結果:4
print(aa.count('i',0,4)) # 從下標0找到下標4
# 結果:1
##################### 是否以什么字符結尾 (endswith)##############################################
# endswith :是否以 xxx 結束
# endswith(self, suffix, start=None, end=None)
aa = "beijing Tami KEJI YouXian GongSi"
# print(aa.endswith(suffix='ong''si'))
print(aa.endswith('Si'))
# 結果:True
print(aa.endswith('g',0,7),111111100000) # 獲取字符串里大於等於0的位置,小於7的位置。
# 結果:True
##################### 是否以什么字符串開始(startswith) ##############################################
# startswith(self, prefix, start=None, end=None):
# """ 是否起始 """
##################### tab鍵轉換為空格 (expandtabs)##############################################
# expandtabs 默認將一個tab轉換為4個空格
# expandtabs(self, tabsize=None)
aa = "beijing Tami\tKEJI YouXian GongSi"
print(aa)
print(aa.expandtabs()) # 默認為4個
# 結果:beijing Tami KEJI YouXian GongSi
print(aa.expandtabs(20))
# 結果:beijing Tami KEJI YouXian GongSi
##################### 左右尋找子序列 (find)##############################################
# find 尋找子序列位置,如果沒找到,返回 -1 注:找到之后,只會反會第一個的下標值。
# find(self, sub, start=None, end=None)
aa = "beijing Tami KEJI YouXian GongSi"
print(aa.find('on'))
# 結果:27 下標是27
print(aa.find('cc'))
# 結果:-1
print(aa.find('i',12)) # 從下標12 開始查找,直至結束
print(aa.find('i',0,10)) # 查找范圍為下標0-10 ,只返回第一個的下標值。
# 結果:2
# rfind (self, sub, start=None, end=None):
# 從右往左查詢 #找到最右邊的值的下標返回,方法和find相同
s = "hello {0},age {1}"
print(s)
# 結果: hello {0},age {1}
new1 = s.format('alex',19)
print(new1)
# 結果:hello alex,age 19
# 方式二:
test = 'I am is {name},age = {age}'
v = test.format(name='xiaoming',age=19)
print(test)
print(v)
# 結果 :
I am is {name},age = {age}
I am is xiaoming,age = 19
# def format(self, *args, **kwargs):name = "my \tname is {name} and i am {year} old"
print(name.format(name='tami',year=30))
# my name is tami and i am 30 old
##################### 格式化(format)*** ##############################################
##################### 替換占用符 ##############################################
# 方式一:
# 格式化,將一個字符串中的占位符替換為指定的值
# format(*args, **kwargs) 替換符:替換的值要一 一對應才可以。
“{}{xxx}”.format(*agrs,**kwargs)
args 是位置參數,是一個元組
kwargs 是關鍵字參數,是一個字典
花括號表示占位符
{} 表示按照順序匹配位置參數,{n} 表示取位置參數索引為n的值
{xxx} 表示在關鍵字參數中搜索名稱一致的
{{}} 表示打印花括號
##### 最新整理的 format *** #########


”
元組的形式:

字典的類型:
列表形式:format最終會將傳入的內容都轉換為元組的形式,給前面的參數對應起來。
##################### %s %d %f ########################
要么就是單個的值,要么就是元組,要么就是字典
參考地址:老男孩講師alex博客鏈接
https://www.cnblogs.com/wupeiqi/articles/5484747.html
1、百分號方式
%[(name)][flags][width].[precision]typecode
- (name) 可選,用於選擇指定的key
- flags 可選,可供選擇的值有:
- + 右對齊;正數前加正好,負數前加負號;
- - 左對齊;正數前無符號,負數前加負號;
- 空格 右對齊;正數前加空格,負數前加負號;
- 0 右對齊;正數前無符號,負數前加負號;用0填充空白處
- width 可選,占有寬度
- .precision 可選,小數點后保留的位數
- typecode 必選
- s,獲取傳入對象的__str__方法的返回值,並將其格式化到指定位置
- r,獲取傳入對象的__repr__方法的返回值,並將其格式化到指定位置
- c,整數:將數字轉換成其unicode對應的值,10進制范圍為 0 <= i <= 1114111(py27則只支持0-255);字符:將字符添加到指定位置
- o,將整數轉換成 八 進制表示,並將其格式化到指定位置
- x,將整數轉換成十六進制表示,並將其格式化到指定位置
- d,將整數、浮點數轉換成 十 進制表示,並將其格式化到指定位置
- e,將整數、浮點數轉換成科學計數法,並將其格式化到指定位置(小寫e)
- E,將整數、浮點數轉換成科學計數法,並將其格式化到指定位置(大寫E)
- f, 將整數、浮點數轉換成浮點數表示,並將其格式化到指定位置(默認保留小數點后6位)
- F,同上
- g,自動調整將整數、浮點數轉換成 浮點型或科學計數法表示(超過6位數用科學計數法),並將其格式化到指定位置(如果是科學計數則是e;)
- G,自動調整將整數、浮點數轉換成 浮點型或科學計數法表示(超過6位數用科學計數法),並將其格式化到指定位置(如果是科學計數則是E;)
- %,當字符串中存在格式化標志時,需要用 %%表示一個百分號
注:Python中百分號格式化是不存在自動將整數轉換成二進制表示的方式
常用格式化:
1
2
3
4
5
6
7
8
9
10
11
|
tpl
=
"i am %s"
%
"alex"
tpl
=
"i am %s age %d"
%
(
"alex"
,
18
)
tpl
=
"i am %(name)s age %(age)d"
%
{
"name"
:
"alex"
,
"age"
:
18
}
tpl
=
"percent %.2f"
%
99.97623
tpl
=
"i am %(pp).2f"
%
{
"pp"
:
123.425556
, }
tpl
=
"i am %.2f %%"
%
{
"pp"
:
123.425556
, }
|
2、Format方式
[[fill]align][sign][#][0][width][,][.precision][type]
- fill 【可選】空白處填充的字符
- align 【可選】對齊方式(需配合width使用)
- <,內容左對齊
- >,內容右對齊(默認)
- =,內容右對齊,將符號放置在填充字符的左側,且只對數字類型有效。 即使:符號+填充物+數字
- ^,內容居中
- sign 【可選】有無符號數字
- +,正號加正,負號加負;
- -,正號不變,負號加負;
- 空格 ,正號空格,負號加負;
- # 【可選】對於二進制、八進制、十六進制,如果加上#,會顯示 0b/0o/0x,否則不顯示
- , 【可選】為數字添加分隔符,如:1,000,000
- width 【可選】格式化位所占寬度
- .precision 【可選】小數位保留精度
- type 【可選】格式化類型
- 傳入” 字符串類型 “的參數
- s,格式化字符串類型數據
- 空白,未指定類型,則默認是None,同s
- 傳入“ 整數類型 ”的參數
- b,將10進制整數自動轉換成2進制表示然后格式化
- c,將10進制整數自動轉換為其對應的unicode字符
- d,十進制整數
- o,將10進制整數自動轉換成8進制表示然后格式化;
- x,將10進制整數自動轉換成16進制表示然后格式化(小寫x)
- X,將10進制整數自動轉換成16進制表示然后格式化(大寫X)
- 傳入“ 浮點型或小數類型 ”的參數
- e, 轉換為科學計數法(小寫e)表示,然后格式化;
- E, 轉換為科學計數法(大寫E)表示,然后格式化;
- f , 轉換為浮點型(默認小數點后保留6位)表示,然后格式化;
- F, 轉換為浮點型(默認小數點后保留6位)表示,然后格式化;
- g, 自動在e和f中切換
- G, 自動在E和F中切換
- %,顯示百分比(默認顯示小數點后6位)
- 傳入” 字符串類型 “的參數
常用格式化:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
tpl
=
"i am {}, age {}, {}"
.
format
(
"seven"
,
18
,
'alex'
)
tpl
=
"i am {}, age {}, {}"
.
format
(
*
[
"seven"
,
18
,
'alex'
])
tpl
=
"i am {0}, age {1}, really {0}"
.
format
(
"seven"
,
18
)
tpl
=
"i am {0}, age {1}, really {0}"
.
format
(
*
[
"seven"
,
18
])
tpl
=
"i am {name}, age {age}, really {name}"
.
format
(name
=
"seven"
, age
=
18
)
tpl
=
"i am {name}, age {age}, really {name}"
.
format
(
*
*
{
"name"
:
"seven"
,
"age"
:
18
})
tpl
=
"i am {0[0]}, age {0[1]}, really {0[2]}"
.
format
([
1
,
2
,
3
], [
11
,
22
,
33
])
tpl
=
"i am {:s}, age {:d}, money {:f}"
.
format
(
"seven"
,
18
,
88888.1
)
tpl
=
"i am {:s}, age {:d}"
.
format
(
*
[
"seven"
,
18
])
tpl
=
"i am {name:s}, age {age:d}"
.
format
(name
=
"seven"
, age
=
18
)
tpl
=
"i am {name:s}, age {age:d}"
.
format
(
*
*
{
"name"
:
"seven"
,
"age"
:
18
})
tpl
=
"numbers: {:b},{:o},{:d},{:x},{:X}, {:%}"
.
format
(
15
,
15
,
15
,
15
,
15
,
15.87623
,
2
)
tpl
=
"numbers: {:b},{:o},{:d},{:x},{:X}, {:%}"
.
format
(
15
,
15
,
15
,
15
,
15
,
15.87623
,
2
)
tpl
=
"numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}"
.
format
(
15
)
tpl
=
"numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}"
.
format
(num
=
15
)
|
更多格式化操作:https://docs.python.org/3/library/string.html
格式化另一種方式 %s %s : 是萬能的
%d :只接受整型數字
%f: 浮點數
%s傳一個參數時:

截取指定位數的字符:

%s傳多個參數時:
%d:只能是整型數字類型

%d必須是數字填寫其他類型會報錯
%f:浮點數(帶小數點的)類型

要保留指定位數的小數:
# 打印百分比 使用兩個%%,即可打印出來
注:linux中是用單引號,或者是\ ,python中沒有這功能,就使用2個%%

使用字典形式進行傳參:
左對齊和右對齊
給字符串添加顏色的
列表形式的:
直接傳入列表:注意要加入一個*號
# 不同格式
##################### 格式化(format_map)##############################################
print(name.format_map({'name':"nginx",'year':33}))
# my name is nginx and i am 33 old
##################### index左右查找子序列 ##############################################
# index(self, sub, start=None, end=None)
# 子序列位置,如果沒找到,報錯,還是用find比較好,因為找不到返回-1
aa = "beijing Tami KEJI YouXian GongSi"
print(aa.index('i'))
# 結果:2
print(aa.index('i',10),22222)
print(aa.index('i',7,15)) # 從下標7開始到下標15結束
# 結果:11
print('#####################################################')
# print(aa.index('adf'))
# 結果:ValueError: substring not found
# rindex(self, sub, start=None, end=None):
# 從右往左查詢
##################### 判斷是否是字母和數字(isalnum) ##############################################
判斷字符串中 只能包含 字母和數字
# isalnum(self) # 判斷是否是字母和數字
aa = "beijing Tami KEJI YouXian GongSi 111"
print(aa.isalnum())
# 結果是 False 因為字符串中有空格。
aa = "beijingamiKEJIYouXianGongSi111" #
print(aa.isalnum())
# 結果是 Ture 。
##################### 判斷是否是英文或是漢字(isalpha) ##############################################
# isalpha(self)
# 判斷是否是字母
aa = "beijing Tami KEJI YouXian GongSi" #中間有空格是不可以的
print(aa.isalpha())
# 結果為False
aa = "beijingTamiKEJIYouXianGongSi北京呵呵呵有限公司"
print(aa.isalpha())
# 結果為True
##################### 判斷是否是十進制數字(isdecimal) ##############################################
print("1.23".isdecimal()) # 判斷是否是十進制數
# Flase
print("111".isdecimal())
# True
##################### 判斷是或否是數字(isdigit) ##############################################
純數字時:
純數字+特殊符號②時

純數字+特殊符號②時+中文二時
具體的判斷范圍:
經常用來判斷數字的情況下,要用 isdecimal
使用情況:
# isdigit(self): # 判斷是否是數字digit
test = "②"
print(test.isdecimal())
# 結果為False
print(test.isdigit())
# 結果為True
##################### 判斷是不是數字 (isnumeric)
# 功能好像是一樣的
print("123".isnumeric())
# True
##################### 判斷是否存在不可顯示的字符(isprintable) ##############################################
如果字符串中含有不可見的字符的時候,會報錯,一般指的就是\t 或者是\n等等
\t : tab 制表符
\n : enter 回車換行符

##################### 判斷是不是一個合法的標識符(isidentfier) ##############################################
# def isidentifier(self): # real signature unknown; restored from __doc__
注:數字、下划線、字母 開頭的都符合
print("-11".isidentifier())
# 結果:False
print("a1".isidentifier())
# 結果:True
a = "_abc123"
v = a.isidentifier()
print(v)
# 結果:True
##################### 判斷字母是否全部小寫(islower)或大寫(isupper) ##############################################
# islower(self): # 判斷全部是否小寫
# isupper(self): # 判斷全部是否大寫
##################### 判斷時候是空格(isspace)##############################################
# 判斷字符串是或否全部都是空格
注:“” 空字符串不是空格
一個或者多個空格都是true
包括\t 或者是\n也是true
# isspace(self): # 是否空格
##################### 判斷時候是標題 (istitle)##############################################
# istitle(self): # 是否是標題 注:標題必須是每個單詞的首字母都要大寫
aa = "beijing Tami KEJI YouXian GongSi"
print(aa.istitle()) # False
aa = "Beijing Tami Keji Youxian Gongxi"
print(aa.istitle()) # True
##################### 連接 (join) ##############################################
# 將字符串中的每一個 元素 按照 指定分割符 進行拼接。
將可迭代對象連接起來,使用string作為分隔符
可迭代對象本身元素都是字符串
返回一個新的字符串

修改一下:就可以打印了。

# join 連接 列表或者是元組也是支持的。
li = ["alix","eric"]
# 變成"alix_eric"
# join(self, iterable): # iterable :表示可迭代的
lili = "_".join(li)
print(lili) # alix_eric
lili2 = "*****".join(li)
print(lili2)
# 結果: alix*****eric
# #################### 舉li = "aa bb cc dd"li2 = "+".join(li)
print(li2)
# 結果:a+a+ +b+b+ +c+c+ +d+d
aa = "12345"
aa2 = "+-+".join(aa)
print(aa2)
# 結果: 1+-+2+-+3+-+4+-+5
##################### strip 移除左右空白(換行符)可指定字符進行移除
從字符串兩端去除指定的字符集chars中的所有字符
如果chars沒有指定,去除兩端的空白字符
######################## lstrip(self, chars=None): # 移除左空白
# rstrip(self, chars=None): #移除右空白
# strip(self, chars=None): #移除左右空白
aa = " beijing Tami KEJI YouXian GongSi "
print(aa.lstrip())
print(aa.rstrip())
print(aa.strip()) # strip 脫去的意思
注:默認strip()不加任何參數,是移除空白(空格、tab、\n、\t 都可以),
加上參數以后:
trip("$") 就是移除兩側的$
移除指定字符串,優先最多匹配
##################### 密碼加密(maketrans) ##############################################
# maketrans(self, *args, **kwargs): # real signature unknown
# 可以配置隨機密碼,必須得一一對應
p = str.maketrans("abcdef","123456") # “”,“”數量要對應起來
print("alex li".translate(p))
##################### 字符分割(partition)從左或者是從右 ,只切一刀。##############################################
partition(sep)
從左至右,遇到分隔符就把字符串分隔成兩部分,返回頭,分隔符、尾三部分的三元組;如果沒有找到分隔符,返回頭,兩個空元素的三元組。
sep 分隔字符串,必須指定
切一刀用partition ,切多刀就用split



# partition(self, sep):
# 分隔、前,中,后,三部分 ,默認是從左往右
aa = "beijing Tami KEJI YouXian GongSi"
print(aa.partition('i'))
# 結果:('be', 'i', 'jing Tami KEJI YouXian GongSi')
# rpartition(self, sep): # 從右往左
aa = "beijing Tami KEJI YouXian GongSi"
print(aa.rpartition('i'))
# 結果:('beijing Tami KEJI YouXian GongS', 'i', '')
##################### 字符替換(replace) ** ##############################################
# replace(old, new, count=None):
字符串中找到匹配替換為新子串,返回新字符串。
count 表示替換幾次,不指定就是全部替換。
print('www.tamiyun-wz.com'.replace('w', 'o'))
# ooo.tamiyun-oz.com
# 將w 替換為o,沒有指定次數,就是全部替換
print('www.tamiyun-wz.com'.replace('w', 'o', 2))
# oow.tamiyun-wz.com
# 將w 替換為o,指定次數為2次
print('www.tamiyun-wz.com'.replace('w', 'o', 3))
# ooo.tamiyun-wz.com
# 將w 替換為o,替換3次
print('www.tamiyun-wz.com'.replace('ww', 'p', 2))
# pw.tamiyun-wz.com
# 將ww 替換為p ,替換2次
print('www.tamiyun.com'.replace('www', 'python', 2))
# python.tamiyun-wz.com
# 將www 替換為python 替換兩次
# 替換 默認是替換全部
aa = "beijing Tami KEJI YouXian GongSi"
print(aa.replace('i','0000'))
# 結果:beijing Tami KEJI YouXian gongsi
print(aa.replace('i','0000',2))
# 結果:be0000j0000ng Tami KEJI YouXian GongSi 2是從左往右替換倆
##################### 字符左右分隔 (split、rsplit)##############################################
split(sep = Nome,maxsplit=-1)
從左至右
sep指定分隔字符串,缺省情況下空白字符串作為分隔符
maxsplit 指定分隔的次數,-1 表示遍歷整個字符串
默認是按照 盡可能多的 連成一起的空白字符 作為一個分隔符。空白字符+(一個或N個)
# rsplit(self, sep=None, maxsplit=None): # 默認是使用的空白字符進行分割的,立即返回一個列表。
# """ 分割, maxsplit最多分割幾次 """
aa = "beijing Tami KEJI YouXian GongSi"
bb = aa.split('o') # 找到所有的o做分隔符
print(bb)
# 結果:['beijing Tami KEJI Y', 'uXian G', 'ngSi']
bb = aa.split('o',1) # 找到第一個o做分隔符,后面的o不生效
print(bb)
# 結果:['beijing Tami KEJI Y', 'uXian GongSi']
默認是按照 盡可能多的 連成一起的空白字符 作為一個分隔符。空白字符+(一個或N個)
##################### 根據換行符\n 分隔 (splitlines) ##############################################
# splitlines(self, keepends=False):
# """ 根據換行分割 """
aa = "beijing Tami KEJ\nYouXian GongSi"
print(aa.splitlines())
# 結果:['beijing Tami KEJ', 'YouXian GongSi']
##################### 大小寫互轉 (swapcase)##############################################
# swapcase(self):
# 大寫變小寫,小寫變大寫
aa = "beijing Tami KEJ YouXian GongSi"
print(aa.swapcase())
# 結果:BEIJING tAMI kej yOUxIAN gONGsI
##################### 變成大寫(upper) ##############################################
一般用來是輸入驗證碼的時候,統一變成小寫或者是大寫
# upper(self):
aa = "beijing Tami KEJI YouXian GongSi"
print(aa.upper())
# 結果:BEIJING TAMI KEJI YOUXIAN GONGSI # 不管是大寫還是小寫都變成大寫
##################### 變成小寫(lower) ##############################################.
一般用來是輸入驗證碼的時候,統一變成小寫或者是大寫
# upper(self):
aa = "beijing Tami KEJI YouXian GongSi"
print(aa.upper())
# 結果:beijing tami keji youxian gongsi # 不管是大寫還是小寫都變成小寫
##################### 轉換為標題(title) ##############################################
# title(self): # 單詞的首字母大寫
aa = "beijing Tami KEJ YouXian GongSi"
print(aa.title())
# 結果:Beijing Tami Kej Youxian Gongsi # 首字母不管是大寫還是小寫都變成大寫
##################### 轉換,需要先做一個對應表,最后一個表示刪除字符集合 ##############################################
# translate(self, table, deletechars=None):
# 轉換,需要先做一個對應表,最后一個表示刪除字符集合
aa = "beijing Tami KEJI YouXian GongSi"
# 這個先不用理解
##################### 索引和切片 ##############################################
aa = "beijing Tami KEJI YouXian GongSi"
# 索引
print(aa[0])
# 結果:b
# (長度)
aa = "beijing Tami KEJI YouXian GongSi"
print(len(aa))
# 32
# 切片
aa = "beijing Tami KEJI YouXian GongSi"
print(aa[0:2])
# be
# #循環 遍歷字符串中的所有元素
# start = 0
# while start < len(aa):
# temp = aa[start]
# print(aa[start])
# start += 1
# for 循環
for i in aa:
if i == "i":
continue
print(i)