Python练习手册2附带解题思路

Day3作业1.有变量name="aleXleNb"完成如下操作:

移除name变量对应的值两边的空格,并输出处理结果

print(name.strip())#"aleXleNb"

判断name变量是否以"al"开头,并输出结果

print(name.startswith(al))#True

判断name变量是否以"Nb"结尾,并输出结果

print(name.endswith(Nb))#True

将name变量对应的值中的所有的"l"替换为"p",并输出结果

print(name.replace(l,p))#apeXpeNb

将name变量对应的值中的第一个"l"替换成"p",并输出结果

print(name.replace(l,p,1))#apeXleNb

将name变量对应的值根据所有的"l"分割,并输出结果。

print(name.split(l))#[a,eX,eNb]

将name变量对应的值根据第一个"l"分割,并输出结果。

print(name.split(l,1))#[a,eXleNb]

将name变量对应的值变大写,并输出结果

print(name.upper())#ALEXLENB

将name变量对应的值变小写,并输出结果

print(name.lower())#alexlenb

判断name变量对应的值字母"l"出现几次,并输出结果

print(name.count(l))#2

如果判断name变量对应的值前四位"l"出现几次,并输出结果

print(name.count(l,0,4))#1

请输出name变量对应的值的第2个字符?

print(name[1])#l

请输出name变量对应的值的前3个字符?

print(name[:3])#ale

请输出name变量对应的值的后2个字符?

print(name[-2:])#Nb2.有字符串s="a4b5c"

通过对s切片形成新的字符串s1,s1=""

s1=s[:3]

print(s[:3])#

通过对s切片形成新的字符串s2,s2="a4b"

s2=s[3:6]print(s2)#a4b

通过对s切片形成新的字符串s3,s3=""

s3=s[::2]print(s3)#

通过对s切片形成字符串s4,s4="2ab"

s4=s[1:-2:2]print(s4)#2ab

通过对s切片形成字符串s5,s5="c"

s5=s[-1:-2:-1]print(s5)#c

通过对s切片形成字符串s6,s6="ba2"

s6=s[-3::-2]print(s6)#ba23.使用while和for循环分别打印字符串s="asdfer"中每个元素。

#while循环s=asdferx=0whilexlen(s):print(s[x])x+=1#for循环s=asdferforiins:print(i)4.使用for循环对s="asdfer"进行循环,但是每次打印的内容都是"asdfer"。

s="asdfer"foriins:i=sprint(i)5.使用for循环对s="abcdefg"进行循环,每次打印的内容是每个字符加上sb,例如:asb,bsb,csb,...gsb。

s="abcdefg"foriins:print(i+sb)6.使用for循环对s=""进行循环,打印的内容依次是:

"倒计时3秒","倒计时2秒","倒计时1秒","出发!"。

s=""foriins:print(倒计时%s秒,%i)print(出发!)7.实现一个整数加法计算器(两个数相加):

如:content=input("请输入内容:")用户输入:5+9或5+9或5+9,然后进行分割再进行计算。

num=input(请输入内容:)x=num.split(+)print(int(x[0])+int(x[1]))8.选做题**:实现一个整数加法计算器(多个数相加):

如:content=input("请输入内容:")用户输入:5+9+6+12+13,然后进行分割再进行计算。

num=input(请输入内容:)x=num.split(+)total=0foryinx:total+=int(y)print(total)9.计算用户输入的内容中有几个整数(以个位数为单位)

如:content=input("请输入内容:")#如fhdalslfhfjdla

content=input("请输入内容:")x=0#x代表整数(0-9)y=0#y代表整数出现的总次数whilex10:y+=content.count(str(x))#整数x在content中出现的次数x+=1print(y)10.选做题**:写代码,完成下列需求:

用户可持续输入(用while循环),用户使用的情况:

输入A,则显示走大路回家,然后在让用户进一步选择:

是选择公交车,还是步行?

选择公交车,显示10分钟到家,并退出整个程序。

选择步行,显示20分钟到家,并退出整个程序。

输入B,则显示走小路回家,并退出整个程序。

输入C,则显示绕道回家,然后在让用户进一步选择:

