字符串是 Python 中最常用的数据类型。 字符串或串(String)是由数字、字母、下划线组成的一串字符。
示例: ''和""在python中几乎没有区别,只不过在字符串中出现单引就必须使用双引了 “”"表示允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符
>>> a = 'hello' >>> print(a) hello >>> b = "what\'s" >>> print(b) what's >>> c = """ ... 你好 ... 我喜欢你 ... 哈哈 ... """ >>> print(c) 你好 我喜欢你 哈哈 字符串的特性索引: 0 1 2 3 4(索引是从0开始)
>>> s = 'hello' >>> print(s[0]) h >>> print(s[4]) o >>> print(s[-1]) o切片 s[start:stop:step] 从start开始到end -1结束 步长为step
>>> s = 'hello' >>> print(s[0:3]) hel >>> print(s[0:4:2]) hl >>> print(s[:]) hello >>> print(s[:3]) hel >>> print(s[::-1]) olleh >>> print(s[1:]) ello重复:
>>> s = 'hello' >>> print(s * 10) hellohellohellohellohellohellohellohellohellohello连接:
>>>> print('hello' + 'world') helloworld成员操作符:
>>> s = 'hello' >>> print('he' in s) True >>> print('aa' in s) False >>> print('he' not in s) Falsefor循环遍历:
s = 'hello' for i in s: print(i)效果演示:
字符串常用的方法判断字符串中是否为title、是否全部大小写、以及大小写的转换(title、upper/lower):
>>> 'Hello'.istitle() True >>> 'hello'.istitle() False >>> 'hello'.isupper() False >>> 'Hello'.isupper() False >>> 'HELLO'.isupper() True >>> 'hello'.islower() True >>> 'HELLO'.islower() False >>> 'HELLO'.lower() 'hello' >>> 'hello'.upper() 'HELLO' >>> 'hello'.title() 'Hello'字符串的去除(strip): strip为去除左右两边,空格为广义的空格 包括:\t \nlstrip为左去除,rstrip为右去除,()可以指定去除字符 示例:
>> s = ' hello' >>> s ' hello' >>> s.lstrip() 'hello' >>> s = ' hello ' >>> s ' hello ' >>> s.lstrip() 'hello ' >>> s.rstrip() ' hello' >>> s.strip() 'hello' >>> s = '\t\thello \n\n' >>> s '\t\thello \n\n' >>> s.strip() 'hello' >>> s.rstrip() '\t\thello' >>> s.lstrip() 'hello \n\n' >>> s = 'helloh' >>> s.strip('h') 'ello' >>> s.strip('he') 'llo' >>> s.lstrip('he') 'lloh' 字符串的判断只要有一个元素不满足条件,就返回False diget:纯数字 alpha:纯字母 alnum:数字字母混合 示例:
>>> print('safsafsa21421'.isdigit()) False >>> print('safsafsa21421'.isalpha()) False >>> print('safsafsa21421'.isalnum()) True 字符串的对齐center:以字符串为中心对齐 ljust:字符串为最左 rjust:字符串为最又 ():可指定预留值及符号
示例:
>>> print('今天怎么这么热'.center(30)) 今天怎么这么热 >>> print('今天怎么这么热'.center(30,'*')) ****今天怎么这么热***** >>> print('今天怎么这么热'.center(30,'&')) &&&&今天怎么这么热&&&&& >>> print('今天怎么这么热'.ljust(30,'&')) 今天怎么这么热&&&&&&&&& >>> print('今天怎么这么热'.rjust(30,'&')) &&&&&&&&&今天怎么这么热 字符串的搜索和替换find找到子字符串,并返回最小的索引:
s = 'hello world hello' >>> print(s.find('hello')) 0 >>> print(s.find('world')) 6 >>> print(s.rfind('hello')) 12替换字符串中的hello为redhat:
>>> print(s.replace('hello','redhat')) redhat world redhat 字符串的统计count:统计字符数量的函数 ():指定统计的字符 len:统计字符串的长度
示例:
>>> print('hello'.count('l')) 2 >>> print('hello'.count('ll')) 1 >>> print(len('redhatttttttttttt')) 17 字符串的分离和连接split:分离函数 ():指定分离的符号 join:连接函数 ’ ':指定连接的符号
示例:
>>> s = '172.25.254.1' >>> s1 = s.split('.') >>> print(s1) ['172', '25', '254', '1'] >>> print(s1[::-1]) ['1', '254', '25', '172'] >>> date = '20190525' >>> print(' '.join(date)) 2 0 1 9 0 5 2 5 >>> print('/'.join(date)) 2/0/1/9/0/5/2/5 >>> print('~'.join(date)) 2~0~1~9~0~5~2~5 字符串的示例1.判断回文数: 回文数:数字从左往右和从右往左是等值的,如121,232
if num == num[::-1]: print('true') else: print('false')shell脚本:
#!/bin/bash read -p '请输入数字: ' NUM num=$NUM RENUM=0 while [ "$num" -gt "0" ] do ((RENUM=$RENUM*10+$num)) ((num=$num/10)) done if [ "$RENUM" -eq "$RENUM" ] then echo "$RENUM 是回文数 !!" else echo "$NUM 不是回文数 !!" fi2.判断文件名或字符串的开头结尾
filename = 'hello.logrrrr' if filename.endswith('.log'): print(filename) else: print('error.file') url = 'https://172.25.254.250/index.html' if url.startswith('http://'): print('爬取网页') else: print('不能爬取')3.判断变量名定义是否合法 变量名可以由字母 数字 下划线组成 变量名只能以字母和或者下划线开头
while True: s = input('变量名:') if s == 'exit': print('exit') break if s[0].isalpha() or s[0] == '_': for i in s[1:]: if not(i.isalnum() or i == '_'): print('%s变量名不合法' %(s)) break else: print('%s变量名合法' %(s)) else: print('%s变量名不合法' %(s))4.小米笔试编程题目 题目描述:给定一个句子(只包含字母和空格), 将句子中的单词位置反转, 单词用空格分割, 单词之间只有一个空格,前>后没有空格。 比如: “hello xiao mi”-> “mi xiao hello”
while True: sentense = input('请用英文输入一句话:') sentense1 = sentense.split(' ') print(' '.join(sentense1[::-1])) if sentense == 'exit': break或者:
print(' '.join(input().split()[::-1])) 字符串的综合练习1.设计一个程序,帮助小学生练习10以内的加法 详情: - 随机生成加法题目; - 学生查看题目并输入答案; - 判别学生答题是否正确? - 退出时, 统计学生答题总数,正确数量及正确率(保留两位小数点);
total = 0 true = 0 import random print('退出请输入 exit') while True: a = random.randint(0, 10) b = random.randint(0, 10) print('%d + %d = ' % (a, b)) anwser = input('答案是:') if anwser == 'exit': break if int(anwser) == a + b: true += 1 print('回答正确') else: print('回答错误') total += 1 if total == 0: print('请答题') else : p = true / total print('共计答题%d ,正确%d , 正确率%.2f%%' % (total, true, p * 100))2.小学生算术能力测试系统: 设计一个程序,用来实现帮助小学生进行百以内的算术练习, 它具有以下功能:提供10道加、减、乘或除四种基本算术运算的题目; 练习者根据显示的题目输入自己的答案, 程序自动判断输入的答案是否正确并显示出相应的信息。
total = 0 true = 0 import random while total < 10: op = ['+', '-', '*', '/'] act = random.choice(op) a = random.randint(0, 100) b = random.randint(0, 100) ##加法 if act == '+' : anwser = input('%d + %d = ' % (a, b)) if int(anwser) == a + b: true += 1 print('回答正确') else: print('回答错误') ##减法 elif act == '-' : anwser = input('%d - %d = ' % (a, b)) if int(anwser) == num1 - num2: true += 1 print('回答正确') else: print('回答错误') ##乘法 elif act == '*' : anwser = input('%d * %d = ' % (a, b)) if int(anwser) == a * b: true += 1 print('回答正确') else: print('回答错误') ##除法 else: anwser = input('%d / %d = ' % (a, b)) if int(anwser) == a / b: true += 1 print('回答正确') else: print('回答错误') total +=1 p = true / 10 print(' 正确%d , 正确率%.2f%%' % (true, p * 100))END