#8 第10周作业(心院班)

otevřený
otevřeno před 2 roky uživatelem test2022 · 52 komentářů
test2022 okomentoval před 2 roky

第10周作业(心院班)

周二:
一、随堂测试:所有学生必须当堂完成,课后提交记为零分。
https://ks.wjx.top/vm/mbLtMIk.aspx
二、完成以下作业:
1、完成实践4的4.1.1全部,不用提交。
2、完成实践4的4.2全部,按题目要求保存并提交。
(作业名为sy4-1.py、sy4-2.py、sy4-3.py、sy4-4.py)
以上作业不迟于周五晚提交至水杉码园学号仓库的homework10分支下。

周四:
完成补充的期中练习作业:期中练习-学生.rar(届时会放入AllStuRead仓库)
(作业名为ans11.py、ans12.py、ans21.py、ans22.py、ans31.py、ans32.py)
以上作业不迟于周五晚提交至水杉码园学号仓库的homework10分支下。


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

第10周作业(心院班) 周二: 一、随堂测试:所有学生必须当堂完成,课后提交记为零分。 https://ks.wjx.top/vm/mbLtMIk.aspx 二、完成以下作业: 1、完成实践4的4.1.1全部,不用提交。 2、完成实践4的4.2全部,按题目要求保存并提交。 **(作业名为sy4-1.py、sy4-2.py、sy4-3.py、sy4-4.py)** 以上作业不迟于周五晚提交至水杉码园学号仓库的homework10分支下。 周四: 完成补充的期中练习作业:期中练习-学生.rar(届时会放入AllStuRead仓库) **(作业名为ans11.py、ans12.py、ans21.py、ans22.py、ans31.py、ans32.py)** 以上作业不迟于周五晚提交至水杉码园学号仓库的homework10分支下。 ----- 水杉码园上的本次作业要求:https://gitea.shuishan.net.cn/Comp-Prog-A.Liuyao.2022Fall.XinYuan/AllStuRead/issues/8 实验素材请参考AllStuRead仓库的范例、素材(学生).zip
张浩炜 okomentoval před 2 roky

请问sy4-1中输入x之后,如图左侧一直处于可输入状态是什么原因呀?我的代码如下:

y = []
x = input().split(sep=",")
y.extend(x)
minf = float(y[0])
i = 0
while i < len(y):
if minf > float(y[i]):
minf = float(y[i])
i = i+1
print("最小元素=", minf)

请问sy4-1中输入x之后,如图左侧一直处于可输入状态是什么原因呀?我的代码如下: > y = [] x = input().split(sep=",") y.extend(x) minf = float(y[0]) i = 0 while i < len(y): if minf > float(y[i]): minf = float(y[i]) i = i+1 print("最小元素=", minf)
池知恒 okomentoval před 2 roky

请问sy4-1中输入x之后,如图左侧一直处于可输入状态是什么原因呀?我的代码如下:

y = []
x = input().split(sep=",")
y.extend(x)
minf = float(y[0])
i = 0
while i < len(y):
if minf > float(y[i]):
minf = float(y[i])
i = i+1
print("最小元素=", minf)

倒数第二行可能需要退格

> 请问sy4-1中输入x之后,如图左侧一直处于可输入状态是什么原因呀?我的代码如下: > > y = [] > x = input().split(sep=",") > y.extend(x) > minf = float(y[0]) > i = 0 > while i < len(y): > if minf > float(y[i]): > minf = float(y[i]) > i = i+1 > print("最小元素=", minf) > 倒数第二行可能需要退格
吴健洋 okomentoval před 2 roky

请问sy4-1中输入x之后,如图左侧一直处于可输入状态是什么原因呀?我的代码如下:

y = []
x = input().split(sep=",")
y.extend(x)
minf = float(y[0])
i = 0
while i < len(y):
if minf > float(y[i]):
minf = float(y[i])
i = i+1
print("最小元素=", minf)

会不会是minf<=float(y[i])的时候i不知道怎么变换,然后卡在那里了

> 请问sy4-1中输入x之后,如图左侧一直处于可输入状态是什么原因呀?我的代码如下: > > y = [] > x = input().split(sep=",") > y.extend(x) > minf = float(y[0]) > i = 0 > while i < len(y): > if minf > float(y[i]): > minf = float(y[i]) > i = i+1 > print("最小元素=", minf) > 会不会是minf<=float(y[i])的时候i不知道怎么变换,然后卡在那里了
蒋路阳 okomentoval před 2 roky

请问sy4-1中输入x之后,如图左侧一直处于可输入状态是什么原因呀?我的代码如下:

y = []
x = input().split(sep=",")
y.extend(x)
minf = float(y[0])
i = 0
while i < len(y):
if minf > float(y[i]):
minf = float(y[i])
i = i+1
print("最小元素=", minf)

会不会是minf<=float(y[i])的时候i不知道怎么变换,然后卡在那里了
i=i+1这一行的缩进应该与if并齐才能做到控制循环次数的效果 如果是在if缩进下的话就会陷入死循环了

> > 请问sy4-1中输入x之后,如图左侧一直处于可输入状态是什么原因呀?我的代码如下: > > > y = [] > > x = input().split(sep=",") > > y.extend(x) > > minf = float(y[0]) > > i = 0 > > while i < len(y): > > if minf > float(y[i]): > > minf = float(y[i]) > > i = i+1 > > print("最小元素=", minf) > > > > 会不会是minf<=float(y[i])的时候i不知道怎么变换,然后卡在那里了 > i=i+1这一行的缩进应该与if并齐才能做到控制循环次数的效果 如果是在if缩进下的话就会陷入死循环了
金丹妍 okomentoval před 2 roky

想问问实验书P47的6.思考题(1)填空的第二个L3[1,1]为什么一直报错呀?
L1=[1,2,3,4,5]
L2=["one","two","three","four","five"]
L3=L1[1],L2[1,[L1[2],L2[2]],[L1[3],L2[3]]]
L3
L3[1,1]

想问问实验书P47的6.思考题(1)填空的第二个L3[1,1]为什么一直报错呀? L1=[1,2,3,4,5] L2=["one","two","three","four","five"] L3=[[L1[1],L2[1]],[L1[2],L2[2]],[L1[3],L2[3]]] L3 L3[1,1]
邢丹瑞 okomentoval před 2 roky

想问问实验书P47的6.思考题(1)填空的第二个L3[1,1]为什么一直报错呀?
L1=[1,2,3,4,5]
L2=["one","two","three","four","five"]
L3=L1[1],L2[1,[L1[2],L2[2]],[L1[3],L2[3]]]
L3
L3[1,1]

我也!

> 想问问实验书P47的6.思考题(1)填空的第二个L3[1,1]为什么一直报错呀? > L1=[1,2,3,4,5] > L2=["one","two","three","four","five"] > L3=[[L1[1],L2[1]],[L1[2],L2[2]],[L1[3],L2[3]]] > L3 > L3[1,1] 我也!
test2022 okomentoval před 2 roky
Vlastník

想问问实验书P47的6.思考题(1)填空的第二个L3[1,1]为什么一直报错呀?
L1=[1,2,3,4,5]
L2=["one","two","three","four","five"]
L3=L1[1],L2[1,[L1[2],L2[2]],[L1[3],L2[3]]]
L3
L3[1,1]

试试看L3[1][1]

> 想问问实验书P47的6.思考题(1)填空的第二个L3[1,1]为什么一直报错呀? > L1=[1,2,3,4,5] > L2=["one","two","three","four","five"] > L3=[[L1[1],L2[1]],[L1[2],L2[2]],[L1[3],L2[3]]] > L3 > L3[1,1] 试试看L3[1][1]
朱莲欣 okomentoval před 2 roky

a=[0,1,2,3]
a1=a.copy()
n=0
for i in range(1,4):
b=a1[i]
for i in range(0,3):
a1.remove(b)
c=a1[i]
for i in range(0,2):
a1.remove(c)
d=a1[i]
a1=a.copy()
n=n+1
print(b,c,d,sep=" ")
print(n)
请问这个代码中(ans31)为什么第三个数字没有3?

a=[0,1,2,3] a1=a.copy() n=0 for i in range(1,4): b=a1[i] for i in range(0,3): a1.remove(b) c=a1[i] for i in range(0,2): a1.remove(c) d=a1[i] a1=a.copy() n=n+1 print(b,c,d,sep=" ") print(n) 请问这个代码中(ans31)为什么第三个数字没有3?
朱逸 okomentoval před 2 roky

怎么控制while的循环次数和“第N个整数”中N的变化?怎么排序同构数?

num=input("请输入第1个整数,-1结束:")
n=0
while num!="-1" and n<=5:
n=n+1
L1=[]
L2=[]
L3=[]
if len(num)>2:
print("输入位数不正确!")
num=input("请输入第{}个整数,-1结束:".format(n))
else:
if num.isdigit()==False:
print("输入不是数字!")
num=input("请输入第{}个整数,-1结束:".format(n))
else:
L1.append(num)
pingfang=pow(int(num),2)
ping=str(pingfang)
if num[-1]==ping[-1]:
L2.append(num)
num=input("请输入第{}个整数,-1结束:".format(n))
L3=L2.sort()
print("同构数有:",L3)

怎么控制while的循环次数和“第N个整数”中N的变化?怎么排序同构数? num=input("请输入第1个整数,-1结束:") n=0 while num!="-1" and n<=5: n=n+1 L1=[] L2=[] L3=[] if len(num)>2: print("输入位数不正确!") num=input("请输入第{}个整数,-1结束:".format(n)) else: if num.isdigit()==False: print("输入不是数字!") num=input("请输入第{}个整数,-1结束:".format(n)) else: L1.append(num) pingfang=pow(int(num),2) ping=str(pingfang) if num[-1]==ping[-1]: L2.append(num) num=input("请输入第{}个整数,-1结束:".format(n)) L3=L2.sort() print("同构数有:",L3)
陈柏宇 okomentoval před 2 roky

a=[0,1,2,3]
a1=a.copy()
n=0
for i in range(1,4):
b=a1[i]
for i in range(0,3):
a1.remove(b)
c=a1[i]
for i in range(0,2):
a1.remove(c)
d=a1[i]
a1=a.copy()
n=n+1
print(b,c,d,sep=" ")
print(n)
请问这个代码中(ans31)为什么第三个数字没有3?

这一行for i in range(0,2):区间是左开右闭的,或许把2改成3试试

> a=[0,1,2,3] > a1=a.copy() > n=0 > for i in range(1,4): > b=a1[i] > for i in range(0,3): > a1.remove(b) > c=a1[i] > for i in range(0,2): > a1.remove(c) > d=a1[i] > a1=a.copy() > n=n+1 > print(b,c,d,sep=" ") > print(n) > 请问这个代码中(ans31)为什么第三个数字没有3? 这一行for i in range(0,2):区间是左开右闭的,或许把2改成3试试
陈柏宇 okomentoval před 2 roky

怎么控制while的循环次数和“第N个整数”中N的变化?怎么排序同构数?

num=input("请输入第1个整数,-1结束:")
n=0
while num!="-1" and n<=5:
n=n+1
L1=[]
L2=[]
L3=[]
if len(num)>2:
print("输入位数不正确!")
num=input("请输入第{}个整数,-1结束:".format(n))
else:
if num.isdigit()==False:
print("输入不是数字!")
num=input("请输入第{}个整数,-1结束:".format(n))
else:
L1.append(num)
pingfang=pow(int(num),2)
ping=str(pingfang)
if num[-1]==ping[-1]:
L2.append(num)
num=input("请输入第{}个整数,-1结束:".format(n))
L3=L2.sort()
print("同构数有:",L3)

第一,python中while循环的定义就是无终止循环,若要控制循环次数,建议使用有限循环“for循环”。

第二,要实现第n个整数的n变化,可以在每一个小循环的结尾再写n=n+1。

第三,排序你用sort()函数是对的,一般默认是升序,降序只要加上控制-1就行。

> 怎么控制while的循环次数和“第N个整数”中N的变化?怎么排序同构数? > > > num=input("请输入第1个整数,-1结束:") > n=0 > while num!="-1" and n<=5: > n=n+1 > L1=[] > L2=[] > L3=[] > if len(num)>2: > print("输入位数不正确!") > num=input("请输入第{}个整数,-1结束:".format(n)) > else: > if num.isdigit()==False: > print("输入不是数字!") > num=input("请输入第{}个整数,-1结束:".format(n)) > else: > L1.append(num) > pingfang=pow(int(num),2) > ping=str(pingfang) > if num[-1]==ping[-1]: > L2.append(num) > num=input("请输入第{}个整数,-1结束:".format(n)) > L3=L2.sort() > print("同构数有:",L3) 第一,python中while循环的定义就是无终止循环,若要控制循环次数,建议使用有限循环“for循环”。 第二,要实现第n个整数的n变化,可以在每一个小循环的结尾再写n=n+1。 第三,排序你用sort()函数是对的,一般默认是升序,降序只要加上控制-1就行。
颜卓豪 okomentoval před 2 roky

怎么控制while的循环次数和“第N个整数”中N的变化?怎么排序同构数?

num=input("请输入第1个整数,-1结束:")
n=0
while num!="-1" and n<=5:
n=n+1
L1=[]
L2=[]
L3=[]
if len(num)>2:
print("输入位数不正确!")
num=input("请输入第{}个整数,-1结束:".format(n))
else:
if num.isdigit()==False:
print("输入不是数字!")
num=input("请输入第{}个整数,-1结束:".format(n))
else:
L1.append(num)
pingfang=pow(int(num),2)
ping=str(pingfang)
if num[-1]==ping[-1]:
L2.append(num)
num=input("请输入第{}个整数,-1结束:".format(n))
L3=L2.sort()
print("同构数有:",L3)

怎么控制 while 的循环次数?

  • while 循环在条件为 False 时会停止运行
  • 可以在条件句内运用 break 语句跳出循环

“第N个整数”中 N 的变化

  • 可以在每次判定输入正确的数字时为 N 加上 1

怎么排序同构数?

sort()函数是对目标列表的排序

你写的 L3=L2.sort() 中,应该是想把 L2 排序后的值赋给 L1

如果想实现使 L3 成为 L2 排序后的列表,应该使用返回新的列表对象的函数 sorted()

L3 = sorted(L2) 或 直接使用 L2.sort() 对 L2 排序

> 怎么控制while的循环次数和“第N个整数”中N的变化?怎么排序同构数? > > num=input("请输入第1个整数,-1结束:") > n=0 > while num!="-1" and n<=5: > n=n+1 > L1=[] > L2=[] > L3=[] > if len(num)>2: > print("输入位数不正确!") > num=input("请输入第{}个整数,-1结束:".format(n)) > else: > if num.isdigit()==False: > print("输入不是数字!") > num=input("请输入第{}个整数,-1结束:".format(n)) > else: > L1.append(num) > pingfang=pow(int(num),2) > ping=str(pingfang) > if num[-1]==ping[-1]: > L2.append(num) > num=input("请输入第{}个整数,-1结束:".format(n)) > L3=L2.sort() > print("同构数有:",L3) > 怎么控制 while 的循环次数? - while 循环在条件为 False 时会停止运行 - 可以在条件句内运用 break 语句跳出循环 > “第N个整数”中 N 的变化 - 可以在每次判定输入正确的数字时为 N 加上 1 > 怎么排序同构数? `sort()`函数是对目标列表的排序 你写的 `L3=L2.sort()` 中,应该是想把 L2 排序后的值赋给 L1 如果想实现使 L3 成为 L2 排序后的列表,应该使用返回新的列表对象的函数 sorted() 如 `L3 = sorted(L2)` 或 直接使用 `L2.sort()` 对 L2 排序
梁馨 okomentoval před 2 roky

a=input()
li=[] #建立空列表
for i in range(0,len(a)): #遍历字符串
if a.isalpha():#判断是否是英语字母
ch=a[i].islower() #英文字母取小写
if ch not in li :#判断字母是否在列表中
li.append(ch) #将符合新的英文字母追加到列表
for ch in li:
print(ch,end="") #字符连续输出,不空格,不换行

如何把小写字母取出 以及为什么输出不了

a=input() li=[] #建立空列表 for i in range(0,len(a)): #遍历字符串 if a.isalpha():#判断是否是英语字母 ch=a[i].islower() #英文字母取小写 if ch not in li :#判断字母是否在列表中 li.append(ch) #将符合新的英文字母追加到列表 for ch in li: print(ch,end="") #字符连续输出,不空格,不换行 如何把小写字母取出 以及为什么输出不了
池知恒 okomentoval před 2 roky

a=input()
li=[] #建立空列表
for i in range(0,len(a)): #遍历字符串
if a.isalpha():#判断是否是英语字母
ch=a[i].islower() #英文字母取小写
if ch not in li :#判断字母是否在列表中
li.append(ch) #将符合新的英文字母追加到列表
for ch in li:
print(ch,end="") #字符连续输出,不空格,不换行

如何把小写字母取出 以及为什么输出不了

.islower()是判断是否全为小写返回值是True/False,改成.lower()

> a=input() > li=[] #建立空列表 > for i in range(0,len(a)): #遍历字符串 > if a.isalpha():#判断是否是英语字母 > ch=a[i].islower() #英文字母取小写 > if ch not in li :#判断字母是否在列表中 > li.append(ch) #将符合新的英文字母追加到列表 > for ch in li: > print(ch,end="") #字符连续输出,不空格,不换行 > > 如何把小写字母取出 以及为什么输出不了 .islower()是判断是否全为小写返回值是True/False,改成.lower()
吴健洋 okomentoval před 2 roky

li=[]
li=li.append(5)
为什么最后输入li,它输出的是None

li=[] li=li.append(5) 为什么最后输入li,它输出的是None
池知恒 okomentoval před 2 roky

li=[]
li=li.append(5)
为什么最后输入li,它输出的是None

去掉第二行开头li=试试看

> li=[] > li=li.append(5) > 为什么最后输入li,它输出的是None > 去掉第二行开头li=试试看
陈昊阳 okomentoval před 2 roky

求助。。。为啥会输出一堆乱码啊imageimage

求助。。。为啥会输出一堆乱码啊![image](/attachments/f6a709f0-d066-4fab-925c-992a0de8dde4)![image](/attachments/d495f081-3c3f-47d0-a881-327a1a2b61ad)
池知恒 okomentoval před 2 roky

求助。。。为啥会输出一堆乱码啊imageimage

是lower不是upper

> 求助。。。为啥会输出一堆乱码啊![image](/attachments/f6a709f0-d066-4fab-925c-992a0de8dde4)![image](/attachments/d495f081-3c3f-47d0-a881-327a1a2b61ad) 是lower不是upper
李雨逊 okomentoval před 2 roky

想问一下为什么我这个输出出来没有按升序排序
n=1
l=[]
while True:
a=input("请输入第{}个整数,-1结束:".format(n))
if a==str(-1):
break
elif a.isdigit() is False:
print("输入不是数字!")
continue
elif len(a)!=1 and len(a)!=2:
print("输入数位数不正确!")
continue
else:n=n+1
if str(int(a)*int(a))[-1]==a[-1]:
l.append(a)
continue
l.sort()
print("同构数有:"," ".join(l))

想问一下为什么我这个输出出来没有按升序排序 n=1 l=[] while True: a=input("请输入第{}个整数,-1结束:".format(n)) if a==str(-1): break elif a.isdigit() is False: print("输入不是数字!") continue elif len(a)!=1 and len(a)!=2: print("输入数位数不正确!") continue else:n=n+1 if str(int(a)*int(a))[-1]==a[-1]: l.append(a) continue l.sort() print("同构数有:"," ".join(l))
李雨逊 okomentoval před 2 roky

求助。。。为啥会输出一堆乱码啊imageimage

upper是大写,lower才对 你改一下看看还是不是乱码

> 求助。。。为啥会输出一堆乱码啊![image](/attachments/f6a709f0-d066-4fab-925c-992a0de8dde4)![image](/attachments/d495f081-3c3f-47d0-a881-327a1a2b61ad) upper是大写,lower才对 你改一下看看还是不是乱码
朱莲欣 okomentoval před 2 roky

a=[0,1,2,3]
a1=a.copy()
n=0
for i in range(1,4):
b=a1[i]
for i in range(0,3):
a1.remove(b)
c=a1[i]
for i in range(0,2):
a1.remove(c)
d=a1[i]
a1=a.copy()
n=n+1
print(b,c,d,sep=" ")
print(n)
请问这个代码中(ans31)为什么第三个数字没有3?

这一行for i in range(0,2):区间是左开右闭的,或许把2改成3试试
还是不行

> > a=[0,1,2,3] > > a1=a.copy() > > n=0 > > for i in range(1,4): > > b=a1[i] > > for i in range(0,3): > > a1.remove(b) > > c=a1[i] > > for i in range(0,2): > > a1.remove(c) > > d=a1[i] > > a1=a.copy() > > n=n+1 > > print(b,c,d,sep=" ") > > print(n) > > 请问这个代码中(ans31)为什么第三个数字没有3? > > 这一行for i in range(0,2):区间是左开右闭的,或许把2改成3试试 还是不行
李雨逊 okomentoval před 2 roky

a=[0,1,2,3]
a1=a.copy()
n=0
for i in range(1,4):
b=a1[i]
for i in range(0,3):
a1.remove(b)
c=a1[i]
for i in range(0,2):
a1.remove(c)
d=a1[i]
a1=a.copy()
n=n+1
print(b,c,d,sep=" ")
print(n)
请问这个代码中(ans31)为什么第三个数字没有3?

这一行for i in range(0,2):区间是左开右闭的,或许把2改成3试试
还是不行

也许你可以考虑下改成4?应该是左闭右开才对

> > > a=[0,1,2,3] > > > a1=a.copy() > > > n=0 > > > for i in range(1,4): > > > b=a1[i] > > > for i in range(0,3): > > > a1.remove(b) > > > c=a1[i] > > > for i in range(0,2): > > > a1.remove(c) > > > d=a1[i] > > > a1=a.copy() > > > n=n+1 > > > print(b,c,d,sep=" ") > > > print(n) > > > 请问这个代码中(ans31)为什么第三个数字没有3? > > > > 这一行for i in range(0,2):区间是左开右闭的,或许把2改成3试试 > 还是不行 > 也许你可以考虑下改成4?应该是左闭右开才对
池知恒 okomentoval před 2 roky

想问一下为什么我这个输出出来没有按升序排序
n=1
l=[]
while True:
a=input("请输入第{}个整数,-1结束:".format(n))
if a==str(-1):
break
elif a.isdigit() is False:
print("输入不是数字!")
continue
elif len(a)!=1 and len(a)!=2:
print("输入数位数不正确!")
continue
else:n=n+1
if str(int(a)*int(a))[-1]==a[-1]:
l.append(a)
continue
l.sort()
print("同构数有:"," ".join(l))

不要用字符串排序要用数字排序,而且同构数好像理解错了

> 想问一下为什么我这个输出出来没有按升序排序 > n=1 > l=[] > while True: > a=input("请输入第{}个整数,-1结束:".format(n)) > if a==str(-1): > break > elif a.isdigit() is False: > print("输入不是数字!") > continue > elif len(a)!=1 and len(a)!=2: > print("输入数位数不正确!") > continue > else:n=n+1 > if str(int(a)*int(a))[-1]==a[-1]: > l.append(a) > continue > l.sort() > print("同构数有:"," ".join(l)) > 不要用字符串排序要用数字排序,而且同构数好像理解错了
刘芮孜 okomentoval před 2 roky

想问一下为什么两次运行出来结果会不一样?

想问一下为什么两次运行出来结果会不一样?
9.6 KiB
1.7 KiB
池知恒 okomentoval před 2 roky

想问一下为什么两次运行出来结果会不一样?
c没复位加一个c=0

> 想问一下为什么两次运行出来结果会不一样? c没复位加一个c=0
曹曦丹 okomentoval před 2 roky

x=input("请输入一个正整数:")
while x.isdigit==False:
if x!="quit":
print("NO")
else:
exit(0)
s=0
for i in range(len(x)):
s=s+int(x[i])
if int(x[0])==s/2:
print("YES")
else:
print("NO")
输入含有英文字母的会报错,不知道问题出在哪儿emmm

x=input("请输入一个正整数:") while x.isdigit==False: if x!="quit": print("NO") else: exit(0) s=0 for i in range(len(x)): s=s+int(x[i]) if int(x[0])==s/2: print("YES") else: print("NO") 输入含有英文字母的会报错,不知道问题出在哪儿emmm
朱莲欣 okomentoval před 2 roky

L=[]
i=1
while True:
a=input("请输入第{}个整数,-1结束:".format(i))
if a!="-1":
if len(a)>2:
print("输入数位数不正确!")

    else:
        if a.isdigit():
        
            b=str(int(a)**2)
            c=b[-1]
            if a[-1]==c:
                L.append(int(a))
                i=i+1
            else:
                i=i+1
        else:
            print("输入不是数字!")
            
else:
    sorted(L)
    
    print("同构数有:",L)
    exit()

请问最后的方括号怎么删掉(ans32)

L=[] i=1 while True: a=input("请输入第{}个整数,-1结束:".format(i)) if a!="-1": if len(a)>2: print("输入数位数不正确!") else: if a.isdigit(): b=str(int(a)**2) c=b[-1] if a[-1]==c: L.append(int(a)) i=i+1 else: i=i+1 else: print("输入不是数字!") else: sorted(L) print("同构数有:",L) exit() 请问最后的方括号怎么删掉(ans32)
test2022 okomentoval před 2 roky
Vlastník

x=input("请输入一个正整数:")
while x.isdigit==False:
if x!="quit":
print("NO")
else:
exit(0)
s=0
for i in range(len(x)):
s=s+int(x[i])
if int(x[0])==s/2:
print("YES")
else:
print("NO")
输入含有英文字母的会报错,不知道问题出在哪儿emmm

sy4-4中应该是x.isdigit()

> x=input("请输入一个正整数:") > while x.isdigit==False: > if x!="quit": > print("NO") > else: > exit(0) > s=0 > for i in range(len(x)): > s=s+int(x[i]) > if int(x[0])==s/2: > print("YES") > else: > print("NO") > 输入含有英文字母的会报错,不知道问题出在哪儿emmm sy4-4中应该是x.isdigit()
test2022 okomentoval před 2 roky
Vlastník

L=[]
i=1
while True:
a=input("请输入第{}个整数,-1结束:".format(i))
if a!="-1":
if len(a)>2:
print("输入数位数不正确!")

    else:
        if a.isdigit():
        
            b=str(int(a)**2)
            c=b[-1]
            if a[-1]==c:
                L.append(int(a))
                i=i+1
            else:
                i=i+1
        else:
            print("输入不是数字!")
            
else:
    sorted(L)
    
    print("同构数有:",L)
    exit()

请问最后的方括号怎么删掉(ans32)

使用for循环打印L内所有元素

> L=[] > i=1 > while True: > a=input("请输入第{}个整数,-1结束:".format(i)) > if a!="-1": > if len(a)>2: > print("输入数位数不正确!") > > else: > if a.isdigit(): > > b=str(int(a)**2) > c=b[-1] > if a[-1]==c: > L.append(int(a)) > i=i+1 > else: > i=i+1 > else: > print("输入不是数字!") > > else: > sorted(L) > > print("同构数有:",L) > exit() > 请问最后的方括号怎么删掉(ans32) 使用for循环打印L内所有元素
朱莲欣 okomentoval před 2 roky

a=[0,1,2,3]
a1=a.copy()
n=0
for i in range(1,4):
b=a1[i]
for i in range(0,3):
a1.remove(b)
c=a1[i]
for i in range(0,2):
a1.remove(c)
d=a1[i]
a1=a.copy()
n=n+1
print(b,c,d,sep=" ")
print(n)
请问这个代码中(ans31)为什么第三个数字没有3?

前面几个uu的方法都不行欸

> a=[0,1,2,3] > a1=a.copy() > n=0 > for i in range(1,4): > b=a1[i] > for i in range(0,3): > a1.remove(b) > c=a1[i] > for i in range(0,2): > a1.remove(c) > d=a1[i] > a1=a.copy() > n=n+1 > print(b,c,d,sep=" ") > print(n) > 请问这个代码中(ans31)为什么第三个数字没有3? 前面几个uu的方法都不行欸
朱莲欣 okomentoval před 2 roky

L=[]
i=1
while True:
a=input("请输入第{}个整数,-1结束:".format(i))
if a!="-1":
if len(a)>2:
print("输入数位数不正确!")

    else:
        if a.isdigit():
        
            b=str(int(a)**2)
            c=b[-1]
            if a[-1]==c:
                L.append(int(a))
                i=i+1
            else:
                i=i+1
        else:
            print("输入不是数字!")
            
else:
    sorted(L)
    
    print("同构数有:",L)
    exit()

请问最后的方括号怎么删掉(ans32)

使用for循环打印L内所有元素

image 变成了这样

> > L=[] > > i=1 > > while True: > > a=input("请输入第{}个整数,-1结束:".format(i)) > > if a!="-1": > > if len(a)>2: > > print("输入数位数不正确!") > > > > else: > > if a.isdigit(): > > > > b=str(int(a)**2) > > c=b[-1] > > if a[-1]==c: > > L.append(int(a)) > > i=i+1 > > else: > > i=i+1 > > else: > > print("输入不是数字!") > > > > else: > > sorted(L) > > > > print("同构数有:",L) > > exit() > > 请问最后的方括号怎么删掉(ans32) > > 使用for循环打印L内所有元素 ![image](/attachments/08438f78-929d-4f29-b318-011be69b5bfc) 变成了这样
汪子齐 okomentoval před 2 roky

我想请问一下在ans32.py中为什么我的li最后输出的时候始终为空列表,有什么解决的方法吗,谢谢!
代码如下
i=1
li=[]
x=input("请输入第{}个整数,-1结束:".format(i))
while x!="-1":
if len(x)>2:
print("输入数位数不正确!")
x=input("请输入第{}个整数,-1结束:".format(i))
elif x.isdigit()==False:
print("输入不是数字!")
x=input("请输入第{}个整数,-1结束:".format(i))
else:
if x==5 or x==6 or x==25 or x==76:
li.append(x)
i+=1
x=input("请输入第{}个整数,-1结束:".format(i))
li.sort()
print("同构数有:",li)

我想请问一下在ans32.py中为什么我的li最后输出的时候始终为空列表,有什么解决的方法吗,谢谢! 代码如下 i=1 li=[] x=input("请输入第{}个整数,-1结束:".format(i)) while x!="-1": if len(x)>2: print("输入数位数不正确!") x=input("请输入第{}个整数,-1结束:".format(i)) elif x.isdigit()==False: print("输入不是数字!") x=input("请输入第{}个整数,-1结束:".format(i)) else: if x==5 or x==6 or x==25 or x==76: li.append(x) i+=1 x=input("请输入第{}个整数,-1结束:".format(i)) li.sort() print("同构数有:",li)
李子妍 okomentoval před 2 roky

请问为什么我的代码运行出来到第四个整数就不继续循环了呢,但是程序又说没有结束

请问为什么我的代码运行出来到第四个整数就不继续循环了呢,但是程序又说没有结束
李雨逊 okomentoval před 2 roky

a=[0,1,2,3]
a1=a.copy()
n=0
for i in range(1,4):
b=a1[i]
for i in range(0,3):
a1.remove(b)
c=a1[i]
for i in range(0,2):
a1.remove(c)
d=a1[i]
a1=a.copy()
n=n+1
print(b,c,d,sep=" ")
print(n)
请问这个代码中(ans31)为什么第三个数字没有3?

前面几个uu的方法都不行欸
个人建议你改用循环嵌套 用三个for循环。
对于各个位置上数字重复的问题,只需要进行一次重复判断确保三个数字不相等就行了。
后两个个for循环都用(0,4),第一个循环因为是第一位数字不能是0,所以说是(1,4),最后统一判断是否重复,不然太复杂了

> > a=[0,1,2,3] > > a1=a.copy() > > n=0 > > for i in range(1,4): > > b=a1[i] > > for i in range(0,3): > > a1.remove(b) > > c=a1[i] > > for i in range(0,2): > > a1.remove(c) > > d=a1[i] > > a1=a.copy() > > n=n+1 > > print(b,c,d,sep=" ") > > print(n) > > 请问这个代码中(ans31)为什么第三个数字没有3? > > 前面几个uu的方法都不行欸 个人建议你改用循环嵌套 用三个for循环。 对于各个位置上数字重复的问题,只需要进行一次重复判断确保三个数字不相等就行了。 后两个个for循环都用(0,4),第一个循环因为是第一位数字不能是0,所以说是(1,4),最后统一判断是否重复,不然太复杂了
吴健洋 okomentoval před 2 roky

我想请问一下在ans32.py中为什么我的li最后输出的时候始终为空列表,有什么解决的方法吗,谢谢!
代码如下
i=1
li=[]
x=input("请输入第{}个整数,-1结束:".format(i))
while x!="-1":
if len(x)>2:
print("输入数位数不正确!")
x=input("请输入第{}个整数,-1结束:".format(i))
elif x.isdigit()==False:
print("输入不是数字!")
x=input("请输入第{}个整数,-1结束:".format(i))
else:
if x==5 or x==6 or x==25 or x==76:
li.append(x)
i+=1
x=input("请输入第{}个整数,-1结束:".format(i))
li.sort()
print("同构数有:",li)

x==5那里是文本和数字的比较

> 我想请问一下在ans32.py中为什么我的li最后输出的时候始终为空列表,有什么解决的方法吗,谢谢! > 代码如下 > i=1 > li=[] > x=input("请输入第{}个整数,-1结束:".format(i)) > while x!="-1": > if len(x)>2: > print("输入数位数不正确!") > x=input("请输入第{}个整数,-1结束:".format(i)) > elif x.isdigit()==False: > print("输入不是数字!") > x=input("请输入第{}个整数,-1结束:".format(i)) > else: > if x==5 or x==6 or x==25 or x==76: > li.append(x) > i+=1 > x=input("请输入第{}个整数,-1结束:".format(i)) > li.sort() > print("同构数有:",li) > x==5那里是文本和数字的比较
蒋路阳 okomentoval před 2 roky

请问为什么我的代码运行出来到第四个整数就不继续循环了呢,但是程序又说没有结束

因为你最里层的if判断缺少一个else的情况 不然的话如果你输入了一个不是同构数的数 程序就会陷入死循环

> 请问为什么我的代码运行出来到第四个整数就不继续循环了呢,但是程序又说没有结束 因为你最里层的if判断缺少一个else的情况 不然的话如果你输入了一个不是同构数的数 程序就会陷入死循环
李子妍 okomentoval před 2 roky

请问为什么我的代码运行出来到第四个整数就不继续循环了呢,但是程序又说没有结束

因为你最里层的if判断缺少一个else的情况 不然的话如果你输入了一个不是同构数的数 程序就会陷入死循环

这里改完了后面还是报错耶?

> > 请问为什么我的代码运行出来到第四个整数就不继续循环了呢,但是程序又说没有结束 > > 因为你最里层的if判断缺少一个else的情况 不然的话如果你输入了一个不是同构数的数 程序就会陷入死循环 这里改完了后面还是报错耶?
蒋路阳 okomentoval před 2 roky

请问为什么我的代码运行出来到第四个整数就不继续循环了呢,但是程序又说没有结束

因为你最里层的if判断缺少一个else的情况 不然的话如果你输入了一个不是同构数的数 程序就会陷入死循环

这里改完了后面还是报错耶?
因为sort()函数只会将其排序 这个函数并不会返回一个排序好的列表 而只是改变原列表 所以这里不需要进行额外的赋值 直接用原列表就行

> > > 请问为什么我的代码运行出来到第四个整数就不继续循环了呢,但是程序又说没有结束 > > > > 因为你最里层的if判断缺少一个else的情况 不然的话如果你输入了一个不是同构数的数 程序就会陷入死循环 > > 这里改完了后面还是报错耶? 因为sort()函数只会将其排序 这个函数并不会返回一个排序好的列表 而只是改变原列表 所以这里不需要进行额外的赋值 直接用原列表就行
李子妍 okomentoval před 2 roky

请问为什么我的代码运行出来到第四个整数就不继续循环了呢,但是程序又说没有结束

因为你最里层的if判断缺少一个else的情况 不然的话如果你输入了一个不是同构数的数 程序就会陷入死循环

这里改完了后面还是报错耶?
因为sort()函数只会将其排序 这个函数并不会返回一个排序好的列表 而只是改变原列表 所以这里不需要进行额外的赋值 直接用原列表就行
那请问怎么不重复输入“同构数有”呢

> > > > 请问为什么我的代码运行出来到第四个整数就不继续循环了呢,但是程序又说没有结束 > > > > > > 因为你最里层的if判断缺少一个else的情况 不然的话如果你输入了一个不是同构数的数 程序就会陷入死循环 > > > > 这里改完了后面还是报错耶? > 因为sort()函数只会将其排序 这个函数并不会返回一个排序好的列表 而只是改变原列表 所以这里不需要进行额外的赋值 直接用原列表就行 > 那请问怎么不重复输入“同构数有”呢
蒋路阳 okomentoval před 2 roky

请问为什么我的代码运行出来到第四个整数就不继续循环了呢,但是程序又说没有结束

因为你最里层的if判断缺少一个else的情况 不然的话如果你输入了一个不是同构数的数 程序就会陷入死循环

这里改完了后面还是报错耶?
因为sort()函数只会将其排序 这个函数并不会返回一个排序好的列表 而只是改变原列表 所以这里不需要进行额外的赋值 直接用原列表就行
那请问怎么不重复输入“同构数有”呢
你可以试试先单独输出一个“同构数有:” 然后控制好结尾不换行 然后再用循环输出列表中的数

> > > > > 请问为什么我的代码运行出来到第四个整数就不继续循环了呢,但是程序又说没有结束 > > > > > > > > 因为你最里层的if判断缺少一个else的情况 不然的话如果你输入了一个不是同构数的数 程序就会陷入死循环 > > > > > > 这里改完了后面还是报错耶? > > 因为sort()函数只会将其排序 这个函数并不会返回一个排序好的列表 而只是改变原列表 所以这里不需要进行额外的赋值 直接用原列表就行 > > 那请问怎么不重复输入“同构数有”呢 > 你可以试试先单独输出一个“同构数有:” 然后控制好结尾不换行 然后再用循环输出列表中的数 >
李子妍 okomentoval před 2 roky

好的谢谢!但是我输出的同构数为什么顺序是25,5,6??
我的部分代码如下
L.sort()
print('同构数有:',L[0],end=' ')
for i in range(1,len(L)):
print(L[i],end=' ')

好的谢谢!但是我输出的同构数为什么顺序是25,5,6?? 我的部分代码如下 L.sort() print('同构数有:',L[0],end=' ') for i in range(1,len(L)): print(L[i],end=' ')
池知恒 okomentoval před 2 roky

好的谢谢!但是我输出的同构数为什么顺序是25,5,6??
我的部分代码如下
L.sort()
print('同构数有:',L[0],end=' ')
for i in range(1,len(L)):
print(L[i],end=' ')

用数字型排序别用字符串型

> 好的谢谢!但是我输出的同构数为什么顺序是25,5,6?? > 我的部分代码如下 > L.sort() > print('同构数有:',L[0],end=' ') > for i in range(1,len(L)): > print(L[i],end=' ') > > 用数字型排序别用字符串型
刘安琪 okomentoval před 2 roky

为什么我的这个b和sum都x相等了还不输出YES
请输入一个正整数:83212
8
8
NO

while True:
h=input("请输入一个正整数:")
sum=0
b=str(h[0:1])
print(b)
u=h[1:]
if h=='quit':
break
else:
for i in range(1,len(u)+1):
sum+=int(h[i])
print(sum)
if b == sum:
print("YES")
else:
print("NO")

为什么我的这个b和sum都x相等了还不输出YES 请输入一个正整数:83212 8 8 NO while True: h=input("请输入一个正整数:") sum=0 b=str(h[0:1]) print(b) u=h[1:] if h=='quit': break else: for i in range(1,len(u)+1): sum+=int(h[i]) print(sum) if b == sum: print("YES") else: print("NO")
池知恒 okomentoval před 2 roky

为什么我的这个b和sum都x相等了还不输出YES
请输入一个正整数:83212
8
8
NO

while True:
h=input("请输入一个正整数:")
sum=0
b=str(h[0:1])
print(b)
u=h[1:]
if h=='quit':
break
else:
for i in range(1,len(u)+1):
sum+=int(h[i])
print(sum)
if b == sum:
print("YES")
else:
print("NO")

数据类型不同if int(b)==sum试试看

> 为什么我的这个b和sum都x相等了还不输出YES > 请输入一个正整数:83212 > 8 > 8 > NO > > while True: > h=input("请输入一个正整数:") > sum=0 > b=str(h[0:1]) > print(b) > u=h[1:] > if h=='quit': > break > else: > for i in range(1,len(u)+1): > sum+=int(h[i]) > print(sum) > if b == sum: > print("YES") > else: > print("NO") > 数据类型不同if int(b)==sum试试看
杨鑫宇 okomentoval před 2 roky

请问运行起来无限输出yes是怎么回事呢
a=input("请输入一个正整数:")
while a!=("quit"):
if a.isdigit()==True:
m=a[0]
t=int(m)
n=0
for i in range(1,len(a)):
n=n+int(a[i])
if t==n:
print("YES")
else:
print("NO")
else:
print("NO")

请问运行起来无限输出yes是怎么回事呢 a=input("请输入一个正整数:") while a!=("quit"): if a.isdigit()==True: m=a[0] t=int(m) n=0 for i in range(1,len(a)): n=n+int(a[i]) if t==n: print("YES") else: print("NO") else: print("NO")
池知恒 okomentoval před 2 roky

请问运行起来无限输出yes是怎么回事呢
a=''
while a!=("quit"):
a=input("请输入一个正整数:")
if a.isdigit()==True:
m=a[0]
t=int(m)
n=0
for i in range(1,len(a)):
n=n+int(a[i])
if t==n:
print("YES")
else:
print("NO")
else:
print("NO")

原本的a无法输入新值一直在循环同一个a,试试看现在这个

> 请问运行起来无限输出yes是怎么回事呢 > a='' > while a!=("quit"): > a=input("请输入一个正整数:") > if a.isdigit()==True: > m=a[0] > t=int(m) > n=0 > for i in range(1,len(a)): > n=n+int(a[i]) > if t==n: > print("YES") > else: > print("NO") > else: > print("NO") 原本的a无法输入新值一直在循环同一个a,试试看现在这个
杨鑫宇 okomentoval před 2 roky

l=[]
for a in range(0,3):
l.append(a)
for b in range(0,3):
if b!=a:
l.append(b)
for c in range(0,3):
if c!=b and c!=a:
l.append(c)
print(l)
print("18")
为什么输出结果是
[0, 1, 2, 0, 1, 0, 1]
18

l=[] for a in range(0,3): l.append(a) for b in range(0,3): if b!=a: l.append(b) for c in range(0,3): if c!=b and c!=a: l.append(c) print(l) print("18") 为什么输出结果是 [0, 1, 2, 0, 1, 0, 1] 18 呢
颜卓豪 okomentoval před 2 roky