是选择游戏厅玩会,还是网吧?

选择游戏厅,则显示‘一个半小时到家,爸爸在家,拿棍等你。’并让其重新输入A,B,C选项。

选择网吧,则显示‘两个小时到家,妈妈已做好了战斗准备。’并让其重新输入A,B,C选项。

flag=Truewhileflag:print(回家的方式:\nA\nB\nC)yours=input(请选择:).upper()ifyours==A:print(走大路回家)way=input(公交车or步行,pleasechoose:)ifway==公交车:print(10分钟后到家!)elifway==步行:print(20分钟后到家)else:print(输入错误)continueflag=Falseelifyours==B:print(走小路回家)breakelifyours==C:print(绕道回家)games=input(游戏厅or网吧,pleasechoose:)ifgames==游戏厅:print(一个半小时到家,爸爸在家,拿棍等你。)elifgames==网吧:print(两个小时到家,妈妈已做好了战斗准备。)else:print(输入错误)continue11.写代码:计算1-2+3...+99中除了88以外所有数的总和?

x=1y=0whilex:ifx!=88:ifx%2==0:y-=xelse:y+=xx+=1print(y)12.选做题:**判断一句话是否是回文.回文:正着念和反着念是一样的.例如,上海自来水来自海上

#做法一:切片name=input(请输入一句话:)turn_name=name[-1::-1]ifname==turn_name:print(是回文)else:print(不是回文)#做法二:索引name=input(请输入一句话:)x=0y=0whilexlen(name)//2:ifname[x]==name[-x-1]:x+=1continueelse:y+=1breakify==0:print(是回文)else:print(不是回文)13.制作趣味模板程序需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实如:敬爱可亲的xxx,最喜欢在xxx地??xxx

name=input(请输入你的名字:)place=input(请输入地点:)hobby=input(请输入你的爱好)board=最最最最最最帅的{0},生平最爱的就是在{1}干{2}.format(name,place,hobby)print(board)Day4作业1.写代码,有如下列表,按照要求实现每一个功能

li=["alex","WuSir","ritian","barry","wenzhou"]

计算列表的长度并输出

print(len(li))#长度5个

列表中追加元素"seven",并输出添加后的列表

li.append(seven)print(li)

请在列表的第1个位置插入元素"Tony",并输出添加后的列表

li.insert(0,Tony)print(li)

请修改列表第2个位置的元素为"Kelly",并输出修改后的列表

li[1]=Kellyprint(li)

