十二界蓝桥杯Python组省赛试题详解——选择题

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

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





图片

  题中使用的是全角单引号,实际是半角的单引号,看上去有空格,实际是没有的。其它一些语言(例如Java)是区分单引号和双引号的;但Python和JavaScript一样不区分。单引号内的双引号作为字符串的一部分,反之亦然。如果用一对单引号作为字符串标识,字符串中有单引号,要用转义符反斜杠(\),例如:'It\'s OK!';双引号也一样,例如:"Tom:\"Hello!\""。全角的单双引号看作一个汉字,不能作为字符串标识,在字符串内也无需转义符。

  Python中实际上没有“字符串”这种数据类型,上题中的“字符串”实际是单个字母(Python也没有字符这种数据类型)的列表,一切的性质当然符合列表的规则。列表的[n1:n2]语法是用于截取子列表,这个子列表是从母列表的第n1个元素(包括,列表下标是从0开始的)到第n2元素(不包括,如果子列表中包括最后一个元素,n2等于列表的长度)。缺n1([:n2])表示从第0个元素(包括)开始;缺n2([n1:])表现到最后一个元素加1(即列表长度);两都缺([:])就是复制一个列表了。

  程序代码:

s = 'Hello Lan Qiao'
print("s[4:11]=|%s|" % s[4:11])
print("s[:11]=|%s|" % s[:11])
print("s[4:]=|%s|" % s[4:])
print("s[:]=|%s|" % s[:])

  运行结果:

s[4:11]=|o Lan Q|
s[:11]=|Hello Lan Q|
s[4:]=|o Lan Qiao|
s[:]=|Hello Lan Qiao|

  可见,第一题的答案是:D

  其实,字符串截取是有三个参数,用冒号(:)分隔,把下面的代码拷到Python文件中执行看看是什么结果,总结出第三个参数的作用。你得到的结论同样适合于列表,可以用列表测试一下。

s = 'Hello Lan Qiao'
print("s[4:11:2]=|%s|" % s[4:11:2])
print("s[:11:2]=|%s|" % s[:11:2])
print("s[4::2]=|%s|" % s[4::2])
print("s[::2]=|%s|" % s[::2])



图片

  迭代发生器(或者用数学语言,等差数列发生器)range。可以有三个参数,当只输入1个正整数range(N)时表示start=0,stop=N,steps=1;当输入2个整数range(N1,N2)时,表示start=N1,stop=N2,steps=1;当输入3个整数range(N1,N2,N3)时,表示start=N1,stop=N2,steps=N3。range边界参数[start,stop)符合Python边界含头不含尾的原则(即start≤取值<stop),因此发生次数(循环次数)符合植树问题的只含一端,用下面公式计算:

cycleNum = (stop-start)//steps。

  程序代码:

start, end, step = 8, -4, -2
print("结果:", (end-start)//step)
sm = 0
for i in range(8, -4, -2):
    sm +=1
print("验证:", sm)

  运行结果:

结果:6
验证:6

  答案:C。

图片

  random伪随机数模块,其中的randrange函数实际由rand和range两部分构成。range部分产生一个迭代系列(可以认为是一个列表,上题已作陈述),rand部分在这个列表中随机取出一个数作为返回值。根据range参数的规则,产生的数N必然10≤N<100,另外由于公差是2,开始是10,所以一定是偶数。

  答案:B。

  事实上,random模块没有“rand”这函数,这种功能的函数是choice。下面用random.choice和range实现randrange。

  程序代码:

import random
print(random.randrange(10, 100, 2))
print(random.choice([i for i in range(10,100,2)]))

  运行结果:

14
18

  拓展阅读:

random --- 生成伪随机数(官方文档),randrange,randint,choice用法:

https://docs.python.org/zh-cn/3/library/random.html


图片

  Python的字典用键值对储存数据,一般“值”是数据本身,“键”是索引。使用“[键]”来定位元素,例如上题中的height['小青'],表示键是'小青'的元素的“左值”(所谓的左值,就是可以放在等号左边的东西,简单地说,可以当作一个变量使用。)。当元素左值被赋予新数值时,原来的数值就被冲掉了(覆盖了)。所以,height['小青']=70使height['小青']原来的100被更换为70。字典的values方法产生一个由字典元素的值构成的列表。sum是统计列表和的内置函数。结果:80+70+70=220。

  答案:A。

  拓展阅读:

学Python——第十九课 字典

图片

  Python的海龟画图模块turtle中的circle可以有三个参数。第一个参数一定是半径radius(必选),可以正整数或负整数,在默认的坐标系中(x轴从左到右,y轴从下到上;或者说,x轴从西到东,y轴从南到北。),正半径表示圆心在海龟朝向的左边,负半径表示右边。第二个是可选参数——弧圆心角extent(可选),默认采用角度制,例如extent=90表示化90°的弧。第三个也是正多边形参数steps(可选),意思是用多少边的正多边形模拟所要画的圆。

 事实上,电脑是无法画出数学中的圆,所谓的圆都是用正多边形模拟的,当正多边形的边数足够大时,看起来就是圆。

  答案:D。

图片


添加 家长论坛微信 



发布于 2024-04-26 15:28

免责声明:

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

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

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

暂无评论

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