十二界蓝桥杯青少年Python中级组省赛试题详解——编程题之一

梁老师
梁老师 北京小升初老师~

0 人点赞了该文章 · 56 浏览





图片

  这是Python的整数除法问题。与其它一些语言(例如Java)不同,Python的单斜杠(/)除法不是自适应性的(除法两个操作数全部是整数就采用整除运算),而是都转为浮点数后再相除。那Python有无整除的运算呢?有的,不过需要程序员手动用双斜杠(//)运算符。也就是说,N/7得不到整数商,只有N//7才能得到整数商。

  Python的标准输入函数(input)可以有一个提示字符串,也可以没有,但其它一些语言(例如C、Java)的标准输入函数是没有提示符参数的。为了统一,一般的考试都要求不在标准输入函数中有提示符参数。输入提示采用独立的print(提示字符串, end="")语句实现(end=""参数阻止print函数自动换行)。

  标准输入函数的返回值是字符串类型,可以用int函数进行类型转换,或用eval转换运算。

  程序代码:

图片

  运行结果:

图片

  拓展阅读:

学Python——第一课 数

学Python——第二课 量

学Python——第三课 数值运算

图片

  发生一个公差不是1的等差数列,然后计算数列的和。发生一个等差数列用range函数,前面已经陈述。这里要注意的问题是range的区间是半开的(含头不含尾),因此结束值不能使用N,要用N+1,也要输入公差2参数,即range(1, N+1, 2)。

  累计一般使用加法运算赋值号(+=), 例如a+=1和a=a+1的结果是一样的——a值增加1。运算赋值号左边的变量一定要初始化(有一个初始值,没有初始值也要显式赋值0)。a+=1和a=a+1的差别体现在CPU运算上,一般a=a+1需要三个寄存器,分别放置a、1和a+1;而a+=1只要两个寄存器分别放a、1。CPU算法上也是不一样的,总之a+=1比a=a+1更快。

  程序代码:

图片

  运行结果:

图片

  拓展阅读:

学Python——第八课 运算赋值、比较、算符优先级


图片

  Python的乘方运算有三种方法:双乘号(**)、内置函数pow和math模块函数pow,编写下面的代码测试它们。

图片

  结果是:

图片

  可见,前面两种可以实现整数乘方,后面一种不可以。本题要对乘方值进行判断,最好不使用浮点计算,即用前面两种方法之一。

  整除运算(//)得到的是两个整数相除的商,取余运算(%)则得到的是两个整数相除的余数。这样一个3位整数与10的余数就是这个数的个位,商再与10的余数是十位,商除以10的商是百位。

  整数的运算结果可以用相等判定符双等号(==)来判定,每相等一次计数器加1,最后打出总数。

  程序代码

图片

  运行结果:

图片

  下面是另一种算法的程序代码,请在适当的地方加入注释,使代码更加容易被人看懂。

图片

图片

  运行结果:

图片

图片


添加 家长论坛微信 



发布于 2024-04-26 15:26

免责声明:

本文由 梁老师 原创发布于 家长帮 ,著作权归作者所有。

登录一下,更多精彩内容等你发现,贡献精彩回答,参与评论互动

登录! 还没有账号?去注册

暂无评论

广告
All Rights Reserved Powered BY WeCenter V4.1.0 © 2025 京ICP备20005761号-2