#9 第11周作业(心院班)

Open
opened 2 years ago by test2022 · 46 comments
test2022 commented 2 years ago

第11周作业(心院班)
1、完成实践4的4.3.2-4.3.4,以及4.4.1-4.4.2,按题目要求保存并提交。
(作业名为sy4-6.py、sy4-7.py、sy4-8.py、sy4-9.py、sy4-10.py)
以上作业不迟于周五晚提交至水杉码园学号仓库的homework11分支下。


水杉码园上的本次作业要求:https://gitea.shuishan.net.cn/Comp-Prog-A.Liuyao.2022Fall.XinYuan/AllStuRead/issues/9
实验素材请参考AllStuRead仓库的范例、素材(学生).zip

第11周作业(心院班) 1、完成实践4的4.3.2-4.3.4,以及4.4.1-4.4.2,按题目要求保存并提交。 **(作业名为sy4-6.py、sy4-7.py、sy4-8.py、sy4-9.py、sy4-10.py)** 以上作业不迟于周五晚提交至水杉码园学号仓库的homework11分支下。 ----- 水杉码园上的本次作业要求:https://gitea.shuishan.net.cn/Comp-Prog-A.Liuyao.2022Fall.XinYuan/AllStuRead/issues/9 实验素材请参考AllStuRead仓库的范例、素材(学生).zip

想问问书本(课本,非实验书)P128的例3-4-3,它的代码好像没有控制“输入的值=-1,循环结束”这个条件?

想问问书本(课本,非实验书)P128的例3-4-3,它的代码好像没有控制“输入的值=-1,循环结束”这个条件?

想问问书本(课本,非实验书)P131的例3-4-5,它的代码倒数第二行,是不是应该是s=s[:-1]呀?

想问问书本(课本,非实验书)P131的例3-4-5,它的代码倒数第二行,是不是应该是s=s[:-1]呀?

请问实践4的4.3.2的3.算法应用中“搜索区域初始化”这一步骤是什么意思?

请问实践4的4.3.2的3.算法应用中“搜索区域初始化”这一步骤是什么意思?

请问实践4的4.3.2的3.算法应用中“搜索区域初始化”这一步骤是什么意思?

你大概可以理解成规定接下来进行查找时的第一个区域,也就是整个L

> 请问实践4的4.3.2的3.算法应用中“搜索区域初始化”这一步骤是什么意思? 你大概可以理解成规定接下来进行查找时的第一个区域,也就是整个L

想问问书本(课本,非实验书)P128的例3-4-3,它的代码好像没有控制“输入的值=-1,循环结束”这个条件?
确实是书上少写了-1的判断循环,全选代码tab缩进嵌套在更大的if判断里就可以了。

> 想问问书本(课本,非实验书)P128的例3-4-3,它的代码好像没有控制“输入的值=-1,循环结束”这个条件? 确实是书上少写了-1的判断循环,全选代码tab缩进嵌套在更大的if判断里就可以了。

想问问书本(课本,非实验书)P131的例3-4-5,它的代码倒数第二行,是不是应该是s=s[:-1]呀?

有没有一种可能~加号占3个字符位置?如果不是那就改成[:-1]

> 想问问书本(课本,非实验书)P131的例3-4-5,它的代码倒数第二行,是不是应该是s=s[:-1]呀? 有没有一种可能~加号占3个字符位置?如果不是那就改成[:-1]

image 请问是哪里出了问题

![image](/attachments/4f32eac4-8cea-4102-8d30-d18928a59397) 请问是哪里出了问题
test2022 commented 2 years ago
Owner

image 请问是哪里出了问题

sy4-6第6行应该是left<=right

> ![image](/attachments/4f32eac4-8cea-4102-8d30-d18928a59397) > 请问是哪里出了问题 sy4-6第6行应该是left<=right

