题目来源:python二级真题14(含答案和附件) - 知乎
目录
1. 基本题
1.1 基本题1
n=eval(input("请输入一个整数:"))
for i in range(1,n):
for j in range(1,n):
if j>=i:
print(j,end=" ")
print()
1.2 基本题2
s=input("请输入5个小写字母:")
ls=s.upper()[::-1]
print(','.join(ls))
ls[-1::-1]
和 ls[::-1]
是 Python 中用于反转列表或字符串的切片操作。它们之间的区别在于切片的起始索引。
ls[-1::-1]
从最后一个元素开始(索引为-1),然后向前遍历整个列表或字符串。ls[::-1]
从第一个元素开始(索引为0),然后向前遍历整个列表或字符串。
因此,两者实现的功能都是反转列表或字符串,只是起始索引不同。
','.join(ls)
是一个 Python 中用于将列表(或其他可迭代对象)中的元素连接成一个字符串的方法。它会在列表中的每个元素之间插入指定的分隔符(在这里是逗号),然后返回一个新的字符串。
1.3 基础题3
import random
n=eval(input("请输入一个整数:"))
random.seed(100)
for i in range(1,11):
if i<10:
print(random.randint(1,n),end=",")
else:
print(random.randint(1,n))
2. turtle绘图题
import turtle
n=4
for j in range(n):
turtle.pendown()
for i in range(4):
turtle.fd(40)
turtle.right(90)
turtle.penup()
turtle.fd(80)
turtle.done
3. 大题
3.1 大题1
import random as r
r.seed(0)
persons=['Alice','Bob','xiaoming','bingbing']
flag=3
while flag>0:
flag-=1
name=input("请输入一个名字:")
num=r.randint(1000,9999)
if name in persons: #如果name在列表中
print('{}{}'.format(name,num))
elif name=='q':
break #终断while循环
else:
print('对不起,您输入的名字不存在。')
3.2 大题2
第一问:
with open('webpage.txt','r',encoding='utf-8') as f:
ls=f.readlines()
#统计url个数
num=0
for line in ls:
if "img" in line:
url=line.split("src=")[-1].split('"')[1]
if "http" in url:#确定是图片链接
num=num+1
print(num)
用"src="分割,再用”分割,其中序号为1的元素就是url本身;
分割后用于分割的元素就消失了
第二问:
自己写的:
with open('webpage.txt','r',encoding='utf-8') as f:
ls=f.readlines()
f=open("images.txt","w")
for line in ls:
if "img" in line:
url=line.split("src=")[-1].split('"')[1]
if "http" in url:#确定是图片链接
f.write(url+'\n')
f.close()
参考答案:
with open('webpage.txt','r',encoding='utf-8') as f:
ls=f.readlines()
jpgurl=[] #定义空列表
for line in ls:
if "img" in line:
url=line.split("src=")[-1].split('"')[1]
if "http" in url:#确定是图片链接
jpgurl.append(url) #将url追加到列表中
f=open("images.txt","w")
for url in jpgurl:
f.write(url+'\n') #添加换行符
f.close()