都是考察列表的循环:第7题,循环列表letter,当循环到第4个元素D时,if那里的判断成立,所以删除了D,此时列表元素为A B C D D ,此时继续循环第5个元素,此时第五个元素为D,if那里的判断成立,所以删除了D,此时列表元素为A B C D。此时继续循环第6个元素,但是列表的长度为4,循环结束。最终结果为:A B C D
第9题:第一个for循环依次循环PYTHON中的一个个字母,第二个for循环,循环2次,每次打印输出一个字母,也就是会打印一个字母2次。当字母为H时,通过break退出第二个循环,此时不再执行第二个循环,也是就是H只打印输出了1次,但是第一个循环没有结束,还是会继续执行第一个循环,接着又是第2个循环。还是会接着打印一个字母两次,最后的结果就是所有字母都打印2次,除了H只打印了1次
第七题:
第九题没啥好讲的吧,两个for循环,里面的循环执行两次,也就是字母打印两次,唯一就是这个if判断+break,也只是跳出一层循环,少写个h,最终结果PPYYTTHOONN
总之:α不能太大也不能太小,太小的话,可能导致迟迟走不到最低点,太大的话,会导致错过最低点!
3. 梯度前加一个负号,就意味着朝着梯度相反的方向前进
对于第七题和第九题的代码,没有明确提及使用循环遍历实现还是其他方法实现。因此,我无法确定它们是否使用了循环遍历。以下分别对两题的代码执行过程进行简单说明:
第七题的代码是用Python解析豆瓣小组讨论回复的内容,然后统计每个用户的回复数并生成csv文件。执行过程主要包括以下几步:
1.发送请求,对于豆瓣小组url地址发送请求; 2.获取数据,获取网页源代码 <有很多数据内容>; 3.解析数据,使用BeautifulSoup对源代码进行解析处理; 4.提取需要的数据,提取用户评论的内容和用户的昵称; 5.统计每个用户的回复数,并保存到csv文件中。
第九题的代码是计算100的阶乘。主要执行过程如下:
1.定义函数convertIntToList将整型数字n转化为列表nArr; 2.定义函数times计算一个数组aArr乘以另一个数组bArr的结果,返回result数组。 3.定义函数factorial(n),将整型数n!计算出来。主要执行如下: 1)用fResult数组保存阶乘结果; 2)初始化fResult数组,将低位设置为1。 3)用convertIntToList将i转化为数组factor 4)用times函数将fResult与factor相乘,更新fResult。 5)将fResult反向转化为字符串,返回阶乘结果。
如果问题的关注点是代码执行过程是否使用了循环遍历,可以通过代码中for语句的数量进行简单判断。但是,很多情况下代码可能会在其他地方复用循环结构,而表面上看不出循环的存在。因此,我建议把重点放在具体的执行过程和代码实现思路上,而不是过度关注是否使用了循环遍历。