day 7 字符串
Posted 不要被骄傲遮蔽了双眼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day 7 字符串相关的知识,希望对你有一定的参考价值。
6.字符串的常见操作 知道方向,不要去背 1)find,index #查找 2)count 和replace #替换 3)split # 分割(数据清洗) 4)capitalize 和 title #首字母大写 5)startswitch endswitch #开头结尾(上传文件名称盘判断) 6)lower,upper #转换为大小写(用户输入同一格式) 7)center ,ljust,rjust # 居中显示(网易云歌词) 8)strip 去除空格,\\n,\\t #(数据清洗) 9) partition,rpartition #分割 (广播体操带队) 10)splitlines # 按行\\n分割 11) isdigit isalpha isalnum # 注册时,必须是字母和数字的组合 12)join #构建字符串 13)format: #格式化输出
浮点数判断
type(eval("123")) == int type(eval("123.23")) == float
1.num=10 和 num=“10”的区别
numb=10 内存中占用1个字节
num=“10“ 内存中占用3个字节
注意:c语言中 字符串末尾还有\\0结束符
2.类型转换
In [1]: num = 100 In [2]: num2 = "100" In [3]: name = alex ###################### In [5]: int(num2) Out[5]: 100 In [6]: str(num) Out[6]: \'100\' ###################### In [7]: len(name) Out[7]: 4 #在内存占用4个字节
3.字符串拼接的2种方式
In [9]: a = "lao" In [10]: b = "wang" In [11]: c = a+b In [12]: c Out[12]: \'laowang\' In [13]: ######################## In [13]: A = 10 In [14]: B = 2 In [15]: C = A+B In [16]: C Out[16]: 12
完成结果显示 In [18]: "===langwang===" Out[18]: \'===langwang===\' ####################### 第1种方式 In [19]: e = "===" + a + b + "===" In [20]: e Out[20]: \'===laowang===\' ####################### 第2种方式 In [21]: f = "===%s==="%(a+b) In [22]: f Out[22]: \'===laowang===\'
4.字符串的下标
In [23]: name = "abcdef" In [24]: name[0] #0 下标 Out[24]: \'a\' #a 元素 In [25]: name[5] Out[25]: \'f\' ######################## 越界 In [26]: name[6] --------------------------------------------------------------------------- IndexError Traceback (most recent call last) <ipython-input-26-b480563304b2> in <module>() ----> 1 name[6] IndexError: string index out of range ################# [-3][-2][-1] In [29]: name[len(name)-1] Out[29]: \'f\' In [30]: name[-1] Out[30]: \'f\' In [31]: name[-2] Out[31]: \'e\' In [32]: name[-3] Out[32]: \'d\'
5.切片
#### 正向切片 In [33]: name = "abcdefABCDEF" 02345678910 In [35]: name[2:5] #实质 [2:5) Out[35]: \'cde\' In [36]: name[2:6] #实质[2:6) 就是[2:5] Out[36]: \'cdef\' ###### 反向切片 In [33]: name = "abcdefABCDEF" -5-4-3-2-1 012345 In [37]: name[2:-2] #[2: cdefgABCDEF Out[37]: \'cdefABCD\' # :-2) abcdefgABCD #结果 cdefgABCD In [38]: name[2:-1] Out[38]: \'cdefABCDE\' In [39]: name[2:-2] Out[39]: \'cdefABCD\' In [40]: name[2:0] Out[40]: \'\' In [41]: name[2:] #注意!正序全部 Out[41]: \'cdefABCDEF\'
2)实质:【起始位置:终止位置:步长】
In [42]: name[2:-1] Out[42]: \'cdefABCDE\' In [43]: name[2:-1:2] Out[43]: \'ceACE\' In [44]: name[2:-1:1] Out[44]: \'cdefABCDE\' In [45]: name[2:-1] #默认步长为1 Out[45]: \'cdefABCDE\'
3)字符串的逆序(倒序)?
In [46]: name Out[46]: \'abcdefABCDEF\' ####### 正序 In [47]: name[0:] Out[47]: \'abcdefABCDEF\' In [48]: name[-1:] Out[48]: \'F\' In [49]: name[-1:0] Out[49]: \'\' ########## 倒序 (面试必考) In [50]: name[-1:0:-1] Out[50]: \'FEDCBAfedcb\' In [51]: name[-1::-1] Out[51]: \'FEDCBAfedcba\' In [52]: name[::-1] Out[52]: \'FEDCBAfedcba\'
6.字符串的常见操作
知道方向,不要去背
In [57]: my_str = "hello world python adn pythonxxxxcpp" In [59]: my_str. my_str.capitalize my_str.isalnum my_str.join my_str.rsplit my_str.casefold my_str.isalpha my_str.ljust my_str.rstrip my_str.center my_str.isdecimal my_str.lower my_str.split my_str.count my_str.isdigit my_str.lstrip my_str.splitlines my_str.encode my_str.isidentifier my_str.maketrans my_str.startswith my_str.endswith my_str.islower my_str.partition my_str.strip my_str.expandtabs my_str.isnumeric my_str.replace my_str.swapcase my_str.find my_str.isprintable my_str.rfind my_str.title my_str.format my_str.isspace my_str.rindex my_str.translate my_str.format_map my_str.istitle my_str.rjust my_str.upper my_str.index my_str.isupper my_str.rpartition my_str.zfill
1)find,index查找
########## find In [60]: my_str.find("world") Out[60]: 6 #w的下标 In [63]: my_str.find("python") #从左边开始find Out[63]: 12 In [64]: my_str.rfind("python") #从右边开始find Out[64]: 23 In [61]: my_str.find("redhat") #没有find out 返回-1 Out[61]: -1 ############# index In [67]: my_str.index("python") Out[67]: 12 In [68]: my_str.rindex("python") Out[68]: 23 In [66]: my_str.index("redhat") --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-66-44374e6cd47d> in <module>() ----> 1 my_str.index("redhat") ValueError: substring not found #没有找出返回异常
2)count 和replace
my_str = "hello world python adn pythonxxxxcpp" ######### count In [69]: my_str.count("python") Out[69]: 2 In [70]: my_str.count("world") Out[70]: 1 In [71]: my_str.count("rehdat") Out[71]: 0 ######### replace In [72]: my_str.replace("world","WORLD") Out[72]: \'hello WORLD python adn pythonxxxxcpp\' In [75]: my_str.replace("python","redhat",1) #替换第1个 Out[75]: \'hello world redhat adn pythonxxxxcpp\' In [88]: my_str Out[88]: \'hello world python adn pythonxxxxcpp\' #数字,字符串,元组 不可变类型
3)split 分割(数据清洗)
In [81]: my_str.split(" ") Out[81]: [\'hello\', \'world\', \'python\', \'adn\', \'pythonxxxxcpp\'] #返回list
4)capitalize 和 title 首字母大写
In [82]: my_str.capitalize() Out[82]: \'Hello world python adn pythonxxxxcpp\' In [83]: In [83]: my_str.title() Out[83]: \'Hello World Python Adn Pythonxxxxcpp\'
5)startswitch endswitch 开头结尾(上传文件名称盘判断)
#上传文件名称的判断 In [93]: file_name Out[93]: \'redhat.txt\' In [94]: file_name.endswith(".txt") Out[94]: True In [95]: file_name.startswith("redhat") Out[95]: True # 对文件内容的审查,模块 上传病毒
6)lower,upper 转换为大小写(用户输入同一格式)
In [97]: if choic == "yes": ....: print("exit") ....: elif choice == "YES": ....: print("exit") ....: elif .. ####### 统一一种格式 In [100]: choice = "Yes" In [101]: choice.lower() Out[101]: \'yes\' In [102]: choice.upper() Out[102]: \'YES\'
7)center ,ljust,rjust 居中显示(网易云歌词)
In [105]: lyric = "想要陪你一起看大海" In [106]: lyric.center(50) Out[106]: \' 想要陪你一起看大海 \' In [108]: lyric.ljust(50) Out[108]: \'想要陪你一起看大海 \' In [107]: lyric.rjust(50) Out[107]: \' 想要陪你一起看大海\'
8)strip 去除空格,\\n,\\t(数据清洗)
In [110]: lyric Out[110]: \' 想要陪你一起看大海 \' In [111]: lyric.lstrip() #去除左\\n,\\t Out[111]: \'想要陪你一起看大海 \' In [112]: lyric.rstrip() #去除右\\n,\\t Out[112]: \' 想要陪你一起看大海\' In [113]: lyric.strip() Out[113]: \'想要陪你一起看大海\'
9) partition,rpartition 分割 (广播体操带队)
In [114]: my_str Out[114]: \'hello world python adn pythonxxxxcpp\' In [115]: my_str.partition("python") Out[115]: (\'hello world \', \'python\', \' adn pythonxxxxcpp\') In [117]: my_str.rpartition("python") Out[117]: (\'hello world python adn \', \'python\', \'xxxxcpp\')
10)splitlines 按行\\n分割
In [118]: my_line = "hello\\nworld\\nxx\\nyy\\nzz" In [119]: print(my_line) hello world xx yy zz In [120]: my_line.splitlines() Out[120]: [\'hello\', \'world\', \'xx\', \'yy\', \'zz\']
11) isdigit isalpha isalnum 注册时,必须是字母和数字的组合
s为字符串
s.isalnum() 所有字符都是数字或者字母
s.isalpha() 所有字符都是字母
s.isdigit() 所有字符都是数字
s.islower() 所有字符都是小写
s.isupper() 所有字符都是大写
s.istitle() 所有单词都是首字母大写,像标题
s.isspace() 所有字符都是空白字符、\\t、\\n、\\r
###### 数字整数 isdigit In [12]: num = input("请输入一个选项:") 请输入一个选项:1 In [13]: if num.isdigit(): int(num) print("是数字:",num) ....: 是数字: 1 ###### 字母 isalpha In [8]: num = input("请输入一个选项:") 请输入一个选项:q In [9]: if num.isalpha(): print("是字母") print(num) ...: 是字母 q ##### 注册页面,必须是数字和字母的组合 In [16]: num = "1q" In [17]: num.isdigit() Out[17]: False In [18]: num.isalpha() Out[18]: False In [20]: num.isalnum() #alpha Out[20]: True #number ####### 数字字母组合 In [14]: num = input("请输入一个选项:") 请输入一个选项:1q In [15]: if num.isalnum(): ....: print("是字母和数字",num) ....: 是字母和数字 1q
12)join 构建字符串
In [21]: a = ["aa","bb","cc"] In [22]: a Out[22]: [\'aa\', \'bb\', \'cc\'] In [23]: b = "=" In [24]: b.join(a) Out[24]: \'aa=bb=cc\' In [25]: b = " " In [26]: b.join(a) Out[26]: \'aa bb cc\'
13)format:格式化输出
# 格式化输出1 >>> s = \'myname is {0}, i am {1}\' >>> >>> s.format(\'alxe\',22) \'myname is alxe, i am 22\' # 格式化输出2 >>> s = \'myname is {name}, i am {age}\' >>> s.format(\'alxe\',22) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: \'name\' >>> >>> s.format(name=\'alex\',age=22) \'myname is alex, i am 22\'
7.面试题:给定一个字符串Str, 去除所有的 空格和\'\\t\',返回字符串
- (面试题)给定一个字符串Str, 去除所有的 空格和\'\\t\',返回字符串
####### 题目 In [27]: test_str = "hello world nihao \\t heihie \\t woshi nide\\tpython \\n ll\\ndu" ###### 错误做法 In [30]: test_str.split(" ") Out[30]: [\'hello\', \'world\', \'nihao\', \'\\t\', \'heihie\', \'\\t\', \'woshi\', \'nide\\tpython\', \'\\n\', \'ll\\ndu\'] In [32]: test_str.splitlines() Out[32]: [\'hello world nihao \\t heihie \\t woshi nide\\tpython \', \' ll\', \'du\'] In [33]: test_str.split("\\t") Out[33]: [\'hello world nihao \', \' heihie \', \' woshi nide\', \'python \\n ll\\ndu\'] In [34]: test_str.split("\\n") Out[34]: [\'hello world nihao \\t heihie \\t woshi nide\\tpython \', \' ll\', \'du\'] In [35]: test_str.split("\\t\\n") Out[35]: [\'hello world nihao \\t heihie \\t woshi nide\\tpython \\n ll\\ndu\'] ##### 正确做法 In [36]: test_str.split() Out[36]: [\'hello\', \'world\', \'nihao\', \'heihie\', \'woshi\', \'nide\', \'python\', \'ll\', \'du\']
####### 字符串拼接 In [37]: result = test_str.split() In [39]: " ".join(result) Out[39]: \'hello world nihao heihie woshi nide python ll du\' In [38]: "".join(result) Out[38]: \'helloworldnihaoheihiewoshinidepythonlldu\'
以上是关于day 7 字符串的主要内容,如果未能解决你的问题,请参考以下文章