def digitSum(x): lst=list(x).split("“) w=lst[0] for i in range(1,len(lst)): w=w+lst[i] return w解读
这段代码中,定义了一个名为digitSum的函数,它接受一个字符串参数x。函数的主要功能是将字符串x中的数字字符相加并返回结果。具体实现过程如下:
首先,将字符串x转换为列表lst,分隔符为双引号。这里的split方法应该是有误的,因为它会将整个字符串作为一个分隔符进行分割,所以lst列表中只会有一个元素,即原始字符串x。
接下来,将w变量初始化为lst[0],即原始字符串x。然后遍历lst中的其他元素,将它们拼接到w上。最后返回变量w作为函数的输出结果。
需要注意的是,这段代码中有一些问题,如split方法的使用错误,以及字符串拼接操作可以使用join方法更为高效。
def digitSum(x): lst=list(x).split("“) w=lst[0] for i in range(1,len(lst)): w=w+lst[i] return w其中split怎么改程序将会正常运行
这段代码中的split方法是错误的,因为它不能将字符串正确地分割为数字字符的列表。如果要使程序正常运行,可以将split方法改为isdigit方法,如下所示:
def digitSum(x):
lst = [char for char in x if char.isdigit()] # 获取x中的数字字符并存储在列表lst中
w = ''.join(lst) # 将lst中的所有元素拼接成一个字符串
return w
这里我们使用了列表推导式来创建lst列表,其中只包含x中的数字字符。然后使用join方法将lst中的所有元素拼接成一个字符串,并将其返回作为函数的输出结果。这样,就可以正确地计算字符串x中数字字符的和了。
#第二次作业 #26 #(1) lst=[1,2,3,4,5] square=map(lambda x:x*x,lst) print(list(square)) #(2) even=filter(lambda x:x%2==0,lst) print(list(even)) #27 #(1) file1=open("E:/大一/python与程序设计/file1.txt","r") content1=file1.read() lst1=content1.split() num=list(map(int,lst1)) allnum=sum(num) print(allnum) file1.close() #(2) file1=open("E:/大一/python与程序设计/file1.txt","r") content=[] for i in range(1,4): l=file1.readline() num= list(map(int, l.split())) num.sort() strs=" ".join(list(map(str,num))) strs2=strs+"\n" content.append(strs2) file2=open("E:/大一/python与程序设计/file2.txt","w") file2.writelines(content) file2.close() file1.close() #(3) file1=open("E:/大一/python与程序设计/file1.txt","r") content=file1.readlines() print(len(content)) #28 from datetime import datetime as dt file3=open("E:/大一/python与程序设计/file3.txt",'r',encoding='utf-8') line1=file3.readline() content=[] for i in range(1,4): l=file3.readline().split() content.append(l) col1=[content[0][0],content[1][0],content[2][0]] col2=[content[0][1],content[1][1],content[2][1]] col3=[content[0][2],content[1][2],content[2][2]] col4=[content[0][3],content[1][3],content[2][3]] day_formate="%H:%M:%S" Time=[] Code=[] Price=[] Volume=[] for t in col1: Time.append(dt.strptime(t,day_formate)) for c in col2: Code.append(str(c)) for p in col3: Price.append(float(p)) for v in col4: Volume.append(int(v)) file3.close() #29 #(1) mean=lambda x,y,z:(x+y+z)/3 #(2) def mean(*num): if bool(num)==0: return None else: return sum(num)/len(num) #30 def fibo(n): if n==1 or n==2: return 1 else: return fibo(n-1)+fibo(n-2) #31 from math import sqrt class Point(): def __init__(self,x,y): self.x=x self.y=y class Line(Point): def __init__(self,p1,p2): self.p1=p1 self.p2=p2 def lenth(self): lenth=sqrt((self.p1.x-self.p2.x)**2+(self.p1.y-self.p2.y)**2) return lenth def slope(self): if self.p1.x==self.p2.x: return None else: k=(self.p1.y-self.p2.y)/(self.p1.x-self.p2.x) return k def __repr__(self): return ((self.p1),(self.p2)) p1=Point(2,3) p2=Point(5,9) line=Line(p1,p2) l_line=line.lenth() k_line=line.slope() print(f"起点(2,3)到止点(5,9)的线段长度为{l_line},斜率为{k_line}") #32 class Point(): #(1) def __init__(self,x=0,y=0): self.x=x self.y=y #(2) def trans(self): return (self.y,self.x) #(3) def show(self): return print(f"该点坐标为({self.x},{self.y})") #(4) p1=Point(1,2) p1.trans() p1.show() p2=Point(3,5) p2.trans() p2.show()
对于你的代码,我进行了一些修改和注释,以便更好地理解。请查看以下代码:
26
(1) 计算列表中每个元素的平方
lst = [1, 2, 3, 4, 5] square = map(lambda x: x * x, lst) print(list(square))
(2) 过滤出列表中的偶数
even = filter(lambda x: x % 2 == 0, lst) print(list(even))
27
(1) 读取文件中的数字,并计算它们的总和
file1 = open("E:/大一/python与程序设计/file1.txt", "r") content1 = file1.read() lst1 = content1.split() num = list(map(int, lst1)) allnum = sum(num) print(allnum) file1.close()
(2) 读取文件中的数字,并将每行数字进行排序后写入新文件
file1 = open("E:/大一/python与程序设计/file1.txt", "r") content = [] for i in range(1, 4): l = file1.readline() num = list(map(int, l.split())) num.sort() strs = " ".join(list(map(str, num))) strs2 = strs + "\n" content.append(strs2) file2 = open("E:/大一/python与程序设计/file2.txt", "w") file2.writelines(content) file2.close() file1.close()
(3) 读取文件中的行数
file1 = open("E:/大一/python与程序设计/file1.txt", "r") content = file1.readlines() print(len(content))
28
从文件中读取数据,并按照列进行解析
from datetime import datetime as dt
file3 = open("E:/大一/python与程序设计/file3.txt", 'r', encoding='utf-8') line1 = file3.readline() content = [] for i in range(1, 4): l = file3.readline().split() content.append(l)
将字符串时间转换为datetime类型
col1 = [content[0][0], content[1][0], content[2][0]] day_formate = "%H:%M:%S" Time = [dt.strptime(t, day_formate) for t in col1]
将字符串转换为其他类型
col2 = [content[0][1], content[1][1], content[2][1]] Code = [str(c) for c in col2]
col3 = [content[0][2], content[1][2], content[2][2]] Price = [float(p) for p in col3]
col4 = [content[0][3], content[1][3], content[2][3]] Volume = [int(v) for v in col4]
file3.close()
29
(1) 求三个数的平均值
mean = lambda x, y, z: (x + y + z) / 3
(2) 求任意数量的数的平均值
def mean(*num): if bool(num) == 0: return None else: return sum(num) / len(num)
30
计算斐波那契数列的第n项
def fibo(n): if n == 1 or n == 2: return 1 else: return fibo(n - 1) + fibo(n - 2)
31
定义Point和Line类,并计算线段长度和斜率
from math import sqrt
class Point(): def init(self, x, y): self.x = x self.y = y
class Line(Point): def init(self, p1, p2): self.p1 = p1 self.p2 = p2
def length(self):
length = sqrt((self.p1.x - self.p2.x) ** 2 + (self.p1.y - self.p2.y) ** 2)
return length
def slope(self):
if self.p1.x == self.p2.x:
return None
else:
k = (self.p1.y - self.p2.y) / (self.p1.x - self.p2.x)
return k
def __repr__(self):
return ((self.p1), (self.p2))
p1 = Point(2, 3) p2 = Point(5, 9) line = Line(p1, p2) l_length = line.length() k_line = line.slope() print(f"起点(2,3)到止点(5,9)的线段长度为{l_length},斜率为{k_line}")
32
(1) 定义一个Point类,包含x和y坐标
class Point(): def init(self, x=0, y=0): self.x = x self.y = y
(2) 定义一个trans()函数,将坐标轴进行转换
def trans(self): return (self.y, self.x)
(3) 定义一个show()函数,打印出点的坐标
def show(self): return print(f"该点坐标为({self.x},{self.y})")
p1 = Point(1, 2) p1.trans() p1.show()
p2 = Point(3, 5) p2.trans() p2.show()
相关推荐

















