3.1字符串基本操作导学案2024-2025学年高二上学期选择性必修1《数据与数据结构》第三章浙教版(2019)

2024-11-04
| 4页
| 202人阅读
| 0人下载
特供

内容正文:

3.1字符串基本操作导学案 班级: 姓名: 【基础知识】 1、字符是各种文字和符号的总称,包括国家文字、标点符号、图形符号、数字等。字符集是多个字符的集合,字符集种类较多,常见有ASCII字符集、GB2312字符集、GBK字符集、BIG5字符集、GB18030字符集、Unicode字符集等。其中,UTF-8编码是国际通用的编码,以1个字节表示英语字符(兼容ASCII),以3个字节表示常见汉字,对全世界所有国家需要用到的字符都进行了编码。 2、字符串标志:一对单引号、双引号、三引号,字符串长度不包括引号在内。 3、空串"" :不包含任何字符的串。 4、空格串" " :由空格组成的串,其长度为空格的个数。 【任务一】创建字符串 a = "ABCabc123" ; b = "Abc12" ; c = "Abc34" ; d = "Abc 4" len("ABC abc 123")= __________ len("ABC@abc/123")= __________ len("ABC@abc派森")= __________ 【结论】无论是一个数字、英文字母、标点或者空格,还是一个汉字,都按____个字符处理。 【任务二】比较字符串大小 if a > b: print(f'{a} > {b}') else: print(f'{a} <= {b}') 运行程序后输出结果是:______________________________________________________ 注意:f-string是python3.6新引入的一种字符串格式化方法。f-string在形式上是以f或F修饰符引领的字符串(f’xxx’或F’xxx’),以大括号{}标明被替换的字段,其本质上并不是字符串常量,而是一个运行时求值的表达式。 if b > c: print(f'{b} > {c}') else: print(f'{b} <= {c}') 运行程序后输出结果是:______________________________________________________ if c > d: print(c>d) else: print(c<=d) 运行程序后输出结果是:______________________________________________________ 【结论】常用字符大小排序____________________________________________________ 【任务三】提取子串(字符串切片) s="Hello World" #教材P65 注意含头不含尾 ①s[-5:-1] =_____________ s[-5:]=_____________ s[-1:-5:-1]=_____________ s[:-1]=_____________ s[:]=_____________ s[::1]=_____________ s[::-1]=_____________ ②判断回文串:假如s="Hello olleH" ,则中间位置mid=len(s)//2=_____________ s[:mid]=_____________ s[-mid:]=_____________ 【结论】s[:mid]作用是提取字符串s的_____________,s[-mid:]作用是提取字符串s的_____________。 ③将字符串s="Hello World" 改为"Hello Python" ,填空s[________]="Python"。 笔记:__________________________________________________________________________ 【练习】字符串变量s="Hang zhou Ya Yun",如果将字符串变量s中的字符"z"改为大写"Z",下列操作可行的是( ) A、s=s[0:5]+"Z"+s[6::] B、s[5]="Z" C、s[6]="Z" D、s=s[1:5]+"Z"+s[7::] 【任务四】子串判断 (用in运算实现) a = "ABCabc123" ; b = "Abc12" if a[-3:-1] in b: # a[-3:-1] 等价于 "ABCabc123"[-3:-1] print(f'{a[-3:-1]}是{b}的子串') 运行程序后输出结果是:______________________________________________________ a = "ABCabc123" print("AC" in a) 运行程序后输出结果是:______________________________________________________ 【任务五】字符串连接 a = "ABCabc123" ; b = "Abc12" ; ans=a+b print("连接后的字符串为:",ans) 运行程序后输出结果是:______________________________________________________ a = "ABCabc123" ; b = "Abc12" ; ans=b+a print("连接后的字符串为:",ans) 运行程序后输出结果是:______________________________________________________ 【常用方法1】find() 寻找子串的位置 x.find(y)功能:返回子串y在x中出现的首字符下标,如果未找到,返回-1。 a = "ABCabc123";b = "Abc12" print(a.find(b[0])) 输出结果是:_______________ print(a.find(b[:3])) 输出结果是:_______________ print(b.find(a[4:6])) 输出结果是:_______________ 拓展:index()方法功能与find()相同,不同之处在于若查询字符不在字符串中会报错。 【常用方法2】upper() lower() 大小写转换 a = "ABCabc123";b = "Abc12" print(a.upper()) 输出结果是:_______________ print(b.lower()) 输出结果是:_______________ print("A".islower()) #islower判断是不是小写字母 输出结果是:_______________ print("A".isupper()) #isupper判断是不是大写字母 输出结果是:_______________ print("A".isdigit()) #isdigit判断是不是数字 输出结果是:_______________ 判断ch变量是不是字母的if条件表达式书写:__________________________________ 判断ch变量是不是数字的if条件表达式书写:__________________________________ 【常用方法3】replace()替换字符串 x.replace(old,new)功能:返回新的字符串 x="is is is is" print(x.replace("is","was")) 输出结果是:_______________ print(x.replace("is","was",3)) 输出结果是:_______________ 问题来了:字符串s="Hello World" 用replace改为"Hello Python"? _______________________________________________________________________________ 【常用方法4】split()切分字符串转成列表 x.split(str,num)功能:以str为分隔符(默认分隔符为空格)切片x,如有num,仅分隔num个子串,结果放在列表中。 a = "I like Python" ; b = a.split(" ") print(b) 运行程序后输出结果是:_________________ 将语句修改为 b = a.split(" ",1) 运行程序后输出结果是:_________________ 将语句修改为 b = a.split() 运行程序后输出结果是:_________________ 将语句修改为 b = a.split("") 运行程序后输出结果是:_________________ 【常用方法5】join()连接序列转成字符串 str.join(x)功能:以str为分隔符,将x中所有元素合并为一个新的字符串。b=['I', 'like', 'Python'] a = ''.join(b) #没有分隔符 print(a) 运行程序后输出结果是:_________________ b=['I', 'like', 'Python'] a = '→'.join(b) print(a) 运行程序后输出结果是:_________________ b="行成于思毁于随"b=['I',' ','like',' ','Python']#增加空格 a = ''.join(b) #没有分隔符 print(a) 运行程序后输出结果是:_________________ c = '.'.join(b) print(c) 运行程序后输出结果是:_________________ 【常用方法6】: strip() 功能:默认去除首尾的空格,也可以指定去除特殊字符。 a = " I like Python " b = a.strip() print(b) 运行程序后输出结果是:_________________ 【综合应用】split()、join()、strip()方法 #综合应用1:读取"cj.txt"文件,将每行数据转换成1个子列表追加到列表a中。 f=open("cj.txt","r",encoding="utf-8")#以只读方式打开文件 "r"=read a=[] line=f.readline() #从文件中读取一行 while line: #从文件中读取到数据 line=line.strip() #把末尾的" "去掉 b=______________ #把空格字符去掉,变成包含3个字符串的子列表 a.append(b) #append()方法用于在列表末尾添加新的对象 line=f.readline()#从文件中读取下一行 f.close() #关闭文件 print(a) print() #综合应用2:将列表a转换成字符串(逗号为分隔符)重新写入到"cj_new.txt"文件中。 filename="cj_new.txt" #写入文件的文件名为"cj_new.txt" with open(filename,"w") as fp: #以写入的方式打开文件 "w"=write for i in a: cj_new=____________ fp.write(cj_new+" ") #" "作用是什么? 【回文字符串拓展】 方法二:直接利用字符串反转命令[::-1],直接反转原字符串,再与原串比较。 s=input("请输入一个字符串:") s1=___________ if s==s1: print("yes") else: print('no') 方法三:用L、R左右双指针扫描左右两侧元素比较,若s为回文字符串返回True,否则返回False def fun_1(s): L, R = 0, len(s) - 1 while ___________: if s[L] != s[R]: return ___________ L, R = ______________________ return ___________ s = input("请输入一串字符:") print(fun_1(s)) 方法四:用单指针扫描左侧元素与右侧元素比较,若s为回文字符串返回True,否则返回False def fun_2(s): n = len(s) for i in range(n//2): if ___________: return False return __________ s = input("请输入一串字符:") print(fun_2(s)) 【拓展】统计数字和 #编写Python程序,从键盘输入任意字符串s,统计s中数字字符串的数值和。 例如输入"ab123dr34fg9de",则输出166,即123+34+9=166。 第 1 页 共 3 页 学科网(北京)股份有限公司 #方法一:逐个字符处理,累乘相加。 s = "ab123dr34fg9de" sum = 0 t = 0 for c in s: if "0" <= c <= "9": t = _______________ #累乘相加 else: sum += t t = 0 sum += t # 加上末尾的数字串 print(sum) # 方法二:提取子串拼接 s = "ab123dr34fg9de" sum = 0程序运行后,方法二会报错,如何优化程序? t = "" for c in s: if "0" <= c <= "9": t = t + c else: sum += ______ t = "" sum += int(t) # 加上末尾的数字串 print(sum) $$

资源预览图

3.1字符串基本操作导学案2024-2025学年高二上学期选择性必修1《数据与数据结构》第三章浙教版(2019)
1
3.1字符串基本操作导学案2024-2025学年高二上学期选择性必修1《数据与数据结构》第三章浙教版(2019)
2
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。