n=int(input("n="))
L=1],[1,1
for i in range(2,n):
sub=[1]
for j in range(1,i+1):
sub.append(L[i-1][j]+L[i-1][j-1])
sub.append(1)
L.append(sub)
for i in range(n):
for j in range(n-i-1):
print("",end="")
for x in L[i]:
print("{:2d}".format(x),end="")
print()

请问是哪一步出错了?
缩进被吞掉了,正确缩进了的

n=int(input("n=")) L=[[1],[1,1]] for i in range(2,n): sub=[1] for j in range(1,i+1): sub.append(L[i-1][j]+L[i-1][j-1]) sub.append(1) L.append(sub) for i in range(n): for j in range(n-i-1): print("",end="") for x in L[i]: print("{:2d}".format(x),end="") print() 请问是哪一步出错了? 缩进被吞掉了,正确缩进了的

n=int(input("n="))
L=1],[1,1
for i in range(2,n):
sub=[1]
for j in range(1,i+1):
sub.append(L[i-1][j]+L[i-1][j-1])
sub.append(1)
L.append(sub)
for i in range(n):
for j in range(n-i-1):
print("",end="")
for x in L[i]:
print("{:2d}".format(x),end="")
print()

请问是哪一步出错了?

第五行的范围不太对

> n=int(input("n=")) > L=[[1],[1,1]] > for i in range(2,n): > sub=[1] > for j in range(1,i+1): > sub.append(L[i-1][j]+L[i-1][j-1]) > sub.append(1) > L.append(sub) > for i in range(n): > for j in range(n-i-1): > print("",end="") > for x in L[i]: > print("{:2d}".format(x),end="") > print() > > 请问是哪一步出错了? 第五行的范围不太对
梁馨 commented 2 years ago

s=[[10170110307,2700,300],[10170110308,1500,800],[10170110309,2500,600],
[10170110310,1500,500],[10170110311,2100,600],[10170110312,3500,200],
[10170110313,1500,300],[10170110314,2500,600]]
if s[0][0]%2==0: #为第一个元素计算本月津贴发放数
s[0].append(s[0][1]+s[0][2])
else:
s[0].append(s[0][1])
for i in range(1,len(s)):
r=s[i] #取出待插入数
if r[0]%2==0: #计算本月津贴发放数
r.append(r[1]+r[2])
else:
r.append(r[1])
#查找插入位置
j=len(s)
while j>=0:
if s[j][3]<r[3]:
r,s[j]=s[j],r
else:
break
j=j-1
s[j]=r #插入
print("工号\t\t本月津贴")
for x in s:
print("{:d}\t{:d}".format(x[0],x[3]))

请问为什么一直在#查找插入位置下的if处报错

s=[[10170110307,2700,300],[10170110308,1500,800],[10170110309,2500,600],\ [10170110310,1500,500],[10170110311,2100,600],[10170110312,3500,200],\ [10170110313,1500,300],[10170110314,2500,600]] if s[0][0]%2==0: #为第一个元素计算本月津贴发放数 s[0].append(s[0][1]+s[0][2]) else: s[0].append(s[0][1]) for i in range(1,len(s)): r=s[i] #取出待插入数 if r[0]%2==0: #计算本月津贴发放数 r.append(r[1]+r[2]) else: r.append(r[1]) #查找插入位置 j=len(s) while j>=0: if s[j][3]<r[3]: r,s[j]=s[j],r else: break j=j-1 s[j]=r #插入 print("工号\t\t本月津贴") for x in s: print("{:d}\t{:d}".format(x[0],x[3])) 请问为什么一直在#查找插入位置下的if处报错

s=[[10170110307,2700,300],[10170110308,1500,800],[10170110309,2500,600],
[10170110310,1500,500],[10170110311,2100,600],[10170110312,3500,200],
[10170110313,1500,300],[10170110314,2500,600]]
if s[0][0]%2==0: #为第一个元素计算本月津贴发放数
s[0].append(s[0][1]+s[0][2])
else:
s[0].append(s[0][1])
for i in range(1,len(s)):
r=s[i] #取出待插入数
if r[0]%2==0: #计算本月津贴发放数
r.append(r[1]+r[2])
else:
r.append(r[1])
#查找插入位置
j=len(s)
while j>=0:
if s[j][3]<r[3]:
r,s[j]=s[j],r
else:
break
j=j-1
s[j]=r #插入
print("工号\t\t本月津贴")
for x in s:
print("{:d}\t{:d}".format(x[0],x[3]))

请问为什么一直在#查找插入位置下的if处报错

因为不存在s[len(s)]呀

> s=[[10170110307,2700,300],[10170110308,1500,800],[10170110309,2500,600],\ > [10170110310,1500,500],[10170110311,2100,600],[10170110312,3500,200],\ > [10170110313,1500,300],[10170110314,2500,600]] > if s[0][0]%2==0: #为第一个元素计算本月津贴发放数 > s[0].append(s[0][1]+s[0][2]) > else: > s[0].append(s[0][1]) > for i in range(1,len(s)): > r=s[i] #取出待插入数 > if r[0]%2==0: #计算本月津贴发放数 > r.append(r[1]+r[2]) > else: > r.append(r[1]) > #查找插入位置 > j=len(s) > while j>=0: > if s[j][3]<r[3]: > r,s[j]=s[j],r > else: > break > j=j-1 > s[j]=r #插入 > print("工号\t\t本月津贴") > for x in s: > print("{:d}\t{:d}".format(x[0],x[3])) > > 请问为什么一直在#查找插入位置下的if处报错 因为不存在s[len(s)]呀

s=[[10170110307,2700,300],[10170110308,1500,800],[10170110309,2500,600],
[10170110310,1500,500],[10170110311,2100,600],[10170110312,3500,200],
[10170110313,1500,300],[10170110314,2500,600]]
if s[0][0]%2==0: #为第一个元素计算本月津贴发放数
s[0].append(s[0][1]+s[0][2])
else:
s[0].append(s[0][1])
for i in range(1,len(s)):
r=s[i] #取出待插入数
if r[0]%2==0: #计算本月津贴发放数
r.append(r[1]+r[2])
else:
r.append(r[1])
#查找插入位置
j=len(s)
while j>=0:
if s[j][3]<r[3]:
r,s[j]=s[j],r
else:
break
j=j-1
s[j]=r #插入
print("工号\t\t本月津贴")
for x in s:
print("{:d}\t{:d}".format(x[0],x[3]))

请问为什么一直在#查找插入位置下的if处报错
可能因为i<len(s),还没有遍历到出现s[j][3]

> s=[[10170110307,2700,300],[10170110308,1500,800],[10170110309,2500,600],\ > [10170110310,1500,500],[10170110311,2100,600],[10170110312,3500,200],\ > [10170110313,1500,300],[10170110314,2500,600]] > if s[0][0]%2==0: #为第一个元素计算本月津贴发放数 > s[0].append(s[0][1]+s[0][2]) > else: > s[0].append(s[0][1]) > for i in range(1,len(s)): > r=s[i] #取出待插入数 > if r[0]%2==0: #计算本月津贴发放数 > r.append(r[1]+r[2]) > else: > r.append(r[1]) > #查找插入位置 > j=len(s) > while j>=0: > if s[j][3]<r[3]: > r,s[j]=s[j],r > else: > break > j=j-1 > s[j]=r #插入 > print("工号\t\t本月津贴") > for x in s: > print("{:d}\t{:d}".format(x[0],x[3])) > > 请问为什么一直在#查找插入位置下的if处报错 可能因为i<len(s),还没有遍历到出现s[j][3]

想问问书本(课本,非实验书)P140的最上面,按照字符串排序,当字符串长度相同时,按照什么顺序排列呀?比如其中的'This','from','Song'?

想问问书本(课本,非实验书)P140的最上面,按照字符串排序,当字符串长度相同时,按照什么顺序排列呀?比如其中的'This','from','Song'?

请问应该怎么把输入的x变成不重复的数字?需要放到列表中吗?
我的代码如下:
x=input('输入:')
L=[]
L.extend(x)
set(L)
L.sort()
L1=[]
n=0
if len(L)<3:
print('不足三位数')
else:
for i in range(0,len(L)):
if L[i]!=0:
for a in range(0,len(L)):
for b in range(0,len(L)):
for c in range(0,len(L)):
if a!=b and b!=c and a!=c:
n+=1
L1.append('{}{}{}'.format(a,b,c))
else:
for a in range(0,i)and range(i+1,len(L)):
for b in range(0,len(L)):
for c in range(0,len(L)):
if a!=b and b!=c and a!=c:
n+=1
L1.append('{}{}{}'.format(a,b,c))
for i in L1:
print(i,end=' ')
print('共{}个'.format(n))

请问应该怎么把输入的x变成不重复的数字?需要放到列表中吗? 我的代码如下: x=input('输入:') L=[] L.extend(x) set(L) L.sort() L1=[] n=0 if len(L)<3: print('不足三位数') else: for i in range(0,len(L)): if L[i]!=0: for a in range(0,len(L)): for b in range(0,len(L)): for c in range(0,len(L)): if a!=b and b!=c and a!=c: n+=1 L1.append('{}{}{}'.format(a,b,c)) else: for a in range(0,i)and range(i+1,len(L)): for b in range(0,len(L)): for c in range(0,len(L)): if a!=b and b!=c and a!=c: n+=1 L1.append('{}{}{}'.format(a,b,c)) for i in L1: print(i,end=' ') print('共{}个'.format(n))
朱逸 commented 2 years ago

请问要怎么查找插入位置呢.......这个J的条件是什么呢?
s=[[10170110307,2700,300],[10170110308,1500,800],[10170110309,2500,600],
[10170110310,1500,500],[10170110311,2100,600],[10170110312,3500,200],
[10170110313,1500,300],[10170110314,2500,600]]

if s[0][0]%2==0: #为第一个元素计算本月津贴发放数
s[0].append(s[0][1]+s[0][2])
else:
s[0].append(s[0][1])
for i in range(1,len(s)):
r=s[i] #取出待插入数
if r[0]%2==0: #计算本月津贴发放数
r.append(r[1]+r[2])
else:
r.append(r[1])
#查找插入位置
j= 1
while j>=0 :

            if s[j][3]<r[3]:
                    s[j][3]=s[j-1]                  
            else:
                    break
            j=j-1
            s=r               #插入

print("工号\t\t本月津贴")
for x in s:
print("{:d}\t{:d}".format(x[0],x[3]))

请问要怎么查找插入位置呢.......这个J的条件是什么呢? s=[[10170110307,2700,300],[10170110308,1500,800],[10170110309,2500,600],\ [10170110310,1500,500],[10170110311,2100,600],[10170110312,3500,200],\ [10170110313,1500,300],[10170110314,2500,600]] if s[0][0]%2==0: #为第一个元素计算本月津贴发放数 s[0].append(s[0][1]+s[0][2]) else: s[0].append(s[0][1]) for i in range(1,len(s)): r=s[i] #取出待插入数 if r[0]%2==0: #计算本月津贴发放数 r.append(r[1]+r[2]) else: r.append(r[1]) #查找插入位置 j= 1 while j>=0 : if s[j][3]<r[3]: s[j][3]=s[j-1] else: break j=j-1 s=r #插入 print("工号\t\t本月津贴") for x in s: print("{:d}\t{:d}".format(x[0],x[3]))
朱逸 commented 2 years ago

怎么改变列表中的数?

group='鲁智深 柴进 宋江 林冲 卢俊义 孙二娘 史进 吴用 李逵'
footBallGroup='吴用 卢俊义 鲁智深'
pingpangGroup='林冲 孙二娘 李逵'
L1=group.split(' ')
L2=footBallGroup.split(' ')
L3=pingpangGroup.split(' ')
for x in range(0,len(L1)):
for j in L2:
if L1[x]==j:
L1[x]=L1[x]+'足球'
for y in L3:
if L1(x)==y:
L1(x)=L1(x)+'乒乓'

print(L1)

怎么改变列表中的数? group='鲁智深 柴进 宋江 林冲 卢俊义 孙二娘 史进 吴用 李逵' footBallGroup='吴用 卢俊义 鲁智深' pingpangGroup='林冲 孙二娘 李逵' L1=group.split(' ') L2=footBallGroup.split(' ') L3=pingpangGroup.split(' ') for x in range(0,len(L1)): for j in L2: if L1[x]==j: L1[x]=L1[x]+'足球' for y in L3: if L1(x)==y: L1(x)=L1(x)+'乒乓' print(L1)

求助
image image 注意while下面那一行。我明明写的和书上一样,为啥有bug(奇了怪了,离谱啊) 求助?感谢诸位

求助 ![image](/attachments/60fe26b5-d579-4c4d-a527-060d534b22d4) ![image](/attachments/625cbbf8-102e-486c-96c4-8abc36ec8f72) 注意while下面那一行。我明明写的和书上一样,为啥有bug(奇了怪了,离谱啊) 求助?感谢诸位

怎么改变列表中的数?

group='鲁智深 柴进 宋江 林冲 卢俊义 孙二娘 史进 吴用 李逵'
footBallGroup='吴用 卢俊义 鲁智深'
pingpangGroup='林冲 孙二娘 李逵'
L1=group.split(' ')
L2=footBallGroup.split(' ')
L3=pingpangGroup.split(' ')
for x in range(0,len(L1)):
for j in L2:
if L1[x]==j:
L1[x]=L1[x]+'足球'
for y in L3:
if L1(x)==y:
L1(x)=L1(x)+'乒乓'

print(L1)
第二个括号应该是[]

> 怎么改变列表中的数? > > group='鲁智深 柴进 宋江 林冲 卢俊义 孙二娘 史进 吴用 李逵' > footBallGroup='吴用 卢俊义 鲁智深' > pingpangGroup='林冲 孙二娘 李逵' > L1=group.split(' ') > L2=footBallGroup.split(' ') > L3=pingpangGroup.split(' ') > for x in range(0,len(L1)): > for j in L2: > if L1[x]==j: > L1[x]=L1[x]+'足球' > for y in L3: > if L1(x)==y: > L1(x)=L1(x)+'乒乓' > > print(L1) 第二个括号应该是[]

请问应该怎么把输入的x变成不重复的数字?需要放到列表中吗?
我的代码如下:
x=input('输入:')
L=[]
L.extend(x)
set(L)
L.sort()
L1=[]
n=0
if len(L)<3:
print('不足三位数')
else:
for i in range(0,len(L)):
if L[i]!=0:
for a in range(0,len(L)):
for b in range(0,len(L)):
for c in range(0,len(L)):
if a!=b and b!=c and a!=c:
n+=1
L1.append('{}{}{}'.format(a,b,c))
else:
for a in range(0,i)and range(i+1,len(L)):
for b in range(0,len(L)):
for c in range(0,len(L)):
if a!=b and b!=c and a!=c:
n+=1
L1.append('{}{}{}'.format(a,b,c))
for i in L1:
print(i,end=' ')
print('共{}个'.format(n))

查重可以用for循环遍历 然后如果元素不在查重后的列表里那就把他添加到列表

> 请问应该怎么把输入的x变成不重复的数字?需要放到列表中吗? > 我的代码如下: > x=input('输入:') > L=[] > L.extend(x) > set(L) > L.sort() > L1=[] > n=0 > if len(L)<3: > print('不足三位数') > else: > for i in range(0,len(L)): > if L[i]!=0: > for a in range(0,len(L)): > for b in range(0,len(L)): > for c in range(0,len(L)): > if a!=b and b!=c and a!=c: > n+=1 > L1.append('{}{}{}'.format(a,b,c)) > else: > for a in range(0,i)and range(i+1,len(L)): > for b in range(0,len(L)): > for c in range(0,len(L)): > if a!=b and b!=c and a!=c: > n+=1 > L1.append('{}{}{}'.format(a,b,c)) > for i in L1: > print(i,end=' ') > print('共{}个'.format(n)) > > 查重可以用for循环遍历 然后如果元素不在查重后的列表里那就把他添加到列表

已经要求i!=0了为什么还会有0作为第一位,好崩溃

已经要求i!=0了为什么还会有0作为第一位,好崩溃

已经要求i!=0了为什么还会有0作为第一位,好崩溃

好像因为列表里的0是字符串,“!=0”的0是数字

> 已经要求i!=0了为什么还会有0作为第一位,好崩溃 好像因为列表里的0是字符串,“!=0”的0是数字

4.3.3 run之后很奇怪
if s[0][0]%2==0: #为第一个元素计算本月津贴发放数
s[0].append(s[0][1]+s[0][2])
else:
s[0].append(s[0][1])
for i in range(1,len(s)):
r=s[i] #取出待插入数
if r[0]%2==0: #计算本月津贴发放数
r.append(r[1]+r[2])
else:
r.append(r[1])
#查找插入位置
j=i-1
while j>=0 :
if s[j][3]<r[3]:
r,s[j]=s[j],r
else:
break
j=j-1
s[j]=r #插入
print("工号\t\t本月津贴")
for x in s:
print("{:d}\t{:d}".format(x[0],x[3]))
工号 本月津贴
10170110308 2300
10170110309 2500
10170110310 2000
10170110311 2100
10170110312 3700
10170110313 1500
10170110314 3100
10170110314 3100

4.3.3 run之后很奇怪 if s[0][0]%2==0: #为第一个元素计算本月津贴发放数 s[0].append(s[0][1]+s[0][2]) else: s[0].append(s[0][1]) for i in range(1,len(s)): r=s[i] #取出待插入数 if r[0]%2==0: #计算本月津贴发放数 r.append(r[1]+r[2]) else: r.append(r[1]) #查找插入位置 j=i-1 while j>=0 : if s[j][3]<r[3]: r,s[j]=s[j],r else: break j=j-1 s[j]=r #插入 print("工号\t\t本月津贴") for x in s: print("{:d}\t{:d}".format(x[0],x[3])) 工号 本月津贴 10170110308 2300 10170110309 2500 10170110310 2000 10170110311 2100 10170110312 3700 10170110313 1500 10170110314 3100 10170110314 3100

image image image 图三if一行明明是课本的代码,为什么室友的程序正常运行 但是我的不行。。 求求

![image](/attachments/07537e9f-4880-4905-a324-38e1aef776cb) ![image](/attachments/a85e31d5-4d33-47ee-ae54-812b679b5b2e) ![image](/attachments/8350dc7d-a228-4099-947e-ebbfe9d06acc) 图三if一行明明是课本的代码,为什么室友的程序正常运行 但是我的不行。。 求求

a=input("输入:").split(",")
L1=list(a)
L2=list(set(L1))
n=0
if len(L2)>=3:
for i in range(0,len(L2)):
if int(L2[i])!=0:
for j in range(0,len(L2)):
while int(L2[j])!=int(L2[i]):
for k in range(0,len(L2)):
while (int(L2[k])!=int(L2[i])) and (int(L2[k])!=int(L2[j])):
n+=1
else:
print("不足三位数")

print("输出:")
print(L2[i],L2[j],L2[k],end="")
print("共",n,"个")

请问为啥这个程序run不出结果 救救孩子TAT

a=input("输入:").split(",") L1=list(a) L2=list(set(L1)) n=0 if len(L2)>=3: for i in range(0,len(L2)): if int(L2[i])!=0: for j in range(0,len(L2)): while int(L2[j])!=int(L2[i]): for k in range(0,len(L2)): while (int(L2[k])!=int(L2[i])) and (int(L2[k])!=int(L2[j])): n+=1 else: print("不足三位数") print("输出:") print(L2[i],L2[j],L2[k],end="") print("共",n,"个") 请问为啥这个程序run不出结果 救救孩子TAT
220 KiB

a=input("输入:").split(",")
L1=list(a)
L2=list(set(L1))
n=0
if len(L2)>=3:
for i in range(0,len(L2)):
if int(L2[i])!=0:
for j in range(0,len(L2)):
while int(L2[j])!=int(L2[i]):
for k in range(0,len(L2)):
while (int(L2[k])!=int(L2[i])) and (int(L2[k])!=int(L2[j])):
n+=1
else:
print("不足三位数")

print("输出:")
print(L2[i],L2[j],L2[k],end="")
print("共",n,"个")

请问为啥这个程序run不出结果 救救孩子TAT

马老师,我把你的while改成if;print提前,就可以跑了(挠头
a=input("输入:").split(",")
L1=list(a)
L2=list(set(L1))
n=0
if len(L2)>=3:
print("输出:")
for i in range(0,len(L2)):
if int(L2[i])!=0:
for j in range(0,len(L2)):
if int(L2[j])!=int(L2[i]):
for k in range(0,len(L2)):
if (int(L2[k])!=int(L2[i])) and (int(L2[k])!=int(L2[j])):
print(L2[i],L2[j],L2[k],end=" ")
n+=1
print("共",n,"个")
else:
print("不足三位数")

> a=input("输入:").split(",") > L1=list(a) > L2=list(set(L1)) > n=0 > if len(L2)>=3: > for i in range(0,len(L2)): > if int(L2[i])!=0: > for j in range(0,len(L2)): > while int(L2[j])!=int(L2[i]): > for k in range(0,len(L2)): > while (int(L2[k])!=int(L2[i])) and (int(L2[k])!=int(L2[j])): > n+=1 > else: > print("不足三位数") > > print("输出:") > print(L2[i],L2[j],L2[k],end="") > print("共",n,"个") > > 请问为啥这个程序run不出结果 救救孩子TAT 马老师,我把你的while改成if;print提前,就可以跑了(挠头 a=input("输入:").split(",") L1=list(a) L2=list(set(L1)) n=0 if len(L2)>=3: print("输出:") for i in range(0,len(L2)): if int(L2[i])!=0: for j in range(0,len(L2)): if int(L2[j])!=int(L2[i]): for k in range(0,len(L2)): if (int(L2[k])!=int(L2[i])) and (int(L2[k])!=int(L2[j])): print(L2[i],L2[j],L2[k],end=" ") n+=1 print("共",n,"个") else: print("不足三位数")

已经要求i!=0了为什么还会有0作为第一位,好崩溃

好像因为列表里的0是字符串,“!=0”的0是数字

谢谢张老师

> > 已经要求i!=0了为什么还会有0作为第一位,好崩溃 > > 好像因为列表里的0是字符串,“!=0”的0是数字 谢谢张老师

uu们可以帮看看为什么我的sy4-9最后run出来是这样吗(流泪

p=0
n=input().split(",")
n=list(n)
n=list(set(n))
if len(n)>=3:
for j in range(0,len(n)):
if int(n[j])!=0:
for k in range(0,len(n)):
if int(n[k])!=int(n[j]):
for m in range(0,len(n)):
if int(n[m])!=int(n[j]) and int(n[m])!=int(n[k]):
p=p+1
else:
print('不足三位数')

print(n[j],n[k],n[m],end="")
print("共",p,"个")

uu们可以帮看看为什么我的sy4-9最后run出来是这样吗(流泪 p=0 n=input().split(",") n=list(n) n=list(set(n)) if len(n)>=3: for j in range(0,len(n)): if int(n[j])!=0: for k in range(0,len(n)): if int(n[k])!=int(n[j]): for m in range(0,len(n)): if int(n[m])!=int(n[j]) and int(n[m])!=int(n[k]): p=p+1 else: print('不足三位数') print(n[j],n[k],n[m],end="") print("共",p,"个")
31 KiB
33 KiB

uu们可以帮看看为什么我的sy4-9最后run出来是这样吗(流泪

p=0
n=input().split(",")
n=list(n)
n=list(set(n))
if len(n)>=3:
for j in range(0,len(n)):
if int(n[j])!=0:
for k in range(0,len(n)):
if int(n[k])!=int(n[j]):
for m in range(0,len(n)):
if int(n[m])!=int(n[j]) and int(n[m])!=int(n[k]):
p=p+1
else:
print('不足三位数')

print(n[j],n[k],n[m],end="")
print("共",p,"个")

p=0
n=input().split(",")
n=list(n)
n=list(set(n))
if len(n)>=3:
for j in range(0,len(n)):
if int(n[j])!=0:
for k in range(0,len(n)):
if int(n[k])!=int(n[j]):
for m in range(0,len(n)):
if int(n[m])!=int(n[j]) and int(n[m])!=int(n[k]):
p=p+1
print(n[j],n[k],n[m],sep='',end=' ')
else:
print('不足三位数')
print()
print("共",p,"个")

> uu们可以帮看看为什么我的sy4-9最后run出来是这样吗(流泪 > > p=0 > n=input().split(",") > n=list(n) > n=list(set(n)) > if len(n)>=3: > for j in range(0,len(n)): > if int(n[j])!=0: > for k in range(0,len(n)): > if int(n[k])!=int(n[j]): > for m in range(0,len(n)): > if int(n[m])!=int(n[j]) and int(n[m])!=int(n[k]): > p=p+1 > else: > print('不足三位数') > > print(n[j],n[k],n[m],end="") > print("共",p,"个") > p=0 n=input().split(",") n=list(n) n=list(set(n)) if len(n)>=3: for j in range(0,len(n)): if int(n[j])!=0: for k in range(0,len(n)): if int(n[k])!=int(n[j]): for m in range(0,len(n)): if int(n[m])!=int(n[j]) and int(n[m])!=int(n[k]): p=p+1 print(n[j],n[k],n[m],sep='',end=' ') else: print('不足三位数') print() print("共",p,"个")

group='鲁智深 柴进 宋江 林冲 卢俊义 孙二娘 史进 吴用 李逵'
footBallGroup='吴用 卢俊义 鲁智深'
pingpangGroup='林冲 孙二娘 李逵'
a=group.split()
L=[]
for i in range(0,len(a)):
if a[i] in footBallGroup:
a[i]=a[i]+"(足球)"

elif a[i] in pingpangGroup:
    a[i]=a[i]+"(乒乓)"

print(a)
输出结果:
['鲁智深(足球)', '柴进', '宋江', '林冲(乒乓)', '卢俊义(足球)', '孙二娘(乒乓)', '史进', '吴用(足球)', '李逵(乒乓)']
想问一下输出的时候怎么把每个元素的引号去掉?

group='鲁智深 柴进 宋江 林冲 卢俊义 孙二娘 史进 吴用 李逵' footBallGroup='吴用 卢俊义 鲁智深' pingpangGroup='林冲 孙二娘 李逵' a=group.split() L=[] for i in range(0,len(a)): if a[i] in footBallGroup: a[i]=a[i]+"(足球)" elif a[i] in pingpangGroup: a[i]=a[i]+"(乒乓)" print(a) 输出结果: ['鲁智深(足球)', '柴进', '宋江', '林冲(乒乓)', '卢俊义(足球)', '孙二娘(乒乓)', '史进', '吴用(足球)', '李逵(乒乓)'] 想问一下输出的时候怎么把每个元素的引号去掉?

group='鲁智深 柴进 宋江 林冲 卢俊义 孙二娘 史进 吴用 李逵'
footBallGroup='吴用 卢俊义 鲁智深'
pingpangGroup='林冲 孙二娘 李逵'
a=group.split()
L=[]
for i in range(0,len(a)):
if a[i] in footBallGroup:
a[i]=a[i]+"(足球)"

elif a[i] in pingpangGroup:
    a[i]=a[i]+"(乒乓)"

print(a)
输出结果:
['鲁智深(足球)', '柴进', '宋江', '林冲(乒乓)', '卢俊义(足球)', '孙二娘(乒乓)', '史进', '吴用(足球)', '李逵(乒乓)']
想问一下输出的时候怎么把每个元素的引号去掉?

可以试一下join()函数
a=','.join(str(i) for i in a)

> group='鲁智深 柴进 宋江 林冲 卢俊义 孙二娘 史进 吴用 李逵' > footBallGroup='吴用 卢俊义 鲁智深' > pingpangGroup='林冲 孙二娘 李逵' > a=group.split() > L=[] > for i in range(0,len(a)): > if a[i] in footBallGroup: > a[i]=a[i]+"(足球)" > > elif a[i] in pingpangGroup: > a[i]=a[i]+"(乒乓)" > print(a) > 输出结果: > ['鲁智深(足球)', '柴进', '宋江', '林冲(乒乓)', '卢俊义(足球)', '孙二娘(乒乓)', '史进', '吴用(足球)', '李逵(乒乓)'] > 想问一下输出的时候怎么把每个元素的引号去掉? > 可以试一下join()函数 a=','.join(str(i) for i in a)

a=input().split(",")
c=str()
a=list(set(a))
d=str()
n=0

if len(a)<3:
print("不足三位数")
else:
for x in a:
if x!=0:
for y in a:
for z in a:
if (x!=y) and (y!=z) and (x!=z) and(x!=0):
c=x+y+z
n=n+1
print(x,y,z,sep="")

  print("共",n,"个")

请问为什么0还是会出现在开头

a=input().split(",") c=str() a=list(set(a)) d=str() n=0 if len(a)<3: print("不足三位数") else: for x in a: if x!=0: for y in a: for z in a: if (x!=y) and (y!=z) and (x!=z) and(x!=0): c=x+y+z n=n+1 print(x,y,z,sep="") print("共",n,"个") 请问为什么0还是会出现在开头

a=input().split(",")
c=str()
a=list(set(a))
d=str()
n=0

if len(a)<3:
print("不足三位数")
else:
for x in a:
if x!=0:
for y in a:
for z in a:
if (x!=y) and (y!=z) and (x!=z) and(x!=0):
c=x+y+z
n=n+1
print(x,y,z,sep="")

  print("共",n,"个")

请问为什么0还是会出现在开头

if x!=0改成 if x!=str(0)

> a=input().split(",") > c=str() > a=list(set(a)) > d=str() > n=0 > > > if len(a)<3: > print("不足三位数") > else: > for x in a: > if x!=0: > for y in a: > for z in a: > if (x!=y) and (y!=z) and (x!=z) and(x!=0): > c=x+y+z > n=n+1 > print(x,y,z,sep="") > > print("共",n,"个") > > 请问为什么0还是会出现在开头 if x!=0改成 if x!=str(0)

s=[[10170110307,2700,300],[10170110308,1500,800],[10170110309,2500,600],
[10170110310,1500,500],[10170110311,2100,600],[10170110312,3500,200],
[10170110313,1500,300],[10170110314,2500,600]]

if s[0][0]%2==0: #为第一个元素计算本月津贴发放数
s[0].append(s[0][1]+s[0][2])
else:
s[0].append(s[0][1])
for i in range(1,len(s)):
r=s[i][0] #取出待插入数
if r[0]%2==0: #计算本月津贴发放数
r.append(r[1]+r[2])
else:
r.append(r[1])
#查找插入位置
j=n-1
while j>=0 :

            if s[j][3]<r[3]:
                       (4)                  
            else:
                    break
            j=j-1
       (5)           =r               #插入

print("工号\t\t本月津贴")
for x in s:
print("{:d}\t{:d}".format(x[0],x[3]))

请问为什么这里是 if s[j][3]<r[3]:呢?,r内不是只有两个元素吗

s=[[10170110307,2700,300],[10170110308,1500,800],[10170110309,2500,600],\ [10170110310,1500,500],[10170110311,2100,600],[10170110312,3500,200],\ [10170110313,1500,300],[10170110314,2500,600]] if s[0][0]%2==0: #为第一个元素计算本月津贴发放数 s[0].append(s[0][1]+s[0][2]) else: s[0].append(s[0][1]) for i in range(1,len(s)): r=s[i][0] #取出待插入数 if r[0]%2==0: #计算本月津贴发放数 r.append(r[1]+r[2]) else: r.append(r[1]) #查找插入位置 j=n-1 while j>=0 : if s[j][3]<r[3]: (4) else: break j=j-1 (5) =r #插入 print("工号\t\t本月津贴") for x in s: print("{:d}\t{:d}".format(x[0],x[3])) 请问为什么这里是 if s[j][3]<r[3]:呢?,r内不是只有两个元素吗

s=[[10170110307,2700,300],[10170110308,1500,800],[10170110309,2500,600],
[10170110310,1500,500],[10170110311,2100,600],[10170110312,3500,200],
[10170110313,1500,300],[10170110314,2500,600]]

if s[0][0]%2==0: #为第一个元素计算本月津贴发放数
s[0].append(s[0][1]+s[0][2])
else:
s[0].append(s[0][1])
for i in range(1,len(s)):
r=s[i][0] #取出待插入数
if r[0]%2==0: #计算本月津贴发放数
r.append(r[1]+r[2])
else:
r.append(r[1])
#查找插入位置
j=n-1
while j>=0 :

            if s[j][3]<r[3]:
                       (4)                  
            else:
                    break
            j=j-1
       (5)           =r               #插入

print("工号\t\t本月津贴")
for x in s:
print("{:d}\t{:d}".format(x[0],x[3]))

请问为什么这里是 if s[j][3]<r[3]:呢?,r内不是只有两个元素吗

r=s[i][0]改成r=s[i]

> s=[[10170110307,2700,300],[10170110308,1500,800],[10170110309,2500,600],\ > [10170110310,1500,500],[10170110311,2100,600],[10170110312,3500,200],\ > [10170110313,1500,300],[10170110314,2500,600]] > > if s[0][0]%2==0: #为第一个元素计算本月津贴发放数 > s[0].append(s[0][1]+s[0][2]) > else: > s[0].append(s[0][1]) > for i in range(1,len(s)): > r=s[i][0] #取出待插入数 > if r[0]%2==0: #计算本月津贴发放数 > r.append(r[1]+r[2]) > else: > r.append(r[1]) > #查找插入位置 > j=n-1 > while j>=0 : > > if s[j][3]<r[3]: > (4) > else: > break > j=j-1 > (5) =r #插入 > print("工号\t\t本月津贴") > for x in s: > print("{:d}\t{:d}".format(x[0],x[3])) > > 请问为什么这里是 if s[j][3]<r[3]:呢?,r内不是只有两个元素吗 > r=s[i][0]改成r=s[i]

图片 请问如何才能把r【3】插入s中呢

![图片](/attachments/0cb3d812-95fa-4743-8b2d-d72748335448) 请问如何才能把r【3】插入s中呢

图片 请问如何才能把r【3】插入s中呢

s[j+1]=r

> ![图片](/attachments/0cb3d812-95fa-4743-8b2d-d72748335448) > 请问如何才能把r【3】插入s中呢 > s[j+1]=r

图片这不是自带的代码吗,为什么运行不了啊

![图片](/attachments/0d5f8245-d5e6-4df7-84ec-6305d4aa8406)这不是自带的代码吗,为什么运行不了啊
146 KiB

图片这不是自带的代码吗,为什么运行不了啊

整行删了之后重新打试试看

> > ![图片](/attachments/0d5f8245-d5e6-4df7-84ec-6305d4aa8406)这不是自带的代码吗,为什么运行不了啊 > 整行删了之后重新打试试看

图片这不是自带的代码吗,为什么运行不了啊

整行删了之后重新打试试看,或者加个int

> > > > ![图片](/attachments/0d5f8245-d5e6-4df7-84ec-6305d4aa8406)这不是自带的代码吗,为什么运行不了啊 > > > 整行删了之后重新打试试看,或者加个int >

请问4.4.1如何实现去除重复数字呢

请问4.4.1如何实现去除重复数字呢

请问4.4.1如何实现去除重复数字呢

a = set(list(s))这是去重函数

> 请问4.4.1如何实现去除重复数字呢 > a = set(list(s))这是去重函数

图片 图片 请问如何去除引号呢

![图片](/attachments/da674525-b0ab-4002-b20f-3a797f8585f8) ![图片](/attachments/8a9f90a8-0e29-42e7-be9e-db7a7811cf43) 请问如何去除引号呢

图片 图片 请问如何去除引号呢

或许可以换一种思路输出?

> ![图片](/attachments/da674525-b0ab-4002-b20f-3a797f8585f8) > ![图片](/attachments/8a9f90a8-0e29-42e7-be9e-db7a7811cf43) > 请问如何去除引号呢 或许可以换一种思路输出?

图片 图片 请问如何去除引号呢

可以尝试join函数吗

> ![图片](/attachments/da674525-b0ab-4002-b20f-3a797f8585f8) > ![图片](/attachments/8a9f90a8-0e29-42e7-be9e-db7a7811cf43) > 请问如何去除引号呢 可以尝试join函数吗
test2022 commented 2 years ago
Owner

sy4-6.py、sy4-7.py、sy4-8.py、sy4-9.py、sy4-10.py参考答案

sy4-6.py、sy4-7.py、sy4-8.py、sy4-9.py、sy4-10.py参考答案
Sign in to join this conversation.
No Label
No Milestone
No Assignees
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.