鱼C论坛

 找回密码
 立即注册
查看: 1645|回复: 6

[已解决]来自006讲课后动动手的问题

[复制链接]
发表于 2021-1-7 00:29:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
各位大佬,这次的课后作业结合鱼老师给的代码和自己的理解还是有些不明就里,麻烦各位大佬帮我看看我自己的理解对不对,还有我把不明白的地方也注释出来了,恳请指点!
最佳答案
2021-1-7 23:49:31
首先说明一点,你的else分支是多余的,代码可以精简,如下:
  1. i = 0 # 给i赋初值位0

  2. while i<=100:  #循环条件为i<=100,满足时一只执行下面的语句
  3.     if i%2 !=0:
  4.         #%是取余号,不是除号,意思是i对2取余数
  5.         # 对2取余不等于零,意思时除以二余数为1,也就是奇数
  6.         print(i,end=" ")  #满足奇数的i的取值,以空格为结尾打印出来
  7.     i+=1 #i+=1等效于i=i+1,就是执行完一遍后,i自己加一,一直到i>100,跳出循环
复制代码



关于print函数的end参数,就是打印结束后的结尾,举例如下:
  1. print('hello')  #不加end参数,默认为换行

  2. print('hello',end=" ") #以空格为结尾

  3. print('hello',end='米哈伊尔') #以米哈伊尔为结尾
复制代码

测试结果如下:
  1. hello
  2. hello hello米哈伊尔
复制代码
捕获.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-7 00:50:32 | 显示全部楼层
  1. >>> for i  in range(4):
  2.         print(i)

  3.        
  4. 0
  5. 1
  6. 2
  7. 3
  8. >>> for i in range(4):
  9.         print(i,end='')

  10.        
  11. 0123
  12. >>>
复制代码

end=‘’不换行的用处

i+=1就是为了加到大于100然后退出while循环
否则就会一直循环下去
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-7 02:12:06 From FishC Mobile | 显示全部楼层
if i%2 !=0的意思就是如果 i 不是偶数,换言之就是如果i是奇数。i += 1相当于 i = i + 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-7 09:50:26 | 显示全部楼层
1.默认输出后有个换行符end="\n",加上end="" 就是空,不换行。
2. i += 1  等价于i = i + 1  在上面语句中的意思就是每循环一次就加一
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-7 10:33:14 | 显示全部楼层
本帖最后由 Yhan31441600 于 2021-1-7 10:35 编辑

这道题的题目:请写一个程序打印出 0~100 所有的奇数
解题思路:需要0-100每个数判断,是否为奇数。那么如果这个数字除以2的余数,等于0 ,就是偶数,反之,余数不等于0,就是奇数了。
首先需要给i赋值,从0开始,所以最开始i=0
然后执行一个循环:循环的目的是从0,一直输出到100(先不考虑只输出奇数,假设全部输出)
while i<=100
    print(i)
   i= i+1
输出一次i,那么i+1,再输出,以此循环(如果代码写到这里运行,打出来的结果就是0 1 2 3 4 ....一直打到100)
备注1:i=i+1可以简略的写成i+=1(a=a/2可以写成a/=2     b=b*5 可以写成b*=5  只是一种简略的书写方式 结果是一样的,毕竟python的目标是简洁、直白、好理解、好看。)
备注2:print(i,end=“ ”) 其中end=“ ”意思是print输出完i之后,用什么结束,这里引号内只有一个空格,就是输出一次i后输出一个空格作为结束(如果不指定即只写print(i)的意思是输出一次i后默认换行)
print的具体用法,可以看论坛这个链接https://fishc.com.cn/forum.php?m ... peid%26typeid%3D768

接着我们如果需要只输出奇数,就需要对 i 进行判断,如果 i%2 不等于0(即 i%2!=0 ),就输出这个数,再循环 i=i+1 判断下一个数;如果等于0,就不输出,直接循环 i=i+1 判断下一个数字
所以在循环中加入了判断
if i%2!=0:
    print(i)
    i=i+1
else:
    i=i+1

所以这道题是首先循环输出0-100的所有数字,再判断这个数字是否为奇数,奇数就输出,不是奇数就不输出。循环里面加了一个判断。

从一个初学者的角度解释的,应该还挺详细的(毕竟我也只才学到第21节),有兴趣的话加个好友一起学习吧!~
求学友!~!~!~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-1-7 12:05:36 From FishC Mobile | 显示全部楼层
end是print的一个参数,就是末尾,默认是换行,如果是空字符串就是末尾不换行,继续在该行打印,i += 1是简写,和i = i + 1一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-7 23:49:31 | 显示全部楼层    本楼为最佳答案   
首先说明一点,你的else分支是多余的,代码可以精简,如下:
  1. i = 0 # 给i赋初值位0

  2. while i<=100:  #循环条件为i<=100,满足时一只执行下面的语句
  3.     if i%2 !=0:
  4.         #%是取余号,不是除号,意思是i对2取余数
  5.         # 对2取余不等于零,意思时除以二余数为1,也就是奇数
  6.         print(i,end=" ")  #满足奇数的i的取值,以空格为结尾打印出来
  7.     i+=1 #i+=1等效于i=i+1,就是执行完一遍后,i自己加一,一直到i>100,跳出循环
复制代码



关于print函数的end参数,就是打印结束后的结尾,举例如下:
  1. print('hello')  #不加end参数,默认为换行

  2. print('hello',end=" ") #以空格为结尾

  3. print('hello',end='米哈伊尔') #以米哈伊尔为结尾
复制代码

测试结果如下:
  1. hello
  2. hello hello米哈伊尔
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-13 08:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表