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()
>
> 请问是哪一步出错了?
第五行的范围不太对
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]))
请问应该怎么把输入的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))
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]))
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)
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循环遍历 然后如果元素不在查重后的列表里那就把他添加到列表
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("不足三位数")
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("不足三位数")
马老师,我把你的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("不足三位数")
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,"个")
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,"个")
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 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)
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内不是只有两个元素吗
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]
第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,循环结束”这个条件?
想问问书本(课本,非实验书)P131的例3-4-5,它的代码倒数第二行,是不是应该是s=s[:-1]呀?
请问实践4的4.3.2的3.算法应用中“搜索区域初始化”这一步骤是什么意思?
你大概可以理解成规定接下来进行查找时的第一个区域,也就是整个L
有没有一种可能~加号占3个字符位置?如果不是那就改成[:-1]
请问是哪里出了问题
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()
请问是哪一步出错了?
缩进被吞掉了,正确缩进了的
第五行的范围不太对
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)]呀
想问问书本(课本,非实验书)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))
请问要怎么查找插入位置呢.......这个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 :
print("工号\t\t本月津贴")
for x in s:
print("{:d}\t{:d}".format(x[0],x[3]))
怎么改变列表中的数?
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)
求助
注意while下面那一行。我明明写的和书上一样,为啥有bug(奇了怪了,离谱啊) 求助?感谢诸位
已经要求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
图三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
马老师,我把你的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("不足三位数")
谢谢张老师
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]+"(足球)"
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="")
请问为什么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 :
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中呢
s[j+1]=r
这不是自带的代码吗,为什么运行不了啊
整行删了之后重新打试试看
请问4.4.1如何实现去除重复数字呢
a = set(list(s))这是去重函数
请问如何去除引号呢
或许可以换一种思路输出?
可以尝试join函数吗
sy4-6.py、sy4-7.py、sy4-8.py、sy4-9.py、sy4-10.py参考答案