第1关:字符串基本操作
本关任务的目的是了解字符类型的特点,熟悉字符串的一些基本操作,包括赋值、拼接、重复、长度、索引、查找、替换、反转等常用操作。字符串最常见的一种基本数据类型。字符串是许多单个子串组成的序列,其主要是用来表示文本。注意:字符串是不可变数据类型,也就是说你要改变原字符串内的元素,只能是新建另一个字符串。
任务1 字符串拼接 依次输入两个字符串赋值给s1
和s2
,并将s1
中所有英文字母转换为大写后连接到s2
后面,并将拼接的结果赋值给s3
,输出s3
的值。 提示:应用“+”
运算和字符串的upper()
方法。
任务2 根据字符串的长度确定字符串输出重复次数 输入一个字符串赋值给s4
,根据s4
的长度来确定将s3
重复多少次,重复运算结果赋值给s5,并输出s5
的值。例如:输入“A1”
, 如果s3
的值是123XTU
,则输出123XTU123XTU
。 提示:求字符串的长度用内置函数len()
,重复运算用“*”
任务3 访问字符串以及子字符串 输入一个长度为2字符串赋值s6
,判定s6
在s5
的第2至第11个字符(包含第11个字符)之间首次出现的位置与出现次数,若s5
的长度小于10,则表示从第2个字符到字符串末尾的子串。例如:输入“XT”
,若s5
的值是123XTU123XTU
,则输出“2 2”
,第2个到第11字符的子串是23XTU123XT
:表示:“XT”
在子串“23XTU123XT”
中首次出现的起始位置是2,总共出现了2次。 提示:本任务中需要用到字符串的切片运算:[m:n]
,出现位置与次数分别使用序列类型的共有方法:index()
和count()
任务4 字符串的替换 输入一个字符串赋值给s8
,将s5
中所有的数字符号"2"替换成存储在s8
中的字符串,并将替换结果赋值给s9
,输出s9
的值。例如:输入一个字符串“TO”
,s5
是123XTU123XTU
,则输出替换后的结果为:1TO3XTU1TO3XTU
。 提示:本任务中需要用到字符串的方法:replace()
任务5 字符串反转 将任务4中替换结果s9
反转,输出s9
反转后的值。例如:s9
中存储的是:1TO3XTU1TO3XTU
,则输出的反转结果是:UTX3OT1UTX3OT1
提示:本任务中需要用到字符串的切片运算:[::-1]
测试说明 注意:输入数据时,一行只输入一个数。本关1-5个任务评测输入输出样例如下: 输入测试数据:
xtu
123
A1
XT
TO
输出测试结果:
输出测试结果:
输出测试结果:
123XTU
123XTU123XTU
2 2
1TO3XTU1TO3XTU
UTX3OT1UTX3OT1
-
#字符串基本操作 #任务1代码 s1=input() s2=input() #Begin 填写“=”右侧表达式 s3= (s2+s1).upper() #End print(s3) #任务2代码 s4=input() #Begin 填写“=”右侧表达式 s5= s3*len(s4) #End print(s5) #任务3代码 s6=input() #Begin 在Begin和End间填写代码 print(s5[1:11].index(s6), s5[1:11].count(s6)) #End #任务4代码 s8=input() #Begin 填写“=”右侧表达式 s5=s5.replace("2",s8) s9=s5 #End print(s9) #任务5代码 #Begin 在Begin和End间填写代码 s9=s9[::-1] print(s9) #End
第2关:元组基本操作
-
本关任务的目的是了解元组类型数据的特点,什么场合使用。具体包括元组的建立,元组的访问,多元变量赋值等。元组的基本形式是以圆括号“()”括起来的数据元素,元组与字符串类似,可以通过序号来引用其中的元素。下标索引从0开始,可以进行拼接、重复等序列类型共同的操作。这些操作均不能改变原来元组中的元素。
**任务1 元组的建立 ** 从键盘输入两个字符串赋值给
s1
和s2
,并建立元组t1,其值为(s1,s2)
。输出t1的值。例如:输入ABC,123
,则输出('ABC','123')
提示:创建一个元组只需使用逗号分隔多个值放入圆括号,元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义,如:
x=(20,)
,表示建立了一个只有一个元素20的元组。任务2 元组的拼接 输入一个整数与任务1中的
t1
拼接形成一个新元组t2
,例如:输入20,它作为t2
中的最后一个元素,输出t2
的值。例如:如果元组t1
是("ABC","123")
,则拼接后产生的新的元组t2
的值是("ABC","123",20)
提示:拼接运算符“+”,用于元组时,表示将两个元组拼接产生一个新的元组。
任务3 元组的重复 输入一个整数赋值给n,将
t2
重复n次输出,并将重复后的新元组赋值给t3
。例如:输入2,t2
的值是("ABC","123",20)
,则输出t3
的值为:("ABC","123",20,"ABC","123",20)
提示:重复运算符“*”,用于元组时,表示将元组元素重复n次,产生一个新的元组。
任务4 利用元组实现变量值的交换 将
t1
,t2
和t3
所存储的元组进行交换,t1
存储原t2
的值,t2
存储原t3
的值,t3
存储原来t1
的值。例如:假设经过任务1--任务3,t1,t2,t3
的值分别为:t1=("ABC","123"),t2=("ABC","123",20), t3=("ABC","123",20,"ABC","123",20)
则交换后的结果t1=("ABC","123",20) t2=("ABC","123",20,"ABC","123",20) t3=("ABC","123")
任务5 求元组的最值 令元组
t4
等于(12,32,33,24,35,26,47,568,69,1012)
,将元组的最大值ma
与最小值mi
求出,并将两个最值相加乘以t4
元组长度得到结果t
,将t
加到t4
的最末生成新的元组t5
,输出新元组t5
。 提示:利用max(tup)
,min(tup)
可以得到元组tup的最值,len()
返回元组长度,此题t4由自己初始化,系统不提供测试样例。测试说明 注意:输入数据时,一行只输入一个数。本关1-5个任务评测输入输出样例如下: 输入测试数据:
ABC
123
20
2
('ABC','123')
('ABC','123',20)
('ABC','123',20,'ABC','123',20)
('ABC','123',20) ('ABC','123',20,'ABC','123',20) ('ABC','123')
(12,32,33,24,35,26,47,568,69,1012,10240)
-
#元组基本操作 #任务1代码 s1=input() s2=input() #Begin 填写“=”右侧表达式 t1=(s1,s2) #End print(t1) #任务2代码 #Begin 填写“=”右侧表达式 num=int(input()) t2=(num,) t2=t1+t2 #End print(t2) ##任务3代码 #Begin n=int(input()) t3=t2*n #End print(t3) #任务4代码 #Begin 填写“=”右侧表达式 t1,t2,t3=t2,t3,t1 #End print(t1,t2,t3) #任务5代码 #Begin 填写“=”右侧表达式 t4=(12,32,33,24,35,26,47,568,69,1012) ma=max(t4) mi=min(t4) t=(ma+mi)*len(t4) t5=(t,) t5=t4+t5 #End print(t5)
第3关:列表基本操作
-
本关任务的目的是了解列表类型的基本特点,它的可变性使得它具有一些和字符串与元组不同的操作,如列表元素的添加删除,排序等。列表可以把大量的数据放在一起,可以对其进行集中处理。列表是以方括号“[]”包围的数据集合,不同成员间以“,”分隔。列表中可以包含任何数据类型,也可以包含一个列表。列表可以通过序号来访问其中的成员。
任务1 建立列表 输入一个表示姓名的字符串,建立一个只含有此字符串的列表
lt1
,并输出lt1
的值,例如,输入字符串为“李海”
,则输出[“李海”]
任务2 加入元素 输入3个整数,分别代表数学,语文,英语的分数,生成列表
lt2
,将列表lt2
加到lt1
后面,输出更新后的lt1
。例如,输入的整数为:90 79 100
,表示对应课程的分数,则输出:[“李海”,90,79,100]
提示:可以使用append()
,extend()
,insert()
和“+”
运算,但是要注意他们的差别任务3 插入元素 从键盘输入一个数字字符串,并在列表
lt1
的起始位置插入这个数字字符串,代表学号,输出lt1的值。例如:输入:“201705090345”
,输出lt1
的值为:[“201705090345”,“李海”,90,79,100]
提示:可以使用insert()在首元素前面进行插入。任务4 列表的删除 找出列表
lt1
中的最小的元素,在列表lt1
中删去此元素,删除后,再输出lt1
的值 提示:使用内置min()
函数求出lt1
中元素的最小值,用列表的方法remove()
或pop()
来移除此元素。也可以用内置函数del()
来删除指定位置的元素。注意参数:remove()
的参数是要删除的具体元素,而del()
和pop()
的圆括号中要填写整数,表示要删除的元素的索引号。任务5 列表的反转与排序 将
lt2
列表中的元素按从小到大的顺序排列输出,再将lt1
复制给lt3
,将lt3
反转输出。例如:lt2
的值是[90,79,100]
,则从小到大输出为[79,90,100]
,lt3
反转的结果为[100,90,“李海”,“201705090345”]
提示:本任务使用列表的方法有:copy()
,sort()
和reverse()
测试说明 注意:输入数据时,一行只输入一个数。本关1-5个任务评测输入输出样例如下: 输入测试数据:
李海
90
79
[“李海”]
[“李海”,90,79,100]
[“201705090345”,“李海”,90,79,100]
[“201705090345”,“李海”,90,100]
[79,90,100]
[100,90,“李海”,“201705090345”]
100
201705090345
-
#列表基本操作 #任务1代码 s1=input() #Begin lt1=[] lt1.append(s1) #End print(lt1) #任务2 在begin和end间空白处填写代码 a=int(input()) b=int(input()) c=int(input()) #begin lt2=[] lt2.append(a) lt2.append(b) lt2.append(c) lt1=lt1+lt2 #end print(lt1) #任务3 在begin和end间空白处填写代码 id=input() #begin lt1.insert(0,id) #end print(lt1) #任务4 在begin和end间空白处填写代码 #begin a=min(lt2) b=lt1.remove(a) print(lt1) #end #任务5 在begin和end间空白处填写代码 #begin lt2.sort() print(lt2) lt3=lt1.copy() lt3.reverse() print(lt3) #end
第4关:综合运用
本关任务的目的是了解字符串,元组和列表间转换函数的使用,如split()
,join()
任务1 字符串转换成列表和元组 输入一个含有空格的字符串赋值给ss1
,分别将其转换成列表和元组并依次输出。例如:输入:“My computer”
,输出:
['M', 'y', ' ', 'c', 'o', 'm', 'p', 'u', 't', 'e', 'r']
('M', 'y', ' ', 'c', 'o', 'm', 'p', 'u', 't', 'e', 'r')
-- *提示:**使用
list()
和tuple()
函数
任务2 字符串分割 将字符串ss1
以空格作为分离符号,将其分割为多个元素的列表赋值给ss2
。例如“My computer”
分割为列表输出是:["My","computer"]
。 提示:使用字符串的split()方法
任务3 将列表合并成字符串 首先将ss2
通过*
运算,重复3次,赋值给ss3
,然后用“-”
将各元素合成为一个字符串。例如,ss2
重复3次后,ss3
中元素为:["My","computer","My","computer","My","computer"]
,用“-”
作为连接符进行连接后的输出为:"My-computer-My-computer-My-computer"
提示:使用字符串的join()
方法
测试说明 注意:输入数据时,一行只输入一个数。本关1-3个任务评测输入输出样例如下: 输入测试数据:
My computer
输出测试结果:
['M', 'y', ' ', 'c', 'o', 'm', 'p', 'u', 't', 'e', 'r']
('M', 'y', ' ', 'c', 'o', 'm', 'p', 'u', 't', 'e', 'r')
["My","computer"]
"My-computer-My-computer-My-computer"
-
-
#任务1 在begin和end间空白处填写代码 #begin ss1=str(input()) It1=list(ss1) print(It1) t1=tuple(ss1) print(t1) #end #任务2 在begin和end间空白处填写代码 #begin ss2=ss1.split(' ') print(ss2) #end #任务3 在begin和end间空白处填写代码 #begin ss3=3*ss2 print('-'.join(ss3)) #end
-