请将列表l2=[1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现,不允许循环添加。

l2=[1,"a",3,4,"heart"]li.extend(l2)print(li)

请将字符串s="qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。

s=qwertli.extend(s)print(li)

请删除列表中的元素"ritian",并输出添加后的列表

li.remove(ritian)#li.pop(2)print(li)

请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表

print(li.pop(1))print(li)

请删除列表中的第2至4个元素,并输出删除元素后的列表

delli[1:4]print(li)2.写代码,有如下列表,利用切片实现每一个功能

li=[1,3,2,"a",4,"b",5,"c"]通过对li列表的切片形成新的列表l1,l1=[1,3,2]

l1=li[0:3]print(l1)

通过对li列表的切片形成新的列表l2,l2=["a",4,"b"]

l2=li[3:6]

通过对li列表的切片形成新的列表l3,l3=["1,2,4,5]

l3=li[0:7:2]#l3=li[::2]

通过对li列表的切片形成新的列表l4,l4=[3,"a","b"]

l4=li[1:6:2]

通过对li列表的切片形成新的列表l5,l5=["c"]

l5=li[-1:]print(l5)

通过对li列表的切片形成新的列表l6,l6=["b","a",3]

l6=li[-3::-2]3.写代码,有如下列表,按照要求实现每一个功能。

lis=[2,30,"k",["qwe",20,["k1",["tt",3,"1"]],89],"ab","adv"]将列表lis中的"tt"变成大写(用两种方式)

#第一种lis[3][2][1][0]=TT#第二种lis[3][2][1][0]=lis[3][2][1][0].upper()

将列表中的数字3变成字符串""(用两种方式)

#第一种lis[3][2][1][1]=#第二种lis[3][2][1][1]=str(lis[3][2][1][1]+97)

将列表中的字符串"1"变成数字(用两种方式)

#第一种lis[3][2][1][-1]=#第二种lis[3][2][1][-1]=int(lis[3][2][1][-1]+01)4.请用代码实现:

li=["alex","wusir","taibai"]利用下划线将列表的每一个元素拼接成字符串"alex_wusir_taibai"

s=_.join(li)print(s)5.利用for循环和range打印出下面列表的索引。

li=["alex","WuSir","ritian","barry","wenzhou"]

foriinrange(len(li)):#先计算共5个元素,range(5)print(i)6.利用for循环和range找出以内所有的偶数并将这些偶数插入到一个新列表中。

li=[]foriinrange():ifi%2==0:li.append(i)7.利用for循环和range找出50以内能被3整除的数,并将这些数插入到一个新列表中。

li=[]foriinrange(50):ifi%3==0:li.append(i)8.利用for循环和range从~1,倒序打印。

foriinrange(,0,-1):#如果没有步长-1,输出空print(i)9.利用for循环和range从~10,倒序将所有的偶数添加到一个新列表中,然后对列表的元素进行筛选,将能被4整除的数留下来。

l1=[]foriinrange(,9,-1):ifi%2==0:l1.append(i)forxinl1:ifx%4!=0:l1.remove(x)print(l1)#[,96,92,88,84,80,76,72,68,64,60,56,52,48,44,40,36,32,28,24,20,16,12]10.利用for循环和range,将1-30的数字一次添加到一个列表中,并循环这个列表,将能被3整除的数改成*。

l1=[]count=0foriinrange(1,31):#打印每一个元素l1.append(i)forxinl1:ifx%3==0:l1[count]=*count+=1print(l1)11.查找列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"开头,并以"c"结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。

li=["TaiBai","alexC","AbC","egon","riTiAn","WuSir","aqc"]

li=["TaiBai","alexC","AbC","egon","riTiAn","WuSir","aqc"]l2=[]foriinli:i=i.strip()ifi.upper().startswith(A)andi.endswith(c):print(i)#找出所有元素并打印(range一个列表,打印出来的里面的元素)l2.append(i)#必须在if循环里添加列表forxinl2:print(x)#循环打印新列表12.开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:

敏感词列表li=["苍老师","东京热","武藤兰","波多野结衣"]则将用户输入的内容中的敏感词汇替换成等长度的(苍老师就替换**),并添加到一个列表中;如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。

l1=[]li=["苍老师","东京热","武藤兰","波多野结衣"]while1:name=input(请输入内容:).strip()foriinli:ifiinname:name=name.replace(i,**len(i))l1.append(name)#在if循环之外,不然列表会添加4个相同的nameprint(l1)info=input("按任意键继续输入,退出程序输入2:")ifint(info)==2:break13.有如下列表(选做题)

li=[1,3,4,"alex",[3,7,8,"TaiBai"],5,"RiTiAn"]循环打印列表中的每个元素,遇到列表则再循环打印出它里面的元素。我想要的结果是:"alex"37,8"taibai"5ritian

li=[1,3,4,"alex",[3,7,8,"TaiBai"],5,"RiTiAn"]foriinli:iftype(i)==list:forxini:iftype(x)==str:x=x.lower()print("+x+")eliftype(x)==int:ifx==7:print(str(x)+,)else:print(x)eliftype(i)==str:i=i.lower()ifi.startswith(a):print("+i+")else:print(i)else:print(i)总结:(1)for与range对比:

foriinrange(1,31):#打印从1到30(只能排序数字)print(i)foriin(1,31):#打印1,31print(i)li=["TaiBai","alexC","AbC","egon","riTiAn","WuSir","aqc"]foriinli:print(i)#打印列表的每一个元素鹰击长空LEO



转载请注明:http://www.sonphie.com/jbzl/14151.html

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 网站简介| 发布优势| 服务条款| 隐私保护| 广告合作| 网站地图| 版权申明

    当前时间: