#11 第8周作业

Öppen
öppnade 3 år sedan av 助教 · 21 kommentarer
助教 kommenterad 3 år sedan

1、完成实践4的4.1.1全部,不用提交。
2、完成实践4的4.2全部和4.3.1,按题目要求保存并提交。
以上作业不迟于周六上午9点提交至水杉码园学号仓库的homework08分支下。


水杉码园上的本次作业要求:https://gitea.shuishan.net.cn/Comp-Prog-A.Liuyao.2021Fall.ShengHuan/AllStuRead/issues/11

腾讯工蜂上的本次作业要求:https://git.code.tencent.com/Comp-Prog-A.Liuyao.Shenghuan.2021.Fall/lesson8/issues/1

腾讯工蜂上的本次课程材料(课件及素材等):https://git.code.tencent.com/Comp-Prog-A.Liuyao.Shenghuan.2021.Fall/lesson8/tree/master

1、完成实践4的4.1.1全部,不用提交。 2、完成实践4的4.2全部和4.3.1,按题目要求保存并提交。 以上作业不迟于周六上午9点提交至水杉码园学号仓库的homework08分支下。 ----- 水杉码园上的本次作业要求:https://gitea.shuishan.net.cn/Comp-Prog-A.Liuyao.2021Fall.ShengHuan/AllStuRead/issues/11 腾讯工蜂上的本次作业要求:https://git.code.tencent.com/Comp-Prog-A.Liuyao.Shenghuan.2021.Fall/lesson8/issues/1 腾讯工蜂上的本次课程材料(课件及素材等):https://git.code.tencent.com/Comp-Prog-A.Liuyao.Shenghuan.2021.Fall/lesson8/tree/master
刘怡 kommenterad 3 år sedan

老师,请问这种应该怎么改呀?
a=input()
li=[] #建立空列表
for i in range(0,len(a)): #遍历字符串
if i.isalpha():#判断是否是英语字母
ch=a[i].lower #英文字母取小写
if ch not in li :#判断字母是否在列表中
li.append(ch) #将符合新的英文字母追加到列表
for ch in li:
print(ch,end='') #字符连续输出,不空格,不换行

d8fdj92&*DDy
Traceback (most recent call last):
File "C:\Users\ASUS\Desktop\计算机\实践4 批量数据\start\sy4-3.py", line 4, in
if i.isalpha():#判断是否是英语字母
AttributeError: 'int' object has no attribute 'isalpha'

老师,请问这种应该怎么改呀? a=input() li=[] #建立空列表 for i in range(0,len(a)): #遍历字符串 if i.isalpha():#判断是否是英语字母 ch=a[i].lower #英文字母取小写 if ch not in li :#判断字母是否在列表中 li.append(ch) #将符合新的英文字母追加到列表 for ch in li: print(ch,end='') #字符连续输出,不空格,不换行 d8fdj92&*DDy Traceback (most recent call last): File "C:\Users\ASUS\Desktop\计算机\实践4 批量数据\start\sy4-3.py", line 4, in <module> if i.isalpha():#判断是否是英语字母 AttributeError: 'int' object has no attribute 'isalpha'
助教 kommenterad 3 år sedan
Ägare

@10214304434 如图所示,for循环用range获取的i是个int类型变量,isalpha()是字符串的一个函数功能需要由a[i]来调用,同时字符串变小写用的是lower()函数。
image

@10214304434 如图所示,for循环用range获取的i是个int类型变量,isalpha()是字符串的一个函数功能需要由a[i]来调用,同时字符串变小写用的是lower()函数。 ![image](/attachments/ce13381a-5165-4454-ab8b-c434b8d7272c)
助教 kommenterad 3 år sedan
Ägare

@10214304428 输出下变量值就知道了,left,right应该是下标位置才对。
image

@10214304428 输出下变量值就知道了,left,right应该是下标位置才对。 ![image](/attachments/b9003113-704b-40b5-9e86-9ecd656f204e)
张净楠 kommenterad 3 år sedan

x=input("请输入一个正整数:")
L=list(x)
print(L)
max=max(L)
total=0
total=sum(L)
print(total)

老师好,这个打印不出来是因为它默认分割成了字符串构成的列表是吗?那请问怎么转化为数字类型的列表呢?

x=input("请输入一个正整数:") L=list(x) print(L) max=max(L) total=0 total=sum(L) print(total) 老师好,这个打印不出来是因为它默认分割成了字符串构成的列表是吗?那请问怎么转化为数字类型的列表呢?
助教 kommenterad 3 år sedan
Ägare

@10181170140 是的。可以用循环一个个强制转为int,简写如下:
image

@10181170140 是的。可以用循环一个个强制转为int,简写如下: ![image](/attachments/53f9c3e5-5821-4a27-a2dd-38f9561b3ef0)
彭思懿 kommenterad 3 år sedan

(也可以是
L=[int(i) for i in L]

(也可以是 L=[int(i) for i in L]
助教 kommenterad 3 år sedan
Ägare

@10214302421 确实,厉害了。@10181170140 循环可以用L=[int(i) for i in L],更简洁

@10214302421 确实,厉害了。@10181170140 循环可以用L=[int(i) for i in L],更简洁
张净楠 kommenterad 3 år sedan

x=input("请输入一个正整数:")
if x=="quit":
exit(0)
while True:
x=input("请输入一个正整数:")
if x=="quit":
break
else:
L=list(x)
L=[int(i) for i in L]
max=max(L)
sum=sum(L)
if max==sum-max:
print("YES")
else:
print("NO")

这里我不太明白为什么第一次输入数字没有反应,第二次正常,第三次就报错,请老师或者知道原因的同学指点~

x=input("请输入一个正整数:") if x=="quit": exit(0) while True: x=input("请输入一个正整数:") if x=="quit": break else: L=list(x) L=[int(i) for i in L] max=max(L) sum=sum(L) if max==sum-max: print("YES") else: print("NO") 这里我不太明白为什么第一次输入数字没有反应,第二次正常,第三次就报错,请老师或者知道原因的同学指点~
助教 kommenterad 3 år sedan
Ägare

@10181170140 报错是因为你变量名用了函数名,像max,sum有这个函数了,变量就别也叫这个名了。至于第一次输入数字没有反应是因为对于第一次输入没有else的内容进行处理,而且前三行其实都不需要,这个while循环逻辑已经包含了多次输入和quit结束的功能了。

@10181170140 报错是因为你变量名用了函数名,像max,sum有这个函数了,变量就别也叫这个名了。至于第一次输入数字没有反应是因为对于第一次输入没有else的内容进行处理,而且前三行其实都不需要,这个while循环逻辑已经包含了多次输入和quit结束的功能了。
江傲君 kommenterad 3 år sedan

x=input().split(",")
x=[float(j) for j in x]
minf=x[0]
i=1
while i<len(x):
if minf>x[i]:
minf=x[i]
i+=1
print("最小元素=",minf)
break
但是没办法求出最小值是为什么
每次都是第一个数为最小值

x=input().split(",") x=[float(j) for j in x] minf=x[0] i=1 while i<len(x): if minf>x[i]: minf=x[i] i+=1 print("最小元素=",minf) break 但是没办法求出最小值是为什么 每次都是第一个数为最小值
助教 kommenterad 3 år sedan
Ägare

@10214304428 应该是全部数据遍历完才能输出最小值,而且并不需要加break

@10214304428 应该是全部数据遍历完才能输出最小值,而且并不需要加break
江傲君 kommenterad 3 år sedan

@10214304428 应该是全部数据遍历完才能输出最小值,而且并不需要加break

老师 while循环不能遍历全部数据吗?

> @10214304428 应该是全部数据遍历完才能输出最小值,而且并不需要加break 老师 while循环不能遍历全部数据吗?
助教 kommenterad 3 år sedan
Ägare

@10214304428 循环能遍历,但你在循环内容的末尾加了break使它只循环了一次就结束了

@10214304428 循环能遍历,但你在循环内容的末尾加了break使它只循环了一次就结束了
龙诗怡 kommenterad 3 år sedan

老师好,这是sy4-4的题,请问为什么说t不在列表y里面呢?

老师好,这是sy4-4的题,请问为什么说t不在列表y里面呢?
江傲君 kommenterad 3 år sedan

@10214304428 循环能遍历,但你在循环内容的末尾加了break使它只循环了一次就结束了
那删去break为什么就会无限重复print

> @10214304428 循环能遍历,但你在循环内容的末尾加了break使它只循环了一次就结束了 那删去break为什么就会无限重复print
助教 kommenterad 3 år sedan
Ägare

@10214304428 所以要循环结束再print...

@10214304428 所以要循环结束再print...
助教 kommenterad 3 år sedan
Ägare

@10214302427 没看到你的题目代码。

@10214302427 没看到你的题目代码。
龙诗怡 kommenterad 3 år sedan

啊好的,不知道文件为啥没发上来
a=input("请输入一个正整数:")
t=max(a)
y=list(map(int,list(str(a))))
L=y.remove(t)
print(L)

啊好的,不知道文件为啥没发上来 a=input("请输入一个正整数:") t=max(a) y=list(map(int,list(str(a)))) L=y.remove(t) print(L)
助教 kommenterad 3 år sedan
Ägare

@10214302427 因为t是字符,而y里面的都是整数。而且这题是比较第一个数和其他数字之和,不是最大数和其他数之和

@10214302427 因为t是字符,而y里面的都是整数。而且这题是比较第一个数和其他数字之和,不是最大数和其他数之和
宋梦琪 kommenterad 3 år sedan

请问一下出现这个结果是哪里有问题呀?
a=input()
li=[] #建立空列表
for i in range(len(a)): #遍历字符串
if "i".isalpha():#判断是否是英语字母
ch=a[i].lower () #英文字母取小写
if ch not in li :#判断字母是否在列表中
li.append(ch) #将符合新的英文字母追加到列表
for ch in li:
print(ch,end='') #字符连续输出,不空格,不换行

d8fdj92&*DDy
d8fj92&*y

请问一下出现这个结果是哪里有问题呀? a=input() li=[] #建立空列表 for i in range(len(a)): #遍历字符串 if "i".isalpha():#判断是否是英语字母 ch=a[i].lower () #英文字母取小写 if ch not in li :#判断字母是否在列表中 li.append(ch) #将符合新的英文字母追加到列表 for ch in li: print(ch,end='') #字符连续输出,不空格,不换行 d8fdj92&*DDy d8fj92&*y
助教 kommenterad 3 år sedan
Ägare

@10214302425 判断是否是英语字母这行有问题。应该是判断字符串a的第i号字符是否为字母,而不是去判断字符'i'是否为字母,这个判断结果必为True

@10214302425 判断是否是英语字母这行有问题。应该是判断字符串a的第i号字符是否为字母,而不是去判断字符'i'是否为字母,这个判断结果必为True
Logga in för att delta i denna konversation.
Ingen Etikett
Ingen Milsten
Ingen tilldelad
7 Deltagare
Notiser
Förfallodatum

Inget förfallodatum satt.

Beroenden

Det här ärendet har för närvarande inga beroenden.

Laddar…
Det finns inget innehåll än.