l=[]
for a in range(0,3):
l.append(a)
for b in range(0,3):
if b!=a:
l.append(b)
for c in range(0,3):
if c!=b and c!=a:
l.append(c)
print(l)
print("18")
为什么输出结果是
[0, 1, 2, 0, 1, 0, 1]
18

for a in range(0,3):
    l.append(a)

这段代码跑完 a=2 以此类推

不过可以贴上你想要的实现操作吗?

> l=[] > for a in range(0,3): > l.append(a) > for b in range(0,3): > if b!=a: > l.append(b) > for c in range(0,3): > if c!=b and c!=a: > l.append(c) > print(l) > print("18") > 为什么输出结果是 > [0, 1, 2, 0, 1, 0, 1] > 18 > 呢 ```python for a in range(0,3): l.append(a) ``` 这段代码跑完 `a=2` 以此类推 不过可以贴上你想要的实现操作吗?
杨鑫宇 okomentoval před 2 roky

请问ans32.py
i=1
l=[]
a=input("请输入第{}个整数,-1结束".format(i))
while a!="-1":
if a.isdigit()==True:
if len(a)>2:
print("输入数位不正确!")
a=input("请输入第{}个整数,-1结束".format(i))
else:
b=int(a)
c=b**2
d=str(c)
e=d[-2:-1]
if int(a)==int(e):
l.append(a)
i=i+1
a=input("请输入第{}个整数,-1结束".format(i))
else:
print("输入不是数字!")
a=input("请输入第{}个整数,-1结束".format(i))
print(l)
为何输入-1后输出的是一个空列表呢

请问ans32.py i=1 l=[] a=input("请输入第{}个整数,-1结束".format(i)) while a!="-1": if a.isdigit()==True: if len(a)>2: print("输入数位不正确!") a=input("请输入第{}个整数,-1结束".format(i)) else: b=int(a) c=b**2 d=str(c) e=d[-2:-1] if int(a)==int(e): l.append(a) i=i+1 a=input("请输入第{}个整数,-1结束".format(i)) else: print("输入不是数字!") a=input("请输入第{}个整数,-1结束".format(i)) print(l) 为何输入-1后输出的是一个空列表呢
池知恒 okomentoval před 2 roky

请问ans32.py
i=1
l=[]
a=input("请输入第{}个整数,-1结束".format(i))
while a!="-1":
if a.isdigit()==True:
if len(a)>2:
print("输入数位不正确!")
a=input("请输入第{}个整数,-1结束".format(i))
else:
b=int(a)
c=b**2
d=str(c)
e=d[-2:-1]
if int(a)==int(e):
l.append(a)
i=i+1
a=input("请输入第{}个整数,-1结束".format(i))
else:
print("输入不是数字!")
a=input("请输入第{}个整数,-1结束".format(i))
print(l)
为何输入-1后输出的是一个空列表呢

a=-1 while语句不执行 先a=0 再把程序第三行移到while里面去

> 请问ans32.py > i=1 > l=[] > a=input("请输入第{}个整数,-1结束".format(i)) > while a!="-1": > if a.isdigit()==True: > if len(a)>2: > print("输入数位不正确!") > a=input("请输入第{}个整数,-1结束".format(i)) > else: > b=int(a) > c=b**2 > d=str(c) > e=d[-2:-1] > if int(a)==int(e): > l.append(a) > i=i+1 > a=input("请输入第{}个整数,-1结束".format(i)) > else: > print("输入不是数字!") > a=input("请输入第{}个整数,-1结束".format(i)) > print(l) > 为何输入-1后输出的是一个空列表呢 > a=-1 while语句不执行 先a=0 再把程序第三行移到while里面去
宋雨琦 okomentoval před 2 roky

请问ans32.py
i=1
l=[]
a=input("请输入第{}个整数,-1结束".format(i))
while a!="-1":
if a.isdigit()==True:
if len(a)>2:
print("输入数位不正确!")
a=input("请输入第{}个整数,-1结束".format(i))
else:
b=int(a)
c=b**2
d=str(c)
e=d[-2:-1]
if int(a)==int(e):
l.append(a)
i=i+1
a=input("请输入第{}个整数,-1结束".format(i))
else:
print("输入不是数字!")
a=input("请输入第{}个整数,-1结束".format(i))
print(l)
为何输入-1后输出的是一个空列表呢

a=-1 while语句不执行 先a=0 再把程序第三行移到while里面去
取个位上的数字为什么不试试除10取余?
if语句直接分支就可以了 先if 判断是不是数字 再elif判断位数,再else判断同构数pow(i,2)%10==i%10,你同构数的判断逻辑是不对的。是a的个位数等于a的平方的个位数。

> > 请问ans32.py > > i=1 > > l=[] > > a=input("请输入第{}个整数,-1结束".format(i)) > > while a!="-1": > > if a.isdigit()==True: > > if len(a)>2: > > print("输入数位不正确!") > > a=input("请输入第{}个整数,-1结束".format(i)) > > else: > > b=int(a) > > c=b**2 > > d=str(c) > > e=d[-2:-1] > > if int(a)==int(e): > > l.append(a) > > i=i+1 > > a=input("请输入第{}个整数,-1结束".format(i)) > > else: > > print("输入不是数字!") > > a=input("请输入第{}个整数,-1结束".format(i)) > > print(l) > > 为何输入-1后输出的是一个空列表呢 > > > > a=-1 while语句不执行 先a=0 再把程序第三行移到while里面去 取个位上的数字为什么不试试除10取余? if语句直接分支就可以了 先if 判断是不是数字 再elif判断位数,再else判断同构数pow(i,2)%10==i%10,你同构数的判断逻辑是不对的。是a的个位数等于a的平方的个位数。
test2022 okomentoval před 2 roky
Vlastník

sy4-1.py、sy4-2.py、sy4-3.py、sy4-4.py、ans11.py、ans12.py、ans21.py、ans22.py、ans31.py、ans32.py参考答案

sy4-1.py、sy4-2.py、sy4-3.py、sy4-4.py、ans11.py、ans12.py、ans21.py、ans22.py、ans31.py、ans32.py参考答案
Přihlaste se pro zapojení do konverzace.
Bez štítku
Bez milníku
Bez zpracovatelů
Oznámení
Termín dokončení

Žádný termín dokončení.

Závislosti

Tento úkol momentálně nemá žádné závislosti.

Načítá se…
Není zde žádný obsah.