索引:

1、Pyhthon

———① 第1章 开启Python学习之旅

———② 第2章 数字类型与字符串

———③ 第3章 流程控制

———④ 第4章 列表与元组

———⑤ 第5章 字典和集合

———⑥ 第6章 函数

———⑦ 第7章 类与面向对象

———⑧ 第8章 模块

———⑨ Python编程练习

———⑩ 23软工Python编程练习合集

2、前端技术

———① 23软工1、2班《前端技术》复习一

———② 23软工1、2班《前端技术》复习二

———③ 23软工1、2班《前端技术》复习三


前端技术

三、23软工1、2班《前端技术》复习三

23软工1、2班《前端技术》复习三

(一)判断题

判断题

1、(T)
使用cellspacing属性可以设置相邻单元格边框之间的距离。


2、(T)
在JavaScript中,变量username与变量userName是两个不同的变量。


3、(F)
一个标签只能设置一个属性。


4、(F)
设置标签属性时,标签名与属性、属性与属性之间均以逗号分开。


5、(T)
animation-delay属性用于定义执行动画效果延迟的时间。


6、(F)
在表格中,cellpadding属性用于设置单元格内容与单元格边框之间的空白间距。


7、(T)
如果不设置元素的浮动属性,则块元素会占页面整行。


8、(F)
对同一行中的单元格定义不同的高度,最终的高度值将取其中的较小者。


(二)单选题

单选题

1、(A)
下列选项中,用于定义执行动画效果延迟时间的属性是
A. animation-delay
B. animation-iteration-count
C. animation
D. animation-duration


2、(D)
使用内嵌式添加CSS样式,CSS样式需要写在( )
A. <title></title>之间
B. <head></head>之间
C. <body></body>之间
D. <style></style>之间


3、(A)
下列选项中,用于给盒子添加阴影效果的属性是
A. box-shadow
B. box-sizing
C. shadow
D. sizing


4、(C)
下列文本框的控件类型,可用于输入搜索关键词的是
A. email类型
B. url类型
C. search类型
D. color类型


5、(D)
下列属性中,用来设置单元格横跨列数的是
A. width
B. bgcolor
C. rowspan
D. colspan


6、(A)
下列选项中,关于选择器权重的优先级的说法正确的是
A. 标签选择器<类选择器<ID选择器
B. 类选择器<ID选择器<标签选择器
C. 标签选择器<ID选择器<类选择器
D. ID选择器<标签选择器<类选择器


7、(A)
关于background-position属性值,下列代码书写正确的是
A. p{ background-position:left top; }
B. p{ background-position:left 10; }
C. p{ background-position:10 top ;}
D. p{ background-position:top 10 ;}


8、(A)
关于代码“alert(2 * 3 + 25 / 5 - 1)”的输出结果,正确的是
A. 10
B. 10.2
C. 10.4
D. 12


9、(B)
定义完成过渡效果需要持续5秒,代码书写正确的是
A. transition-property:5s
B. transition-duration:5s
C. transition-timing-function:5s
D. transition-delay:5s


10、(A)
关于transition-property属性的描述,正确的是
A. 用于指定应用过渡效果的CSS属性的名称
B. 用于定义完成过渡效果需要花费的时间
C.规定过渡效果中速度的变化
D.规定过渡效果何时开始


(三)多选题

多选题

1、(A B C D)
下列选项中,属于input控件属性的是
A. type
B. name
C. value
D. size


2、(A B C D)
下列选项中,属于display属性值的是
A. inline
B. block
C. inline-block
D. none


3、(A B D)
下列选项中,属于if条件语句的是
A. 单向判断语句
B. 双向判断语句
C. 三向判断语句
D. 多向判断语句


4、(A B C)
下面的选项中,属于循环语句的是
A. while语句
B. do…while语句
C. for
D. break语句


5、(C D)
下列选项中,属于边偏移属性的是
A. center
B. position
C. bottom
D. left


6、(A B C D)
下列选项中,属于JavaScript数据类型的是
A. 数值
B. 字符串
C. 布尔
D. 空值


7、(A B C D)
下面的选项中,属于JavaScript中流程控制语句的是
A. 条件语句
B. 循环语句
C. 跳转语句
D. 判断语句


8、(A B C D)
关于CSS控制单元格边距技巧,下列说法正确的是
A. 行标签<tr>应用内边距属性padding无效
B. <td>标签应用外边距属性margin无效
C. 对<table>标签应用cellspacing属性
D.<tr>标签无padding和margin属性


9、(A C D)
下列选项中,属于鼠标事件的是
A. onclick
B. onkeydown
C. onmouseout
D. ondblclick


10、(A C)
下列样式代码中,可用于清除浮动的是
A. overflow:hidden;
B. overflow: visible;
C. clear:both;
D. clear:center;


11、(B D)
在JavaScript中,对象包含以下哪些要素
A. 关闭
B. 属性
C. 打开
D. 方法


12、(A C D)
属于line-height常用的属性值单位的是
A. px
B. pd
C. em
D. %


13、(C D)
关于Web标准的描述,正确的是
A. 仅包括HTML标准
B. 由浏览器厂商制定
C. 是一系列标准的集合
D. 包括结构、表现、行为标准


14、(A B D)
对JavaScript语言描述,正确的是
A. 是一种脚本语言
B. 用于添加动态效果
C. 可替代HTML和CSS
D. 前身是LiveScript


15、(A B C)
在DOM文档的树形结构中,属于文档对象节点的有
A. html
B. head
C. body
D. DOM


(四)填空题

填空题

1、设置访问后超链接的样式,需要给标签添加CSS样式的伪类是a:visited
2、在HTML语言中,可以应用标签中的valign属性设置一行内容的垂直对齐方式。
3、表示当输入有效的字符按键时触发此事件的是keypress
4、在JavaScript中,使用new关键字,结合构造函数Array可以创建数组。
5、HTML语言通过HTML标记对网页中的文本、图片等内容进行描述。
6、在video标签的语法中,src属性用于设置视频文件的路径。
7、在audio标签的语法中,controls属性用于为音频提供播放控件。
8、用于定义HTML文档头部信息的标签是head
9、Web标准是一系列标准的集合,主要包括结构、表现和行为。


(五)简答题

简答题

1、前端UI:DOM树追加节点。 要求:使用JavaScript程序代码实现,鼠标左键单击【追加深圳节点】按钮后,在无序列表后面追加深圳节点。

单击前页面内容:

  • 北京
  • 上海
  • 广州

单击【追加深圳节点】按钮后,页面内容:

  • 北京
  • 上海
  • 广州
  • 深圳

HTML代码如下:

<body>
<ul id="ulID">
<li id="bjID">北京</li>
<li>上海</li>
<li>广州</li>
</ul>
<input type="button" value="追加深圳节点" onclick="addNode()"><br/>
</body>

补全<script></script>中的代码:

<script type="">
function addNode(){

}
</script>

答案:

将子列表嵌套在上一级列表的列表项中

var ul = document.getElementById("ulID");
var newLi = document.createElement("li");
newLi.textContent = "深圳";
ul.appendChild(newLi);

2、请简要描述如何在网页中嵌入音频。

答案:

可使用audio标签,基本格式如下:<audio src="视频文件路径” controls="controls"></audio>;


3、简述两种跳转语句的差异。

答案:

break提前结束当前循环;
continue跳出当前循环,进入下一轮循环。


4、简述什么是Web标准,以及Web标准的构成。

答案:

Web标准并不是某一个标准,而是一系列标准的集合,主要包括结构(Structure)、表现(Presentation)和行为(Behavior)三个方面: 结构用于对网页元素进行整理和分类,主要包括XML、XHTML、HTML三个部分。 表现用于设置网页元素的版式、颜色、大小等外观样式,主要指的是CSS。 行为是指网页模型的定义及交互的编写,主要包括ECMAScript、BOM、DOM三个部分。


5、请简要描述JavaScript外链式的优势。

答案:

易于修改、维护和管理;
将html专注结构、css专注样式、JavaScript专注逻辑;
外部js文件会被提前缓存,避免重复下载,提高页面加载速度。


6、请简要描述清除特殊浮动的方法。

答案:

(1)使用空标记清除浮动:在浮动标记之后添加空标记,并对该标记应用”clear:both”样式

(2)使用overflow属性清除浮动:对标记应用”overflow:hidden;”样式,也可以清除浮动对该标记的影响.另外,这种方式还弥补了空标记清除浮动的不足

(3)使用after伪对象清除浮动


二、23软工1、2班《前端技术》复习二

23软工1、2班《前端技术》复习二

(一)判断题

判断题

1、(T)
如果父标签没有上内边距及边框,则父标签的上外边距会与子标签的上外边距发生合并。


2、(F)
在CSS中,position属性可以为元素设置浮动。


3、(F)
border-radius属性水平半径参数只能设置1个参数值,用来表示四角圆角半径的大小。


4、(T)
并集选择器是各个选择器通过逗号连接而成的。


5、(T)
只有设置边框样式后,边框宽度属性才会生效。


6、(T)
animation-iteration-count属性用于定义动画的播放次数。


7、(T)
在JavaScript中声明变量的同时可以对变量进行赋值。


8、(T)
CSS样式规则是由选择器和声明构成。


(二)单选题

单选题

1、(D)
下列代码中,可清除元素默认外边距的是
A. font-size:0
B. line-height:0
C. padding:0
D. margin:0


2、(A)
关于创建锚点链接的代码,下列书写正确的是
A. <a href="#one">链接文本</a> ... <h3 id="one">锚点链接</h3>
B. <a href="#id">链接文本</a> ... <h3 id="one">锚点链接</h3>
C. <a href="#">链接文本</a> ... <h3 id="one">锚点链接</h3>
D. <a href="#one">链接文本</a> ... <h3 id="#one">锚点链接</h3>


3、(B)
下列代码中,用于设置背景图像的属性是
A. background-color
B. background-image
C. background-repeat
D. background-position


4、(C)
关于盒子模型中的宽度属性,下面说法正确的是
A. 适用于所有元素
B. 仅适用于行内元素
C. 仅适用于块级元素
D. 以上都正确


5、(B)
下面选项中,用于为页面添加音频的标签是
A. video
B. audio
C. image
D. 以上都不是


6、(B)
下列选项中,用于规定动画速度曲线的属性是
A. animation-direction
B. animation-timing-function
C. animation
D. animation-duration


7、(A)
关于链接伪类的描述,下列说法错误的是
A. a:link{}表示超链访问时的状态
B. a:visited{}表示访问后超链接的状态
C. a:hover{}表示鼠标悬停时超链接的状态
D. a:active{}表示鼠标点击时超链接的状态


8、(A)
下列选项中,用来表示通配符选择器的符号是
A. *
B. ?
C. 、
D. :


9、(C)
下列定义JavaScript数组的代码,书写正确的是
A. var txt = new Array="George","John","Thomas"
B. var txt = new Array(1:"George",2:"John",3:"Thomas")
C. var txt = new Array("George","John","Thomas")
D. var txt = new Array:1=("George")2=("John")3=("Thomas")


10、(A)
以下选项,可以在JavaScript中创建对象的是
A. new
B. number
C. function
D. set


(三)多选题

多选题

1、(B C D)
关于JavaScript数据类型的描述,下列说法正确的是
A. 用于逻辑判断
B. 不区分整型数值和浮点型数值
C. 所有数字都是数值型
D. 用于表示数字


2、(A B)
关于RGB代码的表示方法,下列选项正确的是
A. rgb(255,0,0)
B. rgb(100%,0%,0%)
C. rgb(100%,0,0)
D. rgb(100 0 0)


3、(A B C)
下列选项中,属于引入CSS样式表的方式是
A. 行内式
B. 内嵌式
C. 外链式
D. 旁引式


4、(A D)
关于行内式的描述,下列说法正确的是
A. 通过标签属性控制样式
B. 仅设计一个页面时可用
C. 可将结构和样式完全分离
D. 不能将结构与样式分离


5、(A B C D)
下列选项中,属于表单控件的是
A. 单行文本输入框
B. 密码输入框
C. 复选框
D. 提交按钮


6、(A B C)
表单是由以下哪些基本元素构成的
A. 表单控件
B. 提示信息
C. 表单域
D. 文本域


7、(A D)
关于if条件语句的描述,下列选项说法正确的是
A. 判断条件表达式为true/false决定执行语句
B. 多向判断语句不属于if条件语句
C. 只能针对某个表达式的值做出判断
D. 包括单向、双向、多向判断语句


8、(A B)
盒子模型中元素内容与边框之间的距离通常被称为
A. 内边距
B. 内填充
C. 外边距
D. 外填充


9、(A B C)
属于background-color属性值的有
A. red
B. #F00
C. rgb(255,0,0)
D. (255,0,0)


10、(A B C D)
background-repeat的属性值包括
A. repeat
B. no-repeat
C. repeat-x
D. repeat-y


11、(A B C D)
下面的选项中,属于DOM节点的是
A. 根节点
B. 父节点
C. 子节点
D. 兄弟节点


12、(B C)
下列选项中,属于JavaScript的语法规则的是
A. 不区分字母大小写
B. 严格区分字母大小写
C. 语句结束可不加分号
D. 必须以分号结束语句


13、(A B C D)
overflow常用的属性值包括
A. visible
B. hidden
C. auto
D. scroll


14、(A B)
用于设置颜色不透明度的是
A. rgba模式
B. opacity属性
C. RGB
D. CMYK


15、(A C D)
关于跳转语句的描述,正确的是
A. 实现流程跳转
B. 利用条件控制是否继续执行
C. continue终止本次循环,执行下次循环
D. break结束整个循环


(四)填空题

填空题

1、在JavaScript中,使用关键字function来定义函数。

2、网页中的列表分为三类,分别是无序列表ul、有序列表ol和定义列表dl。

3、在JavaScript中,根据函数中变量作用域的不同,可以把变量分为全局变量和局部变量

4、设置访问后超链接的样式,需要给标签添加CSS样式的伪类是a:visited

5、在<input />标签中,type属性用于指定不同的控件类型。

6、运用width属性可以为video标签设置宽度。

7、在CSS中,padding属性用于设置内边距,也常常称为内填充。

8、在HTML语言中,th标签用于设置表格的表头。

9、video标签用于为页面添加视频。

10、在CSS中,通过float属性可以为元素设置浮动。


(五)简答题

简答题

1、请简要描述如何实现列表嵌套,并使用代码举例。

答案:

将子列表嵌套在上一级列表的列表项中

<ul>
<li>列表项1</li>
<li>列表项2</li>
<li>
<ol><li>列表项1</li><li>列表项2</li></ol>
</li>
</ul>html

2、简述JavaScript的概念以及作用。

答案:

JavaScript是网页中的一种脚本语言,作为一门独立的网页脚本编程语言,JavaScript可以做很多事情,但最主流的应用是在Web上创建网页特效或验证信息。例如使用JavaScript脚本语言对用户输入的内容进行验证。如果用户在注册信息文本框中输入的信息不符合注册要求,或在“确认密码”与“密码”文本框中输入的信息不同,将弹出相应的提示信息。


3、请简要描述JavaScript的引入方式。

答案:

行内式:在HTML标签中直接定义js代码
内嵌式:在head或body中定义script标签并在script标签里写js代码
外联式:在外部定义js文件,并用<script type="text/javascript" src="【路径】"></script>引入


4、请简要描述,background-position属性的取值方法。

答案:

关键字取值,如水平的right、垂直的top
百分比取值:水平、垂直分开定义(15% 16%)
像素值取值:先水平(正值向右,负值向左)后垂直(正值向下,负值向上)


5、简要描述一下类选择器和后代选择器的差异。

答案:

类选择器主要用于带class属性的HTML元素,它的形式为 . +类名,例如.banner就会选择所有带class=”banner”的元素

后代选择器是组合选择器,用于选取某个元素内的子元素,例如div span表示选择位于<div>内部的所有<span>


6、前端UI:DOM树删除节点。 要求:使用JavaScript程序代码实现,鼠标左键单击【删除上海节点】按钮后,在无序列删除上海节点。

单击前页面内容:

  • 北京
  • 上海
  • 广州

单击【删除上海节点】按钮后,页面内容:

  • 北京
  • 广州

HTML代码如下:

<ul id="ulID">
<li>北京</li>
<li id="shID">上海</li>
<li>广州</li>
</ul>
<input type="button" value="删除上海节点" onclick="delNode()"><br/>

补全<script></script>中的代码:

<script type="">
function delNode(){

}
</script>

答案:

<script type="text/javascript">
function delNode(){
var shanghaiNode = document.getElementById("shID");
shanghaiNode.remove();

}
</script>

一、23软工1、2班《前端技术》复习一

23软工1、2班《前端技术》复习一

(一)判断题

判断题

1、(T)
position属性的取值为static时,元素为静态定位模式。


2、(T)
method属性用于设置表单数据的提交方式。


3、(T)
在网页中,行为是指网页模型的定义及交互效果的实现,包括ECMAScript、BOM、DOM三个部分。


4、(T)
overflow属性用于规范溢出内容的显示方式。


5、(F)
在JavaScript中,函数定义后并会自动执行。


6、(T)
在JavaScript中,属性作为对象成员的变量,表明对象的状态。


7、(T)
内边距属性不具有继承性。


8、(F)
使用CSS中margin外边距属性可以设置相邻单元格边框之间的距离。


(二)单选题

单选题

1、(B)
下列代码中,用于更改元素左内边距的是
A. text-indent
B. padding-left
C. margin-left
D. padding-right


2、(C)
下列选项中,可以为页面中的文本添加阴影效果的属性是
A. text-overflow
B. white-space
C. text-shadow
D. text-indent


3、(A)
以下选项,可以在JavaScript中创建对象的是
A. new
B. number
C. function
D. set


4、(A)
下列选项中,可以控制盒子宽度的属性是
A. width
B. height
C. padding
D. margin


5、(D)
下列样式代码中,可以实现相对定位的是
A. position: static
B. position: fixed
C. position: absolute
D. position: relative


6、(D)
下列选项中,用于返回数组中数组元素个数的是
A. new
B. number
C. function
D. length


7、(C)
下列选项中,用于设置圆角边框的属性是
A. border-style
B. border-height
C. border-radius
D. border-color


8、(B)
在JavaScript中,事件处理的过程通常分为()步
A. 2
B. 3
C. 4
D. 5


9、(D)
在DOM文档的树形结构中,每个节点可以有( )个子节点
A. 1个
B. 2个
C. 有且只有1个
D. n个(n>0)


10、(A)
在JavaScript中,命令按钮(Button)支持的事件包括()
A. onClick
B. onChange
C. onSelect
D. onLoad


(三)多选题

多选题

1、(A C D)
下面的选项中,属于网页上常用图片格式的是
A. GIF格式
B. PSD格式
C. PNG格式
D. JPG格式


2、(B C D)
关于样式代码“padding:20px 30px 10px;”,下列说法正确的是
A. 该元素上下方向的内边距均为20px
B. 该元素的上内边距为20px
C. 该元素左右内边距为30px
D. 该元素下内边距为10px


3、(A B C)
下列选项中,属于CSS文本外观属性的是
A. line-height
B. text-indent
C. text-decoration
D. font-size(注:font-size属于字体属性)


4、(A C D)
在CSS中,属于clear属性值的有
A. left
B. center
C. right
D. both


5、(A B C)
关于定位属性的描述,下列说法正确的是
A. 可以使标签内容出现在特定的位置
B. 定位模式属于标签的定位属性
C. 边偏移属于标签的定位属性
D. 边偏移不属于标签的定位属性


6、(A B C D)
关于<span>标签的描述,下列说法正确的是
A. <div>标签可以内嵌<span>标签
B. <span>标签不能嵌套<div>标签
C. <span>标签常用于定义特殊显示的文本
D. <span>标签本身没有结构特征


7、(A B C D)
下列选项属于JavaScript内置对象的是
A. Date对象
B. Math对象
C. Object对象
D. String对象


8、(A C D)
下列选项中,属于float属性值的有
A. left
B. center
C. right
D. none


9、(B C)
关于CSS样式规则格式的描述,下列说法正确的是
A. 花括号内部只能是一条声明
B. 花括号内的声明由一个属性和属性值组成
C. 花括号内的声明以“键值对”的形式出现
D. 属性和属性值之间用英文分号“;”连接


10、(A B C)
下列选项中,属于JavaScript引入方式的有
A. 行内式
B. 嵌入式
C. 外链式
D. 嵌套式


11、(A B C D)
关于background-repeat属性值的描述,下列说法正确的是
A. repeat是默认值
B. no-repeat不平铺
C. repeat-x水平平铺
D. repeat-y垂直平铺


12、(A B C D)
下面选项中,属于盒子模型的基本属性是
A. 内边距
B. 外边距
C. 边框
D. 宽和高


13、(A B C)
关于z-index标签层叠的描述,下列说法正确的是
A. 取值可为正整数
B. 取值可为负整数
C. 取值可为0
D. 取值不可以为0


14、(A C D)
下列选项中,属于表单标签

的属性是
A. action
B. size
C. method
D. name


15、(A B C D)
下列选项中,属于display属性值的是
A. inline
B. block
C. inline-block
D. none


(四)填空题

填空题

1、在<input />标签中,type属性用于指定不同的控件类型。
2、在CSS中,padding属性用于设置内边距,也常常称为内填充。
3、跳转语句包括break语句和continue语句。
4、video标签用于为页面添加视频。
5、在CSS中,通过float属性可以为元素设置浮动。
6、在JavaScript中,使用new关键字,结合构造函数Array可以创建数组。
7、固定定位是相对于浏览器窗口来进行的定位。
8、根据网页的功能特点,网页可以分为静态网页和动态网页两类。
9、浏览器是网页运行的平台。
10、在网站建设中,HTML用于搭建页面结构,CSS用于设置页面样式,JavaScript用于为页面添加动态效果。


(五)简答题

简答题

1、请简要描述事件处理的步骤。

答案:

发生事件:用户与网页进行交互,例如点击按钮、输入文本等,触发相应的事件。
启动事件处理程序:浏览器检测到事件发生后,调用与该事件关联的事件处理程序。
事件处理程序做出反应:事件处理程序执行相应的JavaScript代码,对事件做出响应。


2、简述CSS的概念和作用。

答案:

CSS通常称为CSS样式或样式表,主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局等外观显示样式。CSS以HTML为基础,提供了丰富的功能,如字体、颜色、背景的控制及整体排版等,而且还可以针对不同的浏览器设置不同的样式。


3、请简要描述一下什么是结构与表现相分离。

答案:

是指HTML标签只用于搭建网页的基本结构,不使用标签属性设置显示样式,所有的样式交由CSS来设置。


4、简述定义函数的语法格式,并进行解释说明。

答案:

function 函数名(【参数】){
函数体
}

function是关键字;
函数名:函数的名字
参数可以省略
{}表示函数控制范围
函数体:实现功能的代码


5、简要描述定义列表的定义方式,并概括其中各个标签的含义。

答案:

在 HTML 中,定义列表使用<dl>标签来创建,其中包含<dt><dd>标签,具体定义方式和标签含义如下:

定义列表的基本结构:

<dl>     
<dt>术语1</dt>
<dd>术语1的定义</dd>
<dt>术语2</dt>
<dd>术语2的定义</dd>
</dl>

标签含义:

<dl>:是定义列表的根标签,用于包裹整个定义列表内容,表示这是一个定义列表。

<dt>:用于定义列表中的术语或名称,每个<dt>标签通常代表一个需要被解释或定义的项目。

<dd>:用于描述<dt>中术语的定义或说明,可以包含文本、段落、图像等各种内容,一个<dt>可以对应多个<dd>,用于对术语进行多方面的解释。


6、前端UI:DOM树插入节点。 要求:使用JavaScript程序代码实现,鼠标左键单击【广州节点前插入西安节点】按钮后,在广州节点前插入西安节点。

单击前页面内容:

  • 北京
  • 上海
  • 广州

单击【广州节点前插入西安节点】按钮后,页面内容:

  • 北京
  • 上海
  • 西安
  • 广州

HTML代码如下:

<body>
<ul id="ulID">
<li>北京</li>
<li>上海</li>
<li id="gzID">广州</li>
</ul>
<input type="button" value="广州节点前插入西安节点" onclick="insertNode()"><br/>
</body>

补全<script></script>中的代码:

<script type="">
function insertNode(){

}
</script>

答案:

var newLi = document.createElement('li');
newLi.textContent = '西安';
var gzLi = document.getElementById('gzID');
gzLi.parentNode.insertBefore(newLi, gzLi);

Pyhthon

十、23软工Python编程练习合集

23软工Python编程练习合集

(一)判断题

判断题

1、(T)
Python是一种跨平台、开源、免费的动态编程语言。


2、(T)
math模块是python语言的数学模块。


3、(T)
在Python 3.x中,input()函数把用户的键盘输入作为字符串返回。


4、(T)
‘age’+23不是正确的表达式。


5、(T)
字符串和列表都是序列类型。


6、(F)
可以通过[]来访问字符串的某个字符,也可以将它修改成其他字符。


7、(T)
字符串对象和元组对象是不可变对象,列表对象为可变对象。


8、(T)
列表lst=[12, -5, -22, -10, -26, 35, 0, 49, 3, -21],lst[::-1]的结果是[-21, 3, 49, 0, 35, -26, -10, -22, -5, 12]。


9、(T)
列表lst=[12, -5, -22, -10, -26, 35, 0, 49, 3, -21],lst[3:8:2]的结果是[-10, 35, 49]。


10、(T)
在循环中continue语句的作用是退出循环的当前迭代。


(二)单选题

单选题

1、(D)
表达式1+2*3.14>0的结果类型是:
A.int
B.long
C.float
D.bool


2、(C)
Python语言正确的标识符是_
A.2you
B.my-name
C._item
D.abc*234


3、(D)
_号表示同一行的后面部分是Python程序的注释。

A.*
B.%
C./
D.#


4、(D)
如math模块已引入,Python 表达式 math.sqrt(4)*math.sqrt(9)的值为__
A.36.0
B.6
C.13
D.6.0


5、(D)
max((3, 5, 1, 7, 4))的结果是__
A.1
B.3
C.5
D.7


6、(A)
list(“abcd”)的结果是?
A.[‘a’, ‘b’, ‘c’, ‘d’]
B.[‘ab’]
C.[‘cd’]
D.[‘abcd’]


7、(C)
如果list1 = [1, 2, 3, 4, 5, 4, 3, 2, 1],那么以下那个是list1[:-1]?
A.0
B.[1, 2, 3, 4, 5, 4, 3, 2, 1]
C.[1, 2, 3, 4, 5, 4, 3, 2]
D.[0, 1, 2, 3, 4, 3, 2, 1, 0]


8、(B)
要把5加到列表lst的末尾,用的是_
A.lst.add(5)
B.lst.append(5)
C.lst.addLast(5)
D.lst.addEnd(5)


9、(A)
下面程序中 ,i的循环终值是__

for i in range(10):
print(i)

A.9
B.10
C.11
D.以上都不对


10、(C)
下面程序的运行结果是什么?

s=0
a,b=1,2
if a>0:
s=s+1
elif b>0:
s=s+1
print(s)

A.错误
B.0
C.1
D.2


(三)函数题

函数题

1、jmu-python-组合数据类型-1.计算坐标点欧氏距离

3-1

作者 郑如滨

单位 集美大学

读取若干个点,每个点放入元组。并将所有点的点信息、点的类型、点与原点的距离打印出来。

函数接口定义

readPoint() #从一行以,分隔的数中读取坐标,放入元组并返回
distance(point) #计算point与原点的距离并返回,要math库中的函数

裁判测试程序样例

/* 请在这里填写答案 */
n = int(input())
for i in range(n):
p = readPoint()
print('Point = {}, type = {}, distance = {:.3f}'.format(p,type(p),distance(p)))

输入格式:

输入n,代表底下要输入n行点坐标。坐标全部为整数。
点坐标x,y,z以,分隔。坐标全部为整数。

注意:坐标以,分隔,相应位置可能无字符或者包含多个空格字符,读入时按照0进行处理。

输出格式:

见输出样例

输入样例:

5
1,1,1
,,
2,,1
3,1,3
5,,

输出样例:

Point = (1, 1, 1), type = <class 'tuple'>, distance = 1.732
Point = (0, 0, 0), type = <class 'tuple'>, distance = 0.000
Point = (2, 0, 1), type = <class 'tuple'>, distance = 2.236
Point = (3, 1, 3), type = <class 'tuple'>, distance = 4.359
Point = (5, 0, 0), type = <class 'tuple'>, distance = 5.000

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

import math
def readPoint():
s=input().split(',')
for i in range(3):
if str(s[i])=='':
s[i]=0
else:
s[i]=int(s[i])
return (s[0],s[1],s[2])
def distance(point):
return math.sqrt(sum([int(point[0])**2,int(point[1])**2,int(point[2])**2]))

完整代码:

import math
def readPoint():
s=input().split(',')
for i in range(3):
if str(s[i])=='':
s[i]=0
else:
s[i]=int(s[i])
return (s[0],s[1],s[2])
def distance(point):
return math.sqrt(sum([int(point[0])**2,int(point[1])**2,int(point[2])**2]))

n = int(input())
for i in range(n):
p = readPoint()
print('Point = {}, type = {}, distance = {:.3f}'.format(p,type(p),distance(p)))

2、判断素数函数

3-2

作者 赵广辉

单位 武汉理工大学

写一个函数isPrime(n)用于判断一个数字n是不是素数,用户输入一个正整数,在一行内输出不大于该数的所有素数,各数后面用一个空格分隔。

函数接口定义

def isPrime(n): 

裁判测试程序样例

/* 请在这里填写答案 */
num = int(input()) #接收用户输入并转成整数
for i in range(num+1):
if isPrime(i):
print(i,end=' ') #在同一行内输出结果,不换行,中间用空格分隔

输入样例

在这里给出一组输入。例如:

100

输出样例

在这里给出相应的输出。例如:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

def isPrime(n):
if n<=1:
return False
if n==2:
return True
for i in range(2,n):
if n%i==0:
return False
return True

完整代码:

def isPrime(n):
if n<=1:
return False
if n==2:
return True
for i in range(2,n):
if n%i==0:
return False
return True

num = int(input()) #接收用户输入并转成整数
for i in range(num+1):
if isPrime(i):
print(i,end=' ') #在同一行内输出结果,不换行,中间用空格分隔

3、计算阶乘

3-3

作者 郭堂瑞

单位 湖北文理学院

本题要求实现一个函数,可计算参数num的阶乘,并将结果返回。

函数接口定义:

def factorial(num):

num是用户传入的参数,为整数。

裁判测试程序样例:

/* 请在这里填写答案 */

n = eval(input())
print(factorial(abs(int(n))))

输入样例:

在这里给出一组输入。例如:

5

输出样例:

在这里给出相应的输出。例如:

120

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

答案:

def factorial(num):
s=1
for i in range(num):
s*=(i+1)
return s

完整代码:

def factorial(num):
s=1
for i in range(num):
s*=(i+1)
return s

n = eval(input())
print(factorial(abs(int(n))))

4、找出符合条件的三位数

3-4

作者 python备课组

单位 福州大学至诚学院

求出所有符合下列条件的三位正整数:
该数分别乘以3、4、5、6、7后得到的积的各位数字之和都相等。
如198:
198∗3=594
198∗4=792
198∗5=990
198∗6=1188
198∗7=1386
每个乘积的各位数字之和都是18。

函数接口定义:

在这里描述函数接口。例如:
def sum(x):

函数参数x是一个正整数,函数要返回x各位数字的和。

裁判测试程序样例:

在这里给出函数被调用进行测试的例子。例如:
/* 请在这里填写答案 */
for i in range(100,1000):
if sum(i*3)==sum(i*4)==sum(i*5)==sum(i*6)==sum(i*7):
print(i,end=' ')

输入样例:

在这里给出一组输入。例如:


输出样例:

在这里给出相应的输出。例如:

180 198 297 360 396 450 495 549 594 639 693 792 819 891 900 909 918 936 945 990 999 

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

def sum(x):
s=0
for i in str(x):
s+=int(i)
return s

完整代码:

def sum(x):
s=0
for i in str(x):
s+=int(i)
return s

for i in range(100,1000):
if sum(i*3)==sum(i*4)==sum(i*5)==sum(i*6)==sum(i*7):
print(i,end=' ')

5、判断回文

3-5

作者 cx

单位 福州大学至诚学院

完成函数huiwen(s),判断字符串s是否是回文,是回文返回1,不是返回0。在主程序中输入一个字符串,调用该函数判断该字符串是否回文。(回文是顺读逆读都相同的字符串)

函数接口定义:

在这里描述函数接口。
def huiwen(s):

参数s是一个字符串,函数要返回1或者0。

裁判测试程序样例:

在这里给出函数被调用进行测试的例子。

/* 请在这里填写答案 */
s=input()
if huiwen(s)==1:print("{}是回文".format(s))
else:print("{}不是回文".format(s))

输入样例:

在这里给出一组输入。例如:

abccba

输出样例:

在这里给出相应的输出。例如:

abccba是回文

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

def huiwen(s):
if s[::-1]==s:
return 1
return 0

完整代码:

def huiwen(s):
if s[::-1]==s:
return 1
return 0

s=input()
if huiwen(s)==1:print("{}是回文".format(s))
else:print("{}不是回文".format(s))

(四)编程题

编程题

1、jmu-python-分段函数

4-1

作者 蔡莉白

单位 集美大学

本题目要求计算下列分段函数f(x)的值(x为从键盘输入的一个任意实数):

分段函数.jpg

输入格式:

输入在一行中给出实数 x。

输出格式:

在一行中按“f(x)=result”的格式输出,其中x与result都保留两位小数

输入样例:

0.76

输出样例:

f(0.76)=1.20

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

x=eval(input())
if x<3:
print("f({:.2f})={:.2f}".format(x,1.2))
elif x==3:
print("f({:.2f})={:.2f}".format(x,10))
else:
print("f({:.2f})={:.2f}".format(x,2*x+1))

2、 jmu-python-判断是否构成三角形

4-2

作者 蔡莉白

单位 集美大学

输入三角形的三边,判断是否能构成三角形。若能构成输出yes,否则输出no。

输入格式:

在一行中直接输入3个整数,3个整数之间各用一个空格间隔,没有其他任何附加字符。

输出格式:

直接输出yes或no,没有其他任何附加字符。

输入样例1:

3 4 5

输出样例1:

yes

输入样例2:

1 2 3

输出样例2:

no

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

a,b,c=map(int,input().split(" "))
if a+b>c and a+b>c and a+c>c and c+b>a and a-b<c and a-c<b and b-c<a:
print("yes")
else:
print("no")

3、 jmu-python-随机生成密码

4-3

作者 郑如滨

单位 集美大学

新建一个字符列表,这个列表中的内容从前到后依次包含小写字母、大写字母、数字。 形如['a',...,'z','A',...,'Z','0',...'9']
建议:使用代码生成该字符列表。

分别输入随机数的种子x(整型),随机生成的密码个数n,每个密码长度m。
每个密码包含的m个字符是从上述字符列表中随机抽取
注意:本题不要用sample函数,否则答案错误。

输入格式:

种子x (注意:需将x转换为整数型再进行设置)
密码个数n
每个密码的长度m

输出格式:

n行密码、每行m位。

输入样例:

1
10
8

输出样例:

iK2ZWeqh
FWCEPyYn
gFb51yBM
WXaSCrUZ
oL8g5ubb
bPIa84yR
nBUbHoWC
8FJowoRo
WD8s7bA1
6J7PglOU

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

import random
x=int(input())
n=int(input())
m=int(input())
random.seed(x)
li="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
for i in range(n):
r=''
for j in range(m):
r+=random.choice(li)
print(r)

4、jmu-python-逆序输出

4-4

作者 郑如滨

单位 集美大学

输入一行字符串,然后对其进行如下处理。

输入格式:

字符串中的元素以空格或者多个空格分隔。

输出格式:

逆序输出字符串中的所有元素。
然后输出原列表。
然后逆序输出原列表每个元素,中间以1个空格分隔。注意:最后一个元素后面不能有空格。

输入样例:

a b  c e   f  gh

输出样例:

ghfecba
['a', 'b', 'c', 'e', 'f', 'gh']
gh f e c b a

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

s=input().split()
s1=s[::-1]
print("".join(s1))
print(s)
print(" ".join(reversed(s)))

5、输入列表,求列表元素和(eval输入应用)

4-5

作者 陈春晖

单位 浙江大学

在一行中输入列表,输出列表元素的和。

输入格式:

一行中输入列表。

输出格式:

在一行中输出列表元素的和。

输入样例:

[3,8,-5]

输出样例:

6

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

l=eval(input())
print(sum(l))

6、列表去重

4-6

作者 陈春晖

单位 浙江大学

输入一个列表,去掉列表中重复的数字,按原来次序输出!

输入格式:

在一行中输入列表

输出格式:

在一行中输出不重复列表元素

输入样例:

在这里给出一组输入。例如:

[4,7,5,6,8,6,9,5] 

输出样例:

在这里给出相应的输出。例如:

4 7 5 6 8 9

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

l=eval(input())
d={}
l1=[]
for i in l:
d[i]=0
for i in l:
if d[i]==0:
d[i]=d[i]+1
l1.append(str(i))
print(" ".join(l1))

7、人生苦短,我学python

4-7

作者 wangxj

单位 临沂大学

输入一个人名,按照要求给出回应。

输入格式:

输入一个两个字或三个字的姓名,如 :张丹枫

输出格式:

第一行输出:张丹枫同学,人生苦短,我学python

第二行输出: 张大侠,学好python,走遍天下也不怕

第三行输出: 丹枫小盆友,学好python,你最帅

输入样例:

在这里给出一组输入。例如:

郭靖

输出样例:

在这里给出相应的输出。例如:

郭靖同学,人生苦短,我学python
郭大侠,学好python,走遍天下也不怕
靖小盆友,学好python,你最帅

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

name=input()
print(f"{name}同学,人生苦短,我学python")
print(f"{name[0]}大侠,学好python,走遍天下也不怕")
print(f"{name[1:]}小盆友,学好python,你最帅")

8、计算分段函数

4-8

作者 陈春晖

单位 浙江大学

本题目要求计算下列分段函数g(x)的值:

输入格式:

在一行中输入实数x。

输出格式:

在一行中按“g(x) = result”的格式输出,其中x与result都保留3位小数。

输入样例1:

在这里给出一组输入。例如:

500

输出样例1:

在这里给出相应的输出。例如:

g(500.000) = 0.001

输入样例2:

在这里给出一组输入。例如:

0

输出样例2:

在这里给出相应的输出。例如:

g(0.000) = 0.000

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

x=eval(input())
if x==0:
print("g(0.000) = 0.000")
else:
print("g({:.3f}) = {:.3f}".format(x,1/2/x))

9、阶梯电价

4-9

作者 陈春晖

单位 浙江大学

为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调X元/千瓦时。请编写程序计算电费。

输入格式:

一行中输入某用户的月用电量(单位:千瓦时)和电价上调的X值(单位:元),中间用空格分开。

输出格式:

在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”。

输入样例1:

在这里给出一组输入。例如:

10 0.05

输出样例1:

在这里给出相应的输出。例如:

cost = 5.30

输入样例:

在这里给出一组输入。例如:

100 0.05

输出样例:

在这里给出相应的输出。例如:

cost = 55.50

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

w,x=map(float,input().split())
if w<=50:
print("cost = {:.2f}".format(w*0.53))
else:
print("cost = {:.2f}".format(50*0.53+(w-50)*(x+0.53)))

10、求π的近似值

4-10

作者 陈春晖

单位 浙江大学

用公式求π的近似值:π2/6=1+1/22+1/32+1/42+。。。
当求和项小于误差时,结束求和。

输入格式:

在一行输入误差范围

输出格式:

在一行输出π的近似值(保留6位小数)。

输入样例:

在这里给出一组输入。例如:

0.00000001

输出样例:

在这里给出相应的输出。例如:

3.141497

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

import math
x=eval(input())
i=1
j=1
s=0
while j>x:
j=1/pow(i,2)
s+=j
i+=1
print("{:.6f}".format(math.sqrt(s*6)))

11、jmu-python-重复元素判定

4-11

作者 郑如滨

单位 集美大学

每一个列表中只要有一个元素出现两次,那么该列表即被判定为包含重复元素。
编写函数判定列表中是否包含重复元素,如果包含返回True,否则返回False
然后使用该函数对n行字符串进行处理。最后统计包含重复元素的行数与不包含重复元素的行数。

输入格式:

输入n,代表接下来要输入n行字符串。
然后输入n行字符串,字符串之间的元素以空格相分隔。

输出格式:

True=包含重复元素的行数, False=不包含重复元素的行数
,后面有空格。

输入样例:

5
1 2 3 4 5
1 3 2 5 4
1 2 3 6 1
1 2 3 2 1
1 1 1 1 1

输出样例:

True=3, False=2

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

n=int(input())
false=0
true=0
for i in range(n):
s=input().split()
d={}
for i in s:
d[i]=d.get(i,0)+1
if max(d.values())>1:
true+=1
if max(d.values())==1:
false+=1
print(f"True={true}, False={false}")

12、通过两个列表构建字典

4-12

作者 郭晓曦

单位 集美大学

输入两行字符串,以空格为分隔,将每行字符串存储为列表形式。将第一个列表的元素值作为键,将第二个列表中对应顺序的元素作为值,构建一个字典,按键升序排列后输出字典的所有键值对列表。

输入格式:

输入两行字符串,分别以空格为分隔存为列表。

输出格式:

按键的升序,输出字典键值对列表。

输入样例:

学校 城市 邮编
集美大学 厦门 361021

输出样例:

[('城市', '厦门'), ('学校', '集美大学'), ('邮编', '361021')]

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

key=input().split()
value=input().split()
# l=[(key[0],value[0]),(key[1],value[1]),(key[2],value[2])]
d={}
for i in range(len(key)):
d[key[i]]=value[i]
l=sorted(d.items(),key=lambda x:x[0])
print(l)

13、缩写期刊名

4-13

作者 黄龙军

单位 绍兴文理学院

科研工作者经常要向不同的期刊投稿。但不同期刊的参考文献的格式往往各不相同。有些期刊要求参考文献所发表的期刊名必须采用缩写形式,否则直接拒稿。现对于给定的期刊名,要求按以下规则缩写:
(1)长度不超过4的单词不必缩写;
(2)长度超过4的单词仅取前4个字母,但其后要加“.”;
(3)所有字母都小写。

输入格式:

首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。
每组测试输入一个包含大小写字母和空格的字符串(长度不超过85),单词由若干字母构成,单词之间以一个空格间隔。

输出格式:

对于每组测试,在一行上输出缩写后的结果,单词之间以一个空格间隔。

输入样例:

2
Ad Hoc Networks
IEEE Transactions on Nanotechnology

输出样例:

ad hoc netw.
ieee tran. on nano.

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

n=int(input())
for i in range(n):
l=[]
s=input().split()
for j in s:
if len(j)<=4:
l.append(j.lower())
else:
l.append(j[:4].lower()+'.')
print(" ".join(l))

14、成绩统计

4-14

作者 方启明

单位 杭州电子科技大学

现有某班级Python考试成绩,请你帮老师做一下成绩统计,找出最高分、最低分,算出平均分,统计出不及格人数。

输入格式:

输入在第一行给出班级人数n,第二行为n个学生的成绩(0~100之间的整数),中间用空格分隔。

输出格式:

输出共四行,分别为最高分、最低分、平均分和不及格人数,其中平均分保留1位小数。

输入样例:

10
80 95 75 85 90 55 66 88 100 58

输出样例:

Max: 100
Min: 55
Ave: 79.2
Fail: 2

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

n=int(input())
p=list(map(int,input().split()))
print(f"Max: {max(p)}")
print(f"Min: {min(p)}")
print("Ave: {:.1f}".format(sum(p)/len(p)))
fail=0
for i in p:
if i<60:
fail+=1
print(f'Fail: {fail}')

15、字典应用—用户登录

4-15

作者 赵广辉

单位 武汉理工大学

有字典如下:
dic = {‘admin’:’123456’,’administrator’:’12345678’,’root’:’password’}
实现用户输入用户名和密码,当用户名与密码和字典中的键值对匹配时,显示“登录成功”,否则显示“登录失败”,登录失败时允许重复输入三次。

输入格式:

在两行中分别输入用户名和密码

输出格式:

“登录成功”或”登录失败”

输入样例:

admin
12345678
admin
123456

输出样例:

登录失败
登录成功

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

dic = {'admin':'123456','administrator':'12345678','root':'password'}
for i in range(3):
name=input()
password=input()
if name in dic.keys():
if password==dic[name]:
print("登录成功")
break
else:
print("登录失败")
else:
print("登录失败")

16、分班统计最喜欢的节目

4-16

作者 马杨珲

单位 浙江科技大学

学校举办的了迎新晚会,1班,2班两个新生班各自统计好班里同学最喜欢的节目。节目编号由一个大写字母代表。统计结果分别已经存放到两个字典中。字典元素的键是节目编号,元素的值是相应节目获得的票数,没有人喜欢的节目不用记录。如:字典{‘Q’:10,’A’:22,’X’:28} 表示,喜欢Q节目的有10位同学,喜欢A节目的有22位同学,喜欢X节目的有28位同学。输入两个班级的统计结果。将合并后的统计结果按节目编号的字母顺序打印出来。(注意,如果1班有10个同学喜欢Q节目,2班有15个同学喜欢Q节目,则合并后,有25个同学喜欢Q节目)

输入格式:

输入两个字典,一行一个。字典元素的键是节目编号(大写字母),元素的值是相应节目获得的票数。

输出格式:

按字母顺序输出合并后的统计结果。每个节目占一行,以“节目编号:统计票数”的形式打印。

输入样例:

在这里给出一组输入。例如:

{'Q':10,'A':22,'X':28} 
{'A':30,'D':1,'Q':15,'B':13}

输出样例:

在这里给出相应的输出。例如:

A:52
B:13
D:1
Q:25
X:28

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

c1_dic=eval(input())
c2_dic=eval(input())
s={}
for i in c1_dic.keys():
s[i]=c1_dic.get(i)
for i in c2_dic.keys():
s[i]=s.get(i,0)+c2_dic.get(i,0)
l=sorted(s.items(),key=lambda d:d[0])
for i in l:
print(f"{i[0]}:{i[1]}")

九、Python编程练习

Python编程练习

(一)函数题

函数题

1、使用函数求素数和

1-1

作者 陈春晖

单位 浙江大学

使用函数求素数和

prime(p), 其中函数prime当用户传入参数p为素数时返回True,否则返回False.
PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n。

函数接口定义:

在这里描述函数接口:
prime(p),返回True表示p是素数,返回False表示p不是素数
PrimeSum(m,n),函数返回素数和

裁判测试程序样例:

/* 请在这里填写答案 */

m,n=input().split()
m=int(m)
n=int(n)
print(PrimeSum(m,n))

输入样例:

在这里给出一组输入。例如:

1 10

输出样例:

在这里给出相应的输出。例如:

17

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

import math
def PrimeSum(m,n):
sum=0
for i in range(m,n+1):
if prime(i):
sum+=i
return sum
def prime(p):
if p==1:
return False
if p==2:
return True
for i in range(2,int(math.sqrt(p))+2):
if p%i==0:
return False
return True

完整代码:

import math
def PrimeSum(m,n):
sum=0
for i in range(m,n+1):
if prime(i):
sum+=i
return sum
def prime(p):
if p==1:
return False
if p==2:
return True
for i in range(2,int(math.sqrt(p))+2):
if p%i==0:
return False
return True
m,n=input().split()
m=int(m)
n=int(n)
print(PrimeSum(m,n))

2、人民币美元双向兑换

1-2

作者 郭晓曦

单位 集美大学

本题要求实现一个人民币与美元的双向兑换函数change(money),可实现1美元=6.709人民币的双向兑换。输出兑换的结果保留2位小数。

函数接口定义:

在这里描述函数接口。例如:
change( money )

其中 money都是用户传入的参数,表示待兑换的钱数。

裁判测试程序样例:

/* 请在这里填写答案 */
x = input()
change(x)

输入样例1:

在这里给出一组输入。例如:

$1

输出样例1:

在这里给出相应的输出。例如:

1美元 = 6.71人民币

输入样例2:

在这里给出一组输入。例如:

¥1

输出样例2

在这里给出相应的输出。例如:

1人民币 = 0.15美元

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

def change(money):
m=int(money[1:])
if money[0]=='$':
mz=m*6.709
print("{}美元 = {:.2f}人民币".format(m,mz))
else:
mm=m/6.709
print("{}人民币 = {:.2f}美元".format(m,mm))

完整代码:

def change(money):
m=int(money[1:])
if money[0]=='$':
mz=m*6.709
print("{}美元 = {:.2f}人民币".format(m,mz))
else:
mm=m/6.709
print("{}人民币 = {:.2f}美元".format(m,mm))
x = input()
change(x)

(二)编程题

编程题

1、jmu-python-分段函数

2-1

作者 蔡莉白

单位 集美大学

本题目要求计算下列分段函数f(x)的值(x为从键盘输入的一个任意实数):

分段函数.jpg

输入格式:

输入在一行中给出实数 x。

输出格式:

在一行中按“f(x)=result”的格式输出,其中x与result都保留两位小数

输入样例:

0.76

输出样例:

f(0.76)=1.20

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

x=eval(input())
if x<3:
print("f({:.2f})={:.2f}".format(x,1.2))
elif x==3:
print("f({:.2f})={:.2f}".format(x,10))
else:
print("f({:.2f})={:.2f}".format(x,2*x+1))

2、统计单词的个数

2-2

作者 陈春晖

单位 浙江大学

输入一行字符,以回车结束,统计其中单词的个数。单词是中间没有空格的字符序列,各单词之间用空格分隔,单词间空格数可以是多个。

输入格式:

在一行中输入字符

输出格式:

在一行中输出单词的数量

输入样例:

在这里给出一组输入。例如:

Let's  go   to room  209

输出样例:

在这里给出相应的输出。例如:

count = 5

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

s=input().split()
print(f"count = {len(s)}")

3、简易计算器

2-3

作者 python课程组

单位 合肥师范学院

简易计算器设计。

输入格式:

输入两个非零整数,并在4 行中按顺序输出两个数的加、减、乘、除的计算结果。

输出格式:

要求输出格式如下,符号前后各有一个空格,具体参考输出样例‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬:

整数1 + 整数2 = 和
整数1 - 整数2 = 差
整数1 * 整数2 = 积
整数1 / 整数2 = 商

输入样例:

在这里给出一组输入。例如:

1
2

输出样例:

在这里给出相应的输出。例如:

1 + 2 = 3
1 - 2 = -1
1 * 2 = 2
1 / 2 = 0.5

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

a=int(input())
b=int(input())
print(f"{a} + {b} = {a+b}")
print(f"{a} - {b} = {a-b}")
print(f"{a} * {b} = {a*b}")
print(f"{a} / {b} = {a/b}")

八、第8章 模块

第8章

(一)判断题

判断题

1、(F)

计算x**y,有以下三种方法:
(1) x**y;
(2) pow(x,y);
(3) import random
random.pow(x,y)


2、(T)

假设random模块已导入,那么表达式 random.sample(range(10), 7) 的作用是生成7个不重复的整数。


3、(T)

使用random模块的函数randint(1, 100)获取随机数时,有可能会得到100。


4、(F)

将列表中的元素顺序打乱的函数shuffle()不是random模块的函数或方法。


5、(T)

每次用seed函数设置相同的种子后,random()都能产生相同的随机数。


6、(F)

标准库random库中的随机函数randint(a,b)是用来生成一个大于等于a且小于b的整数的。


7、将列表中的元素顺序打乱的函数shuffle()不是random模块的函数或方法。 (F)


8、(T)

Python中,random模块是内置的标准模块,可以生成随机数。


9、(T)

random模块主要用于生成随机数。


10、(F)

首先import math,然后运行sqrt(4)就可以成功对4求开根号。


(二)单选题

单选题

1、(D)

下列指令执行后结果为()。

import math

n=5

print(factorial(n))

A.120

B.24

C.5

D.出现错误


2、(C)

要使用math库中的sqrt()函数,导入语句错误的是:()

A.import math

B.from math import sqrt

C.from sqrt import math

D.from math import *


3、(A)

以下关于random库的描述错误的是:

A.生成随机数之前必须要指定随机数种子

B.设定相同种子,每次调用随机函数生成的随机数相同

C.通过from random import *可以引入random随机库

D.通过import random可以引入random随机库


4、(D)

python中,哪个选项是random库中用于生成随机小数的函数?

A.randrange()

B.randint()

C.getrandbits()

D.random()


5、(B)

哪个选项能够最简单的在列表[‘apple’,’pear’,’peach’,’orange’]中随机选取一个元素?

A.shuffle()

B.choice()

C.sample()

D.random()


6、(C)

Python中random模块的哪个函数可以产生一个指定区间的随机整数?

A.random

B.randrange

C.randint

D.choice


7、(B)

给出如下代码:

import random as ran
listv = []
ran.seed(100)
for i in range(10):
i = ran.randint( 100, 999)
listv.append(i)

以下选项中能输出随机列表元素最大值的是_

A.print(listV.max())

B.print(max(listV))

C.print(listV.reverse(i))

D.print(listV.pop(i))


8、(A)

关于random.uniform(a,b)的作用描述,以下选项中正确的是‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬__

A.生成一个[a, b]之间的随机小数

B.生成一个均值为a,方差为b的正态分布

C.生成一个(a, b)之间的随机数

D.生成一个[a, b]之间的随机整数


(三)编程题

编程题

1、产生m个4位数的验证码1

3-1

作者 陈丹

单位 浙大城市学院

同一行中输入m和n二个正整数,n作为seed种子,产生一个4位的随机数验证码,该随机数作为下一个seed种子,再产生一个4位随机数验证码……直至产生m个随机数验证码。产生的m个随机数验证码按样例输出。

m,n=input().split() #同一行中输入m,n

randint(1000,9999) #生成一个【1000,9999】之间的整数

输入格式:

同一行中输入m和n。二数之间用空隔隔开。

输出格式:

分m行输出。

输入样例:

在这里给出一组输入。例如:

2  8

输出样例:

在这里给出相应的输出。例如:

4714
1142

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

import random
m,n=map(int,input().split())
for i in range(m):
random.seed(n)
n=random.randint(1000,9999)
print(n)

2、随机小学加法题

3-2

作者 马杨珲

单位 浙江科技大学

使用random库的randint()函数随机产生n道加法题(要求两个加数都是小于10的正整数),正整数n由用户输入。(注意:先要使用random库的seed(a)函数初始化随机数种子,种子参数为正整数a,由用户输入)

输入格式:

在一行中输入初始化随机数种子参数a(正整数)和题目数量n(小于10的正整数)。

输出格式:

以x+y=的形式输出n道加法题,每行一题。

输入样例:

在这里给出一组输入。例如:

2 5

输出样例:

在这里给出相应的输出。例如:

1+2=
2+6=
3+5=
5+4=
1+3=

输入样例:

在这里给出一组输入。例如:

333 3

输出样例:

在这里给出相应的输出。例如:

9+6=
6+4=
7+2=

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

import random
a,b=map(int,input().split())
random.seed(a)
for i in range(b):
x=random.randint(1,9)
y=random.randint(1,9)
print(f'{x}+{y}=')

七、第7章 类与面向对象

第7章

(一)判断题

判断题

1、(F)

定义Python函数时必须指定函数返回值类型。


2、(T)

定义Python函数时,如果函数中没有return语句,则默认返回空值None。


3、(T)

Python允许将多个参数传递给函数。


4、(T)

在Python类中,构造方法的名称为__init__


5、(F)

Python中,父类(超类)从子类继承方法。


6、(F)

Python不允许类的多继承,即不允许一个子类拥有多个父类。


7、(F)

在Python中定义类时实例方法的第一个参数名称必须是self。


8、(T)

在Python中,可以为自定义类的对象动态增加新成员。


9、(T)

在Python中,函数定义必须在函数调用之前。


10、(T)

在Python中,对象是类的实例。


11、(F)

Python是一个面向过程的程序设计语言。


12、(F)

在Python中,类的所有属性(成员变量)都是可以直接修改的。


(二)单选题

单选题

1、(C)

在Python中,对于函数定义代码的理解,正确的是__.

A.必须存在形参

B.必须存在return语句

C.形参和return语句都是可有可无

D.形参和return语句要么都存在,要么都不存在


2、(B)

关于Python的lambda函数,以下选项中描述错误的是

A.lambda函数将函数名作为函数结果返回

B.f = lambda x,y:x+y 执行后,f的类型为数字类型

C.lambda用于定义简单的、能够在一行内表示的函数

D.可以使用lambda函数定义列表的排序原则


3、(A)

Python定义函数时,( )参数类型。

A.不需要声明

B.必须声明(必须指定)

C.可声明也可不声明

D.设置


4、(B)

以下关于Python函数的描述中,错误的是( )。

A.函数是一段可重用的语句块

B.每次使用函数,需要提供相同的参数作为输入

C.函数通过函数名进行调用

D.函数是一段具有特定功能的语句块


5、(D)

基本的Python内置函数range(a,b,s)的作用是()。

A.返回组合类型的逆序迭代形式

B.返回a的四舍五入值,b表示保留小数的位数

C.返回a的b次幂

D.产生一个整数序列,从a到b(不含)以s为步长


6、(A)

Python中,定义类的关键字是( )。

A.class

B.strut

C.def

D.for


7、(A)

在Python语言中,类的私有成员以( )开头。

A.__(两个下划线)
B._(一个下划线)
C.private
D.#


8、(C)

Python中,关于类中的__init__()函数,说法正确的是( )。

A.第一个参数必须命名为self

B.必须显式调用

C.创建对象时自动调用

D.属于保护成员


9、(B)

Python定义类的构造方法是( )。

A.__new__()

B.__init__()

C.__add__()

D.__del__()


10、(B)

Python类的方法的第一个参数 self 的作用不包括:

A.通过 self 可以访问对象的属性

B.代表类本身

C.传入对象本身

D.在方法内,self 就是对象的引用


(三)函数题

函数题

1、二维平面上的点操作(Python3)

3-1

作者 高礼彬

单位 浙江工贸职业技术学院

题目描述

设计一个表示二维平面上点的类 Point。该类应该包含以下功能:

  • 两个私有属性 _x_y,分别表示点的横坐标和纵坐标。
  • 一个构造函数 __init__,用于初始化点的坐标。
  • 一个方法 distance_to_origin,返回该点到原点 (0, 0) 的欧几几何距离。
  • 一个方法 move_by,接受两个参数 dxdy,将点的横坐标和纵坐标分别增加 dxdy
  • 一个特殊方法 __str__,返回点的信息字符串,格式为 "Point(x, y)"

函数接口定义(你实现)

class Point:
def __init__(self, x, y):
# 初始化点的坐标
pass

def distance_to_origin(self):
# 返回点到原点的距离
pass

def move_by(self, dx, dy):
# 移动点的位置
pass

def __str__(self):
# 返回点的信息字符串
pass

裁判测试程序样例

def main():
# 用户输入点的初始坐标 (x, y)
# 使用 input() 读取一行输入,并用 split() 将其分割成两个字符串
# 使用 map(float, ...) 将这两个字符串转换为浮点数
x, y = map(float, input("请输入点的初始坐标 (x y): ").split())

# 创建 Point 类的实例,传入初始坐标 (x, y)
point = Point(x, y)

# 调用 point 的 distance_to_origin 方法计算点到原点 (0, 0) 的距离
# 使用 f-string 格式化输出,保留两位小数
print(f"Distance to origin: {point.distance_to_origin():.2f}")

# 用户输入移动量 (dx, dy)
# 使用 input() 读取一行输入,并用 split() 将其分割成两个字符串
# 使用 map(float, ...) 将这两个字符串转换为浮点数
dx, dy = map(float, input("请输入移动量 (dx dy): ").split())

# 调用 point 的 move_by 方法,将点的位置按 (dx, dy) 移动
point.move_by(dx, dy)

# 打印移动后的点的信息
# 调用 point 的 __str__ 方法,返回点的字符串表示
print(point)

#执行 main 函数
if __name__ == "__main__":
main()

输入样例

3 4
1 2

输出样例

Distance to origin: 5.00
Point(4.0, 6.0)

实现提示

  • 使用 math.sqrt 来计算欧几里得距离(开根号)。
  • 确保 __str__ 方法返回正确的字符串格式。

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

答案:

import math
class Point:
_x=0
_y=0
def __init__(self, x, y):
self._x=x
self._y=y
def distance_to_origin(self):
return math.sqrt(self._x*self._x+self._y*self._y)

def move_by(self, dx, dy):
self._x+=dx
self._y+=dy

def __str__(self):
return "Point({:.1f}, {:.1f})".format(self._x,self._y)

完整代码:

import math
class Point:
_x=0
_y=0
def __init__(self, x, y):
self._x=x
self._y=y
def distance_to_origin(self):
return math.sqrt(self._x*self._x+self._y*self._y)

def move_by(self, dx, dy):
self._x+=dx
self._y+=dy

def __str__(self):
return "Point({:.1f}, {:.1f})".format(self._x,self._y)
def main():
# 用户输入点的初始坐标 (x, y)
# 使用 input() 读取一行输入,并用 split() 将其分割成两个字符串
# 使用 map(float, ...) 将这两个字符串转换为浮点数
x, y = map(float, input("请输入点的初始坐标 (x y): ").split())

# 创建 Point 类的实例,传入初始坐标 (x, y)
point = Point(x, y)

# 调用 point 的 distance_to_origin 方法计算点到原点 (0, 0) 的距离
# 使用 f-string 格式化输出,保留两位小数
print(f"Distance to origin: {point.distance_to_origin():.2f}")

# 用户输入移动量 (dx, dy)
# 使用 input() 读取一行输入,并用 split() 将其分割成两个字符串
# 使用 map(float, ...) 将这两个字符串转换为浮点数
dx, dy = map(float, input("请输入移动量 (dx dy): ").split())

# 调用 point 的 move_by 方法,将点的位置按 (dx, dy) 移动
point.move_by(dx, dy)

# 打印移动后的点的信息
# 调用 point 的 __str__ 方法,返回点的字符串表示
print(point)

#执行 main 函数
if __name__ == "__main__":
main()

2、图形面积计算(Python3)

3-2

作者 高礼彬

单位 浙江工贸职业技术学院

题目描述

设计一个简单的图形编辑器系统,该系统包括以下类:

  • Shape:所有图形的基类。
  • Circle:表示圆形,继承自 Shape
  • Rectangle:表示矩形,继承自 Shape
  • Triangle:表示三角形,继承自 Shape

每个图形类都需要实现以下方法:

  • area():返回图形的面积。
  • perimeter():返回图形的周长。

此外,**题目已经编写好了主程序和测试函数,学生只需实现上述这些方法即可。

函数接口定义(你实现的部分)

class Shape:
def area(self):
raise NotImplementedError("This method should be overridden by subclasses")

def perimeter(self):
raise NotImplementedError("This method should be overridden by subclasses")

class Circle(Shape):
def __init__(self, radius):
self.radius = radius

def area(self):
# 计算并返回圆的面积
pass

def perimeter(self):
# 计算并返回圆的周长
pass

class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height

def area(self):
# 计算并返回矩形的面积
pass

def perimeter(self):
# 计算并返回矩形的周长
pass

class Triangle(Shape):
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c

def area(self):
# 计算并返回三角形的面积
pass

def perimeter(self):
# 计算并返回三角形的周长
pass

裁判测试程序样例(判卷逻辑)

def print_shape_info(shape):
# 打印给定形状的面积和周长
print(f"Area: {shape.area():.2f}")
print(f"Perimeter: {shape.perimeter():.2f}")

def main():
# 用户输入图形类型和相应的参数
shape_type = input("")

if shape_type == 'circle':
radius = float(input(""))
shape = Circle(radius)
elif shape_type == 'rectangle':
width, height = map(float, input("").split())
shape = Rectangle(width, height)
elif shape_type == 'triangle':
a, b, c = map(float, input("").split())
shape = Triangle(a, b, c)
else:
print("未知的图形类型")
return

# 打印图形的面积和周长
print_shape_info(shape)

if __name__ == "__main__":
main()

输入样例 1

circle
5

输出样例 1

Area: 78.54
Perimeter: 31.42

输入样例 2

rectangle
4 6

输出样例 2

Area: 24.00
Perimeter: 20.00

输入样例 3

triangle
3 4 5

输出样例 3

Area: 6.00
Perimeter: 12.00

提示

  • 你只需要实现接口部分即可。
  • 使用 math.pi 来计算圆的面积和周长。
  • 对于三角形,可以使用海伦公式(Heron’s formula)来计算面积:
  1. 首先计算半周长s
    s=2a+b+c
  2. 然后使用半周长s 计算三角形的面积 A
    A=s(sa)(sb)(sc)​

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

答案:

import math
class Shape:
def area(self):
raise NotImplementedError("This method should be overridden by subclasses")

def perimeter(self):
raise NotImplementedError("This method should be overridden by subclasses")

class Circle(Shape):
def __init__(self, radius):
self.radius = radius

def area(self):
return self.radius*self.radius*math.pi

def perimeter(self):
return 2*self.radius*math.pi

class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height

def area(self):
return self.width*self.height

def perimeter(self):
return (self.height+self.width)*2

class Triangle(Shape):
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c

def area(self):
p=(self.a+self.b+self.c)/2
return math.sqrt(p*(p-self.a)*(p-self.b)*(p-self.c))
def perimeter(self):
return self.a+self.b+self.c

完整代码:

import math
class Shape:
def area(self):
raise NotImplementedError("This method should be overridden by subclasses")

def perimeter(self):
raise NotImplementedError("This method should be overridden by subclasses")

class Circle(Shape):
def __init__(self, radius):
self.radius = radius

def area(self):
return self.radius*self.radius*math.pi

def perimeter(self):
return 2*self.radius*math.pi

class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height

def area(self):
return self.width*self.height

def perimeter(self):
return (self.height+self.width)*2

class Triangle(Shape):
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c

def area(self):
p=(self.a+self.b+self.c)/2
return math.sqrt(p*(p-self.a)*(p-self.b)*(p-self.c))
def perimeter(self):
return self.a+self.b+self.c
def print_shape_info(shape):
# 打印给定形状的面积和周长
print(f"Area: {shape.area():.2f}")
print(f"Perimeter: {shape.perimeter():.2f}")

def main():
# 用户输入图形类型和相应的参数
shape_type = input("")

if shape_type == 'circle':
radius = float(input(""))
shape = Circle(radius)
elif shape_type == 'rectangle':
width, height = map(float, input("").split())
shape = Rectangle(width, height)
elif shape_type == 'triangle':
a, b, c = map(float, input("").split())
shape = Triangle(a, b, c)
else:
print("未知的图形类型")
return

# 打印图形的面积和周长
print_shape_info(shape)

if __name__ == "__main__":
main()

(四)编程题

编程题

1、Python-求集合A和B的交集、并集和补集

4-1

作者 gllypx

单位 桂林学院

输入两个集合A和B,输出它们的交集、并集和补集。

输入格式:

以集合形式输入:第一行输入集合A,第二行输入集合B。

输出格式:

分行输出它们的交集、并集和补集。

输入样例:

{1,2,3,6,7,8}
{2,3,4}

输出样例:

A&B: {2, 3}
A|B: {1, 2, 3, 4, 6, 7, 8}
A^B: {1, 4, 6, 7, 8}

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

A=eval(input())
B=eval(input())
print(f"A&B: {A&B}")
print(f"A|B: {A|B}")
print(f"A^B: {A^B}")

2、单个身份证的校验 - 实验19 身份证校验 - 《Python编程基础及应用实验教程》 - 高教社

4-2

作者 海洋饼干叔叔

单位 重庆大学

一个合法的身份证号码由6位地区码、8位出生日期、3位顺序号加1位校验码组成。比如,在身份证号320124198808240056中,320124为地区码,19880824为出生日期,005则为顺序号,6则是根据前17数字生成的校验码。校验码可以帮助检查身份证号在转述,抄录的过程中是否出现错误。

校验码的计算规则如下:

  1. 对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
  2. 将加权和对11取模得到余数Z;
  3. 按下述Z-M对应关系取得校验码M。
    Z: [0,1,2,3,4,5,6,7,8,9,10]
    M: [1,0,X,9,8,7,6,5,4,3,2]。

输入格式:

一个身份证字符串

输出格式:

正确/错误

输入样例:

320124198808240056

输出样例:

正确

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

n=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
m='10X98765432'
a=input()
if len(a)!=18:
print("错误")
else:
b=sum(int(a[i])*n[i] for i in range(17))
z=m[b%11]
if a[-1]==z:
print("正确")
else:
print("错误")

六、第6章 函数

第6章

(一)程序填空题

程序填空题

1、默认值参数 - 实验12 用函数实现模块化程序设计 《Python编程基础及应用实验教程》,高教社

1-1

作者 海洋饼干叔叔

单位 重庆大学

编写一个函数判断成绩是否及格。由于考试分数有百分制和一百五十分制的区别,如果是百分制,则及格分数为60分,一百五十分制及格分数为90分。
请将下述程序补充完整并上机调试,实现上述功能:

def isPass(1):
if score>=n:
return "passed"
else:
return "failed"

stuA=80 #百分制得分80
print(isPass(stuA))
stuB=120 #150分制得分120
print(isPass(【2】))

【解题提示】
isPass()函数中可以设置一个默认值为60的参数n,表示百分制情况下及格的分数为60分。

答案:

【1】

score,n=60

【2】

stuB,90

完整代码:

def isPass(score,n=60):
if score>=n:
return "passed"
else:
return "failed"

stuA=80 #百分制得分80
print(isPass(stuA))
stuB=120 #150分制得分120
print(isPass(stuB,90))

2、任意数量对象的加法 - 实验12 用函数实现模块化程序设计 《Python编程基础及应用实验教程》 - 高教社

1-2

作者 海洋饼干叔叔

单位 重庆大学

函数calc(),用于实现任意数量对象的加法操作。请将下述程序补充完整并上机调试,实现上述功能。

def calc(1):
s=0
2
s=s+i
return s

result1=calc(1,2,3,4)
result2=calc(12,-1,100,30,49,50)
print(result1,result2)

期望的执行结果为:

10 240
【思考】

num对象的类型是什么?
在一个函数中,带*号形参可以有几个,其位置应该放在何处?答案:

答案:

【1】

*num

【2】

for i in num:

完整代码:

def calc(*num):
s=0
for i in num:
s=s+i
return s
result1=calc(1,2,3,4)
result2=calc(12,-1,100,30,49,50)
print(result1,result2)

(二)函数题

函数题

1、数据平均值(可变参数函数)

2-1

作者 田洪云

单位 临沂大学

输4个用空格分割的数值,求这些数的平均值,保留2位小数,并输出。

函数接口定义

def average(*x):

x是用户传入的参数,参数数量可以变化,函数根据参数计算其平均值,并返回。

裁判测试程序样例

x1,x2,x3,x4=map(eval,input().split())
b=average(x1,x2)
print('两个数平均值为:{:.2f}'.format(b))
b=average(x1,x2,x3)
print('三个数平均值为:{:.2f}'.format(b))
b=average(x1,x2,x3,x4)
print('四个数平均值为:{:.2f}'.format(b))

输入样例

12 76 65 34

输出样例

两个数平均值为:44.00
三个数平均值为:51.00
四个数平均值为:46.75

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

def average(*x):
sum=0
for i in x:
sum+=i
return sum/len(x)

完整代码:

def average(*x):
sum=0
for i in x:
sum+=i
return sum/len(x)
x1,x2,x3,x4=map(eval,input().split())
b=average(x1,x2)
print('两个数平均值为:{:.2f}'.format(b))
b=average(x1,x2,x3)
print('三个数平均值为:{:.2f}'.format(b))
b=average(x1,x2,x3,x4)
print('四个数平均值为:{:.2f}'.format(b))

2、函数求整数各位数字和

2-2

作者 马杨珲

单位 浙江科技大学

本题要求实现一个函数,计算一个整数各位数字的和。

函数接口定义:

def mysum(x):

其中 x 是用户传入的参数。函数须返回 整数x 各位数字之和。

裁判测试程序样例:

#请在这里写答案
n=int(input())
print(mysum(n))

输入样例:

在这里给出一组输入。例如:

65

输出样例:

在这里给出相应的输出。例如:

11

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

def mysum(x):
sum=0
while x>0:
sum+=x%10
x=x//10
return sum

完整代码:

def mysum(x):
sum=0
while x>0:
sum+=x%10
x=x//10
return sum
n=int(input())
print(mysum(n))

3、给姓名加框

2-3

作者 马杨珲

单位 浙江科技大学

本题要求实现一个函数,打印带框的姓名。

函数接口定义:

def tag(name):

裁判测试程序样例:

#请在这里填写答案

name=input()
tag(name)

输入样例 1:

在这里给出一组输入。例如:

Fiona

输出样例 1:

在这里给出相应的输出。例如:

*******
*Fiona*
*******

输入样例 2:

在这里给出一组输入。例如:

Hello Kitty

输出样例 2:

在这里给出相应的输出。例如:

*************
*Hello Kitty*
*************

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

def tag(name):
print("*"*(len(name)+2),end="")
print()
print(f"*{name}*")
print("*"*(len(name)+2),end="")

完整代码:

def tag(name):
print("*"*(len(name)+2),end="")
print()
print(f"*{name}*")
print("*"*(len(name)+2),end="")
name=input()
tag(name)

4、三个数的最大值

2-4

作者 zhuo

单位 山东科技大学

本题要求实现一个函数,可找出三个数中的最大值。

函数接口定义

在这里描述函数接口。例如:
def MaxNumber(x,y,z);

裁判测试程序样例

/* 请在这里填写答案 */
x,y,z=map(int,input().split(","))
print(MaxNumber(x,y,z))

输入样例

在这里给出一组输入。例如:

3,2,1

输出样例

在这里给出相应的输出。例如:

3

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

def MaxNumber(x,y,z):
if x>y:
a=x
else:
a=y
if a<z:
a=z
return a

完整代码:

def MaxNumber(x,y,z):
if x>y:
a=x
else:
a=y
if a<z:
a=z
return a
x,y,z=map(int,input().split(","))
print(MaxNumber(x,y,z))

5、信用卡 - 《Python编程基础及应用》第2版,习题3-7

2-5

作者 海洋饼干叔叔

单位 重庆大学

(信用卡)信用卡消费,超过免息期后一般按照日息万分之五计息。请按照如图所示的“功能黑箱”设计函数debt(amount, days),并编写合适的代码调用测试该函数。
image.png

说明:信用卡债务通常是按月计复利(利滚利),简便起见,本函数不计复利,即借贷本金始终保持不变。

函数接口定义:

def debt(amount,days)

amount和days的含义如图。

裁判测试程序样例:

#请在此处定义debt函数

amt = eval(input()) #输入借贷额
days = eval(input()) #借贷天数
amtNew = debt(amt,days)
print(f"{amtNew:.2f}")

输入样例:

10000
5

输出样例:

10025.00

注意:只提交debt函数的定义,不要提交完整代码。系统后台会将提交的函数定义与测试代码自动合并,然后验证其正确性。代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

def debt(amount,days):
return amount*0.0005*days+amount

完整代码:

def debt(amount,days):
return amount*0.0005*days+amount
amt = eval(input())    #输入借贷额
days = eval(input())   #借贷天数
amtNew = debt(amt,days)
print(f"{amtNew:.2f}")

6、海伦-秦九韶公式 - 《Python编程基础及应用》第2版,习题3-8

2-6

作者 海洋饼干叔叔

单位 重庆大学

(海伦-秦九韶公式)编写程序,输入三角形的三条边边长,并使用海伦-秦九韶公式求三角形的面积,其中面积计算应通过自定义函数来实现。如果输入的三条边长不能构成合法的三角形,打印错误提示信息。

函数接口定义:

def area(a,b,c):
pass

裁判测试程序样例:

from math import sqrt
#在此处实现area函数
ans=0
a = float(input())
b = float(input())
c = float(input())
if(a+b>c and a+c>b and b+c>a and a > 0 and b > 0 and c > 0):
ans=area(a,b,c)
print(f"{ans:.2f}")
else:
print("数据错误")

输入样例:

3
4
5

输出样例:

6.00

相关公式定义如下图
image.png代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

def area(a,b,c):
p=1/2*(a+b+c)
s=sqrt(p*(p-a)*(p-b)*(p-c))
return s

完整代码:

def area(a,b,c):
p=1/2*(a+b+c)
s=sqrt(p*(p-a)*(p-b)*(p-c))
return s
from math import sqrt
ans=0
a = float(input())
b = float(input())
c = float(input())
if(a+b>c and a+c>b and b+c>a and a > 0 and b > 0 and c > 0):
    ans=area(a,b,c)
    print(f"{ans:.2f}")
else:
    print("数据错误")

7、最短跑道长度 - 《Python编程基础及应用》第2版,习题3-9

2-7

作者 海洋饼干叔叔

单位 重庆大学

(最短跑道长度)假设某飞机的加速度是a,起飞速度是v,其该飞机起飞所需的最短跑道长度L = v²/(2a)。编写程序,提示用户输入起飞速度v(m/s)和加速度a(m/s²),计算并打印飞机起飞的最短跑道长度,计算过程应封装成一个函数。

函数接口定义:

def length(v,a):
pass

裁判测试程序样例:

#length函数定义于此处
v=float(input())
a=float(input())
print(f"最短跑道长度为:{length(v,a):.2f}")

输入样例:

100
5

输出样例

最短跑道长度为:1000.00

注意:

作为函数题,请只提交函数定义部分,不要提交整个程序。 后台会将函数部分与测试代码合并后进行验证。代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

def length(v,a):
return v*v/(2*a)

完整代码:

def length(v,a):
return v*v/(2*a)
v=float(input())
a=float(input())
print(f"最短跑道长度为:{length(v,a):.2f}")

8、调和平均 - 《Python编程基础及应用》第2版,习题7-2

2-8

作者 海洋饼干叔叔

单位 重庆大学

(调和平均)函数hmean(x,y)用于计算x和y的调和平均数。当x+y不等于0时,调和平均数z = 2xy/(x+y);当x+y等于0时,调和平均数z无法计算。为了兼容两种不同的状态,函数总是返回一个元组(r,z),其中r为布尔型,表示调和平均数是否被成功计算,z为计算结果。当r为假时,z值规定为-1。请实现该函数并编写恰当的代码来测试它。

函数接口定义:

define hmean(x,y):

裁判测试程序样例:

#在此处定义hmean函数

a = eval(input())
b = eval(input())
r,v = hmean(a,b)
if r:
print(f"调和平均:{v:.2f}")
else:
print("无法计算")

输入样例:

3
2

输出样例:

调和平均:2.40

注意:

只提交函数定义部分代码!

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

def hmean(x,y):
if x+y==0:
return (False,-1)
return (True,2*x*y/(x+y))

完整代码:

def hmean(x,y):
if x+y==0:
return (False,-1)
return (True,2*x*y/(x+y))
a = eval(input())
b = eval(input())
r,v = hmean(a,b)
if r:
    print(f"调和平均:{v:.2f}")
else:
    print("无法计算")

9、符号函数 - 《Python编程基础及应用》第2版,习题7-4

2-9

作者 海洋饼干叔叔

单位 重庆大学

(符号函数)定义函数sign(x),并编写合适的代码对其进行测试。

image.png

函数接口定义:

def sign(x)

裁判测试程序样例:

#在这里定义sign函数

v = eval(input())
print(sign(v))

输入样例:

-9.78

输出样例:

-1

注意:

仅提交函数定义部分代码!

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

def sign(x):
if x>0:
return 1
elif x==0:
return 0
else:
return -1

完整代码:

def sign(x):
if x>0:
return 1
elif x==0:
return 0
else:
return -1
v = eval(input())
print(sign(v))

(三)编程题

编程题

1、lambda表达式的使用

3-1

作者 聂作先

单位 福建理工大学

输入若干学生数据,包括姓名,以及ds,db,c 三门课程的成绩,存放到序列中,然后按总成绩由高到低输出所有学生的信息,使用内置函数sorted及lambda表达式实现。

输入格式:

先输入学生数量n,再输入n行学生数据,每行一个学生的信息,包括:姓名,以及ds,db,c 三门课程的成绩。

输出格式:

按总成绩由高到低排序后的学生信息。

输入样例:

在这里给出一组输入。例如:

2
张三 70 75 80
李四 80 80 85

输出样例:

在这里给出相应的输出。例如:

李四 80 80 85
张三 70 75 80

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

n=int(input())
score=[]
for i in range(n):
s=input().split()
name=s[0]
ds,db,c=map(int,s[1:4])
score.append((name,ds,db,c))
stu=sorted(score,key=lambda x:x[1]+x[2]+x[3],reverse=True)
for i in stu:
print(' '.join(map(str,i)))

五、第5章 字典和集合

第5章

(一)编程题

编程题

1、查询国家面积和人数

1-1

作者 巨同升

单位 山东理工大学

编写程序实现:首先从键盘输入若干个国家名称、国土面积(平方千米)、人口数量(万人)的对应关系,以空行作结束标记。然后输入一个国名和整数,若整数为1,则输出对应的国土面积;若整数为2,则输出对应的人口数量;若找不到该国名或者整数不是1或2,则输出“没有相应的信息”。

提示:字典键值对中的值可以是列表或元组。

输入格式:

前面每行输入一个国名及其面积和人口,以分号分隔。

最后输入国名和整数,以分号分隔。

输出格式:

在一行中输出结果。

输入样例1:

China;9600000;142567
India;2980000;142862
United States;9370000;33999
Indonesia;1900000;27753
Brazil;8540000;21642
Russia;17090000;14444
Japan;377973;12329
Australia;7690000;2644
Canada;9980000;3878

Australia;1

输出样例1:

该国面积为7690000平方千米

输入样例2:

China;9600000;142567
India;2980000;142862
United States;9370000;33999
Indonesia;1900000;27753
Brazil;8540000;21642
Russia;17090000;14444
Japan;377973;12329
Australia;7690000;2644
Canada;9980000;3878

Brazil;2

输出样例:

该国人口为21642万人

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

l=input()
info={}
while l!='':
arr=l.split(';')
info[arr[0]]=[arr[1],arr[2]]
l=input()
s=input().split(';')
if int(s[1])==1:
area=info.get(s[0],0)
if area!=0:
print(f"该国面积为{info[s[0]][0]}平方千米")
else:
print('没有相应的信息')
elif int(s[1])==2:
people=info.get(s[0],0)
if people!=0:
print(f"该国人口为{info[s[0]][1]}万人")
else:
print('没有相应的信息')
else:
print('没有相应的信息')

2、根据输入创建字典

1-2

作者 巨同升

单位 山东理工大学

编写程序实现:从键盘输入若干个国名与首都的偶对,以空行作结束标记。要求将上述信息存入一个字典中,最后输出该字典的内容。

输入格式:

每行输入一对国名与首都,以分号分隔;最后输入一个空行。

输出格式:

以字典的形式输出结果。

输入样例:

中国;北京
日本;东京
美国;华盛顿
英国;伦敦
德国;柏林
法国;巴黎
俄罗斯;莫斯科

输出样例:

{'中国': '北京', '日本': '东京', '美国': '华盛顿', '英国': '伦敦', '德国': '柏林', '法国': '巴黎', '俄罗斯': '莫斯科'}

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

ne={}
l=input()
while l!='':
gj=l.split(';')[0]
sd=l.split(';')[1]
ne[gj]=sd
l=input()
print(ne)

3、输入数字1-7输出对应的星期几

1-3

作者 吴呈瑜

单位 浙江理工大学

输入一个表示星期几的数字(1—7),输出对应的“星期一、星期二、星期三、星期四、星期五、星期六、星期日”的中文字符串。

输入格式:

1

输出格式:

星期一

输入样例:

在这里给出一组输入。例如:

7

输出样例:

在这里给出相应的输出。例如:

星期日

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

arr=['','星期一','星期二','星期三',
'星期四','星期五','星期六','星期日']
x=int(input())
print(arr[x])

4、统计最多的单词个数

1-4

作者 沈炜

单位 浙江理工大学

输入一串文本,统计出现最多的单词个数。

输入格式:

一行文本

输出格式:

一个整数,是最大的单词出现个数

输入样例:

在这里给出一组输入。例如:

This is a test, which is a easy problem.

输出样例:

在这里给出相应的输出。例如:

2

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

tmp=input().split(' ')
cnt=0
max=0
for i in tmp :
cnt=0
for j in tmp :
if i==j :
cnt+=1
if max<cnt :
max=cnt
print(max)

5、非重复数字

1-5

作者 mjye

单位 北京师范大学珠海校区

给定 n 个整数,输出第一个没有重复的数字。

输入格式:

第一行一个整数 n(1≤n≤105),接下来一行输入 n 个整数 a**i(−109≤a**i≤109),每个整数用一个空格分隔。

输出格式:

输出一个整数,表示第一个没有重复的数字,如果没有输出 −1。

输入样例1:

5
-1 2 -1 3 0

输出样例1:

2

输入样例2:

6
-1 2 -1 2 3 3

输出样例2:

-1

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

n=int(input())
s=input().split(' ')
numd={}
for i in s:
numd[i]=numd.get(i,0)+1

flag=1
for i,j in numd.items():
if j==1:
flag=0
print(i)
break
if flag:
print(-1)

6、点咖啡,买单

1-6

作者 马杨珲

单位 浙江科技大学

下面的字典中存放着咖啡的价格:

coffee={'意式':10,'美式':12,'拿铁':15,'摩卡':16}

输入订单的咖啡种类喝数量,输出订单和价格。

输入格式:

在第一行中输入一个整数n,表示订单中有几种咖啡。接下来的n行,每一行输入一种咖啡及其杯数,空格分隔。

输出格式:

输出所点咖啡和订单的价格。

输入样例:

在这里给出一组输入。例如:

3
拿铁 3
摩卡 5
美式 1

输出样例:

在这里给出相应的输出。例如:

3杯拿铁咖啡
5杯摩卡咖啡
1杯美式咖啡
合计137元

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

coffee={'意式':10,'美式':12,'拿铁':15,'摩卡':16}
n=int(input())
money=0
tolmoney=0
li1=[]
li2=[]
count=0
for i in range(n):
str=input()
cof=str.split(' ')[0]
count=int(str.split(' ')[1])
money=coffee[cof]
tolmoney=int(money)*count+tolmoney
li1.append(cof)
li2.append(count)
for i in range(n):
print(f"{li2[i]}{li1[i]}咖啡")
print(f"合计{tolmoney}元")

7、众数 - 《Python编程基础及应用》第2版,习题6-1

1-7

作者 海洋饼干叔叔

单位 重庆大学

(众数)从键盘读入数量不确定的正整数,然后从中找出出现次数最多的数。操作者输入-1表示结束输入。后台测试数据将确保至少输入一个正整数,则出现次数最多的数是唯一的。

输入样例:

3
2
1
33
3
3
4
-1

输出样例:

众数:3

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

numd={}
while True:
i=int(input())
if i==-1:
break
numd[i]=numd.get(i,0)+1
maxv=0
maxk=0
for i,j in numd.items():
if maxv<=j:
maxv=j
maxk=i
print(f"众数:{maxk}")


8、列表去重重复人名

1-8

作者 刘琦

单位 天津城建大学

输入一系列以逗号分隔的英文人名,其中包含重复的名字,请将其中重复的名字去掉,输出包含不重复人名的列表,名字出现顺序与输入顺序相同。

输入格式:

一系列英文人名,以逗号间隔。

输出格式:

包含不重复人名的列表,名字出现顺序与输入顺序相同。

输入样例:

在这里给出一组输入。例如:

Calvin,bob,ada,McCord,Smith,Babbs,Calvin,Smith

输出样例:

在这里给出相应的输出。例如:

['Calvin', 'bob', 'ada', 'McCord', 'Smith', 'Babbs']

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

nameList=[]
nameSet=set()
str=input()
nameList=str.split(',')
j=0
for i in nameList:
if i in nameSet:
del nameList[j]
nameSet.add(i)
j+=1
if nameList[j-1] in nameSet:
del nameList[j-1]
print(nameList)

9、zust-sy8-2能被3,5和7整除的数的个数

1-9

作者 张银南

单位 浙江科技大学

求指定区间内能被3,5和7整除的数的个数(用集合实现)。

输入格式:

输入2个正整数a,b(1<=a<b<=10000000),用空格分隔。

输出格式:

输出大于等于a且小于等于b的能被3,5和7整除的数的个数。

输入样例:

在这里给出一组输入。例如:

1000 100000

输出样例:

在这里给出相应的输出。例如:

943

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

a,b=map(int,input().split(' '))
totalSet=set()
for i in range(a,b+1):
if i%3==0 and i%5==0 and i%7==0:
totalSet.add(i)
print(len(totalSet))

10、找出相同的和不同的班级

1-10

作者 巨同升

单位 山东理工大学

从键盘输入两行以分号或逗号分隔的班级名称,然后找出同时出现于两行中的班级名称以及只出现于第一行中的班级名称,最后按升序输出找到的班级名称。

输入格式:

在第1行输入一组班级名称,之间以分号分隔。

在第2行输入另一组班级名称,之间以逗号分隔。

输出格式:

在两行中分别按升序输出符合条件的班级名称。

输入样例:

金科2301;金融2301;金融2302;金融2303;金融本2304;经济2301;国贸2301;国贸2302;国贸2303;经济2302;经济2303
会计2301,会计2302,会计2303,会计2304,智能会计2301(实验),经济2301,经济2302,经济2303,金科2301, 信管2301,信管本2302,数管2301,数管2302

输出样例:

经济2301,经济2302,经济2303,金科2301
国贸2301,国贸2302,国贸2303,金融2301,金融2302,金融2303,金融本2304

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

class1List=input().split(';')
class2List=input().split(',')
class1Set=set(class1List)
class2Set=set(class2List)

list1=sorted(list(class1Set&class2Set))
list2=sorted(list(class1Set-class2Set))

for i in range(len(list1)):
print(list1[i],end='')
if i<len(list1)-1:
print(',',end='')
print()
for i in range(len(list2)):
print(list2[i],end='')
if i<len(list2)-1:
print(',',end='')

11、统计省份数量

1-11

作者 巨同升

单位 山东理工大学

编写程序实现:从键盘输入一批学生所属的省份名称,统计他们总共来自于几个不同的省份。

输入格式:

每行输入一个省份名称,以空行作为输入结束标志。

输出格式:

在一行中输出结果。

输入样例:

山东
北京
上海
新疆
山东
江苏
上海
新疆

输出样例:

来自于5个省份。

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

num_set=set()
count=0
while(True):
str=input()
if str in num_set:
continue
num_set.add(str)
count+=1
if str.strip() == "":
break
print(f"来自于{count-1}个省份。")

12、统计相同的与不同的省份

1-12

作者 巨同升

单位 山东理工大学

编写程序实现:从键盘输入两批学生所属的省份名称,统计出两批中相同的省份与不同的省份分别有哪些,要求按升序输出省份名称。

输入格式:

每行输入一批以空格分隔的省份名称,共两行。

输出格式:

分两行输出结果。

输入样例:

山东 北京 上海 新疆 山东 江苏 上海 新疆
山东 山西 江苏 山西 上海 山东

输出样例:

相同的省份:上海 山东 江苏
不同的省份:北京 山西 新疆

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

stu1=input().split()
stu2=input().split()
stu1_set=set(stu1)
stu2_set=set(stu2)

same=sorted(stu1_set&stu2_set)
diff=sorted(stu1_set^stu2_set)

print("相同的省份:"+' '.join(same))
print("不同的省份:"+' '.join(diff))

13、 zust-sl8-1去掉重复数字

1-13

作者 马杨珲

单位 浙江科技大学

呼入一个整数列表,去掉列表中的重复数字,输出升序排列后的列表。

输入格式:

输入一个列表。

输出格式:

输出结果列表。

输入样例:

在这里给出一组输入。例如:

[4, 2, 1, 2, 8, 4, 5, 3, 8]

输出样例:

在这里给出相应的输出。例如:

[1, 2, 3, 4, 5, 8]

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

li=eval(input())
num=set()
for i in li:
num.add(i)
li2=[]
for i in num:
li2.append(i)
li2.sort()
print(li2)

四、第4章 列表与元组

第4章

(一)编程题

编程题

1、保研资格

1-1

作者 mjye

单位 北京师范大学珠海校区

教育部学信网于2018年09月05日公布了《2019年具有推荐优秀应届本科毕业生免试攻读硕士研究生资格院校名单》中北京师范大学具有研究生保送资格。在保研类别中,主要有基于学习成绩的免试直推、特长生免试直推、校际间免试直推和免试推荐而保留入学资格等。但不管哪种类型,通过如果学生有挂科记录,则失去了保研资格。

现在给定一个班四门课程的学生成绩,请你统计具有保研资格的学生人数。

输入格式:

第一个行一个整数 n(1≤n≤100),表示有 n 个学生;
接下来 n 行,每一行四个整数,表示四门课程的成绩。

输出格式:

输出一个整数,表示具有保研资格的学生人数。

输入样例:

5
100 100 100 100
80 90 100 100
60 60 60 60
100 100 100 59
59 59 59 59 59

输出样例:

3

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

m=int(input())
count=m
for i in range(m):
n=input()
list=[]
for j in range(4):
list.append(n.split(' ')[j])
for k in list:
if int(k) < 60:
count-=1
break
print(count)

2、核心价值观

1-2

作者 田洪云

单位 临沂大学

社会主义核心价值观24个字分成3个层面:

国家层面的价值目标:

富强、民主、文明、和谐

社会层面的价值取向:

自由、平等、公正、法治

公民个人层面的价值准则:

爱国、敬业、诚信、友善

请用列表存储24字社会主义核心价值观,并按照三个层面进行输出。

输入格式:

无输入

输出格式:

按照三个层面输出

输入样例:


输出样例:

     国家层面     
富强、民主、文明、和谐
社会层面
自由、平等、公正、法治
个人层面
爱国、敬业、诚信、友善

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

list1=['国家层面','社会层面','个人层面']
list2=["富强","民主","文明","和谐",
"自由","平等",'公正','法治',
"爱国",'敬业','诚信','友善']
x=0
for i in list1:
print(" "+i+" ")
for j in range(4):
print(list2[x],end='')
if j < 3:
print("、",end='')
x+=1
print()

3、列表元素编号

1-3

作者 冰冰

单位 广东东软学院

要求输入一个列表,输出结果中为每个列表元素编号,要求每行显示一个元素。

输入样例1:

在这里给出一组输入。例如:

['alice', 'david', 'carolina']

输出样例1:

在这里给出相应的输出。例如:

1.alice
2.david
3.carolina

输入样例2:

在这里给出一组输入。例如:

['张三', '李四']

输出样例1:

在这里给出相应的输出。例如:

1.张三
2.李四

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

list=[]
count=0
x=''
str=input()
for i in range(len(str)):
if str[i]!='[' and str[i]!="'" and str[i]!=" " and str[i]!="]" and str[i]!='"':
if str[i]!=',':
x=x+''+str[i]
else:
list.append(x)
x=''
if str[i]==']':
list.append(x)
k=1
for i in list:
print(f"{k}.{i}")
k+=1

4、小动物造句

1-4

作者 马杨珲

单位 浙江科技大学

已知有三个列表:

who=['小羊羔','小猪仔','小兔子','小马驹']
where=['草地上','游乐园里','操场上','教室里']
what=['学习','看书','听歌','睡觉']

每个列表有4个元素,试编写程序,输入三个0~3范围内的整数(输入时用空格分隔),将其作为索引分别访问三个列表中的对应元素,然后进行造句。例如,输入的三个整数分别为1 0 3,则输出句子小猪仔在草地上睡觉

输入格式:

在一行中输入三个整数,空格分隔。整数的范围必须在0~3之间。

输出格式:

输出相应的句子。

输入样例:

在这里给出一组输入。例如:

2 3 0

输出样例:

在这里给出相应的输出。例如:

小兔子在教室里学习

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

who=['小羊羔','小猪仔','小兔子','小马驹']
where=['草地上','游乐园里','操场上','教室里']
what=['学习','看书','听歌','睡觉']
str=input()
list={}
list=str.split(" ")
print(who[int(list[0])]+"在"+where[int(list[1])]+what[int(list[2])])

5、判断完数

1-5

作者 成坤

单位 金华职业技术大学

判断一个正整数是否为完数。完数定义:一个数的所有因子(包括1)之和等于它自身,这个数就是完数。比如6=1+2+3,6是完数

输入格式:

例如:输入一个正整数 6

输出格式:

如果输入的正整数是一个完数,则例如:6=1+2+3

如果输入的正整数不是一个完数例如10,则输出“10不是一个完数。”

输入样例1:

在这里给出一组输入。例如:

6

输出样例1:

在这里给出相应的输出。例如:

6=1+2+3

输入样例2:

在这里给出一组输入。例如:

10

输出样例2:

在这里给出相应的输出。例如:

10不是一个完数。

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

import math
x=int(input())
sum=0
list=[]
flag=0
if x==1:
print("1=1")
else:
for i in range(1,int(x/2)+2):
if x%i==0:
sum+=i
list.append(i)
if x==sum:
print(f"{x}={list[0]}",end="")
for i in list:
if flag == 0:
flag = 1
continue;
print(f"+{i}",end="")
else:
print(f"{x}不是一个完数。")

6、输入数字1-7输出对应的星期几

1-6

作者 吴呈瑜

单位 浙江理工大学

输入一个表示星期几的数字(1—7),输出对应的“星期一、星期二、星期三、星期四、星期五、星期六、星期日”的中文字符串。

输入格式:

1

输出格式:

星期一

输入样例:

在这里给出一组输入。例如:

7

输出样例:

在这里给出相应的输出。例如:

星期日

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

data=["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]
x=int(input())
print(data[x-1])

7、输出中等成绩及序号

1-7

作者 python备课组

单位 福州大学至诚学院

编写程序实现:输入一个小组若干个学生成绩,统计这个小组位于[70,79]区间的所有成绩及序号。

输入格式及样例1:

在同一行若干个数,以英文逗号,分隔,其中有[70,79]的成绩。

80,50,60,70,80,75,94

输出格式及样例1:

每行输出一个学生的序号和成绩,如下所示。

第4个学生的成绩是70
第6个学生的成绩是75

输入格式及样例2:

在同一行若干个数,以英文逗号,分隔,其中没有[70,79]的成绩。

55,80,94,53

输出格式及样例2:

输出“没有这个区间的成绩”,如下所示。

没有这个区间的成绩

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

list=[]
str=input()
list=str.split(',')
flag=0
count=0
for i in list:
count+=1
if int(i) >= 70 and int(i) <= 79:
flag=1
print(f"第{count}个学生的成绩是{i}")
if flag==0:
print("没有这个区间的成绩")

8、根据学号输出信息

1-8

作者 殷伟凤

单位 浙江传媒学院

学号中包含了一个学生的相关信息,现有一学校的学号由8位数字组成,前两位表示学生入学年份,第3位和第4位表示学院代号,第5位表示某专业,第6位表示班级,最后两位表示在班级中的序号。该校共有11个学院,代号表示如下:

代号        学院名称
01 播音主持艺术学院
02 新闻与传播学院
03 电视艺术学院
04 动画与数字艺术学院
05 国际文化传播学院
06 华策电影学院
07 媒体工程学院
08 设计艺术学院
09 文化创意与管理学院
10 文学院
11 音乐学院

要求编程实现对学号进行分析,并输出相应信息。

输入格式:

输入学生姓名和学号,以空格隔开

输出格式:

输出学生的学院专业及班级信息

输入样例:

王雪梅 20071203

输出样例:

王雪梅是2020级媒体工程学院1号专业2班第03号学生

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

college=['','播音主持艺术学院','新闻与传播学院','电视艺术学院',
'动画与数字艺术学院','国际文化传播学院','华策电影学院',
'媒体工程学院','设计艺术学院','文化创意与管理学院','文学院','音乐学院']
str=input()
arr=[]
arr=str.split(' ')
sid=arr[1]
name=arr[0]
year='20'+sid[0:2]
if sid[2]=='0':
cid=int(sid[3])
else:
cid=int(sid[2:4])
zy=sid[4]
bj=sid[5]
hs=sid[6:8]
print(f'{name}{year}{college[cid]}{zy}号专业{bj}班第{hs}号学生')

9、点咖啡

1-9

作者 马杨珲

单位 浙江科技大学

根据顾客输入的数字形成咖啡订单。已知有两个元组:

coffee=('意式','美式','拿铁','摩卡')
ch=('冰','冷','热','烫')

每个列表有4个元素,试编写程序,输入三个数,前两个肯定在0~3范围内的整数(输入时用空格分隔),将其作为索引分别访问两个元组中的对应元素,表示咖啡的种类和冷热程度;最后一个整数表示咖啡的杯数。例如,输入的三个整数分别为1 0 2,则输出2杯冰美式

输入格式:

在一行中输入三个整数,空格分隔。前两个整数的范围必须在0~3之间,最后一个是正整数。

输出格式:

输出相应的订单。

输入样例:

在这里给出一组输入。例如:

2 3 3

输出样例:

在这里给出相应的输出。例如:

3杯烫拿铁

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

str=input()
arr=str.split(' ')
coffee=('意式','美式','拿铁','摩卡')
ch=('冰','冷','热','烫')
print(f'{arr[2]}{ch[int(arr[1])]}{coffee[int(arr[0])]}')

10、求出歌手的得分

1-10

作者 陈春晖

单位 浙江大学

输入一个正整数n (n>4),再输入n个实数,求出歌手的得分(保留2位小数)。设一歌唱评奖晚会上有n(n>4)个评委为歌手打分.评分规则:每个评委依次打分,再去掉2个最高分和2个最低分,计算余下的分数平均值为歌手的得分.

输入格式:

在第一行中输入n
在第二行中输入n个分数

输出格式:

在一行中输出平均分数

输入样例:

在这里给出一组输入。例如:

10
10 10 9 9 9 8 8 8 7 7

输出样例:

在这里给出相应的输出。例如:

aver=8.50

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

n=int(input())
str=input()
arr=str.split(' ')
score=[]
for i in range(len(arr)):
score.append(int(arr[i]))
score.sort()
sum=0
for i in range(2,n-2):
sum+=int(score[i])
print("aver={:.2f}".format(sum/(n-4)))

三、第3章 流程控制

第3章

(一)编程题

编程题

1、设置变量age表示年龄,通过判断age的值打印不同的内容

1-1

作者 王宇

单位 集美大学诚毅学院

设置变量age表示年龄,通过判断age的值打印不同的内容。age大于等于18,即输出成年人;age小于18则输出未成年人,age小于0则输出非法输入。尝试分别用两种方式来编写。(1、用单分支结构 2、用二分支结构)

输入格式:

输入年龄

输出格式:

根据输入,输出相应的情况

输入样例1:

在这里给出一组输入。例如:

18

输出样例1:

在这里给出相应的输出。例如:

成年人

输入样例2:

在这里给出一组输入。例如:

10

输出样例2:

在这里给出相应的输出。例如:

未成年人

输入样例3:

在这里给出一组输入。例如:

-1

输出样例3:

在这里给出相应的输出。例如:

非法输入

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

age=int(input())
if 0<=age<18:
print("未成年人")
elif age>=18:
print("成年人")
else:
print("非法输入")

2、判断是否闰年

1-2

作者 王宇

单位 集美大学诚毅学院

根据输入的年份,判断该年份是否闰年,并将结果显示出来。判断是否闰年的标准为:如果年份能被4整除、但不能被100整除或者能被400整除就是闰年。

输入格式:

输入年份

输出格式:

根据年份输入闰年或者非闰年

输入样例1:

在这里给出一组输入。例如:

1900

输出样例1:

在这里给出相应的输出。例如:

1900 不是闰年

输入样例2:

在这里给出一组输入。例如:

2000

输出样例2:

在这里给出相应的输出。例如:

2000 是闰年

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

year=int(input())
if year%4==0 and year%100!=0 or year%400==0:
print(f"{year} 是闰年")
else:
print(f"{year} 不是闰年")

3、设计一个“计算器“

1-3

作者 王宇

单位 集美大学诚毅学院

设计一个“计算器”,输入两个运算数x和y和运算符,实现加、减、乘、除四则运算,当进行除法运算时,若除数为0,则显示“除数不能为0!”。

输入格式:

输入两个运算数与运算符

输出格式:

输出表达式与结果

输入样例1:

在这里给出一组输入。例如:

1
0
+

输出样例1:

在这里给出相应的输出。例如:

1+0=1

输入样例2:

在这里给出一组输入。例如:

1
0
-

输出样例2:

在这里给出相应的输出。例如:

1-0=1

输入样例3:

在这里给出一组输入。例如:

1
0
*

输出样例3:

在这里给出相应的输出。例如:

1*0=0

输入样例4:

在这里给出一组输入。例如:

1
0
/

输出样例4:

在这里给出相应的输出。例如:

除数不能为0!

输入样例5:

在这里给出一组输入。例如:

1
2
/

输出样例5:

在这里给出相应的输出。例如:

1/2=0.5

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

num1=int(input())
num2=int(input())
symbol=input()
if symbol!='/':
if symbol=='+':
print("{}+{}={}".format(num1,num2,num1+num2))
elif symbol=='-':
print("{}-{}={}".format(num1,num2,num1-num2))
elif symbol=='*':
print("{}*{}={}".format(num1,num2,num1*num2))
else:
if num2==0:
print("除数不能为0!")
else:
print("{}/{}={:.1f}".format(num1,num2,num1/num2))


4、温度转换

1-4

作者 王宇

单位 集美大学诚毅学院

根据华氏和摄氏温度定义,转换公式如下:
C=(F−32)/1.8​F=1.8C+32
这里,C 表示摄氏温度,而 F 表示华氏温度。
请写程序根据温度的单位换算成另一种温度。

输入格式:

输入两行,
第一行输入一个大写字母 CF,表示输入温度的单位;
第二行输入一个实数,表示温度。

输出格式:

输出两行,
第一行输出一个大写字母 CF,表示输入温度的单位;
第二行输出一个数,表示对应单位的温度,保留两位小数。

输入样例1:

C
32

输出样例1:

F
89.60

输入样例2:

F
97.7

输出样例2:

C
36.50

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

symbol=input()
temperature=eval(input())
if symbol=='C':
c=1.8*temperature+32
print("F")
print("{:.2f}".format(c))
else:
f=(temperature-32)/1.8
print("C")
print("{:.2f}".format(f))

5、闰年次数

1-5

作者 mjye

单位 北京师范大学珠海校区

计算两个给定年份之间的闰年次数。

闰年的规则是:四年一闰,百年不闰,四百年再闰。(年份能够被4整除但不能被100整除算是闰年,年份能被400整除也是闰年)。

输入格式:

输入两行,第一行一个整数,表示起始年份 L,第二行一个整数表示终止年份 R,其中 1582<L<R<2050。

输出格式:

输出一个数,表示年份区间 [L,R] 之间的闰年次数。

输入样例:

2000
2020

输出样例:

6

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

start=int(input())
end=int(input())
count=0
for i in range(start,end+1):
if i%4==0 and i%100!=0 or i%400==0:
count+=1
print(count)

6、Addition and subtraction

1-6

作者 马杨珲

单位 浙江科技大学

Write a program to realize the basic arithmetic operation. Input two integers and an operator(+ or -), calculate the result and output it.

Sample Input #1:

2 + 4

Sample Output #1:

2 + 4 = 6

Sample Input #2:

2 - 4

Sample Output #2:

2 - 4 = -2

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

str=input()
num1=str.split(' ')[0]
num2=str.split(' ')[2]
symbol=str.split(' ')[1]
result=0
if symbol=='+':
result=int(num1)+int(num2)
else:
result=int(num1)-int(num2)
print("{} = {}".format(str,result))

7、求和

1-7

作者 王宇

单位 集美大学诚毅学院

对用户输入的数据求和,直到输入数据等于0时,结束循环。

输入格式:

连续输入多个数据,每行输入一个,当输入0时,结束输入

输出格式:

输出所有数据之和

输入样例:

在这里给出一组输入。例如:

1
2
3
4
5
6
0

输出样例:

在这里给出相应的输出。例如:

21

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

sum=0
i=0
while True:
i=int(input())
if i==0:
break
sum+=i
print(sum)

8、求斐波那契数列

1-8

作者 王宇

单位 集美大学诚毅学院

根据斐波那契数列的定义,F(0)=0,F(1)=1, F(n)=F(n–1)+F(n–2)(n≥2),输出不大于x的整数序列元素,元素之间用空格分隔,x的值由用户从键盘输入。 ‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬

输入格式:

从键盘输入一个不大于100的整数x

输出格式:

输出所有小于等于x的斐波那契数列

输入样例:

在这里给出一组输入。例如:

10

输出样例:

在这里给出相应的输出。例如:

0 1 1 2 3 5 8 

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

x=int(input())
i=0
a=0
b=1
if x==0:
print("0")
elif x==1:
print("0 1 1 ")
else:
print("0 1 ",end='')
while a+b<=x:
a=a+b
i+=1
print(f"{a} ",end="")
b=a+b
if b<=x:
print(f"{b} ",end="")
i+=1


9、奇偶求和

1-9

作者 zhuo

单位 山东科技大学

输入n个整数,分别输出奇数的和和偶数的和。

输入格式:

先输入一个正整数n, 然后依次输入n个整数,每个数占一行。

输出格式:

分别输出奇数的和和偶数的和(若没有则输出0),每个占一行。

输入样例:

在这里给出一组输入。例如:

5
1
2
3
4
5

输出样例:

在这里给出相应的输出。例如:

9
6

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

count=int(input())
sd=0
so=0
for i in range(count):
x=int(input())
if x%2==0:
sd+=x
else:
so+=x
print(so)
print(sd)

10、按格式输出九九乘法表

1-10

作者 dyx

单位 临沂大学

按照格式设计一个“九九乘法口诀表”,并打印出来。

输入格式:

无输入

输出格式:

注意:每个等式后跟一个空格

输入样例:


输出样例:

1*1=1 
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

for i in range(9):
for j in range(i+1):
print(f"{j+1}*{i+1}={(i+1)*(j+1)}",end=' ')
print("")

二、第2章 数字类型与字符串

第2章

(一)程序填空题

程序填空题

1、补充以下程序,以便实现计算圆环的面积:

1-1

作者 python课程组

单位 福州大学至诚学院

补充以下程序,以便实现计算圆环的面积,并保留3位小数输出:

from math import *
R=eval(input()) #外圆半径
r=eval(input()) #内圆半径
s=【1
print("圆环面积为:【2】".format(s))

输入样例:

16.2
9.4

输出样例1:

圆环面积为:546.888

答案:

【1】

pi*R**2-pi*r**2

【2】

{:.3f}

完整代码:

from math import *
R=eval(input()) #外圆半径
r=eval(input()) #内圆半径
s=pi*R**2-pi*r**2
print("圆环面积为:{:.3f}".format(s))

2、计算三位数每位上数字的和

1-2

作者 python课程组

单位 福州大学至诚学院

补充程序实现计算:
输入一个三位的整数(不接受实数),求这个三位数每一位上数字的和是多少?例如:输入:382,输出:和为13。

num=(input())
a=【1#百位上的数字
b=【2#十位上的数字
c=【3#个位上的数字
print('三个位数上数字和为:【4】' )

输入样例:

382

输出样例1:

三个位数上数字和为: 13

答案:

【1】

eval

【2】

num//100

【3】

num//10%10

【4】

num%10

【5】

,a+b+c

完整代码:

num=eval(input())
a=num//100 #百位上的数字
b=num//10%10 #十位上的数字
c=num%10 #个位上的数字
print('三个位数上数字和为:',a+b+c )

(二)编程题

编程题

1、学生入学年份

2-1

作者 马杨珲

单位 浙江科技大学

学生的学号中包含这该学生的入学年份,如学号为1230204032的同学就是2023年入学的(第2位和第3位表示年份的后两位)。输入学号,输出学生的入学年份。

输入格式:

输入学生的学号,学号长度为10,假设所有的学生都是2000年~2099年间入学的。

输出格式:

输出该同学的入学年份,年份包含4位数字。

输入样例:

在这里给出一组输入。例如:

1230204032

输出样例:

在这里给出相应的输出。例如:

2023

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

year=input()
year=year[1:3]
print("20"+year)

2 、身份证读取出生地区

2-2

作者 田洪云

单位 临沂大学

我国18位身份证号码的1-6位表示出生地编码,15-16位表示在该地区的出生序号,请输入一个18位的身份证号,获取该身份证所在地区及在该地区出生人口的序号,并输出:当天出生于XXXXXX地区的第XX个人。

输入格式:

18位整数

输出格式:

当天出生于XXXXXX地区的第XX个人

输入样例:

110101200104057856

输出样例:

当天出生于110101地区的第78个人

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

key=input()
area=key[0:6]
num=key[14:16]
print("当天出生于%s地区的第%s个人"%(area,num))

3 、将千克转换为磅

2-3

作者 mjye

单位 北京师范大学珠海校区

编写一个程序,要求用户输入一个以千克为单位的重量,然后将其转换为磅并输出。转换公式为:
Pounds=Kilograms×2.2

输入格式:

输入一个不超过100的非负数,表示以千克为单位的重量。

输出格式:

输出单位为磅的重量,四舍五入保留一位小数。

输入样例:

2

输出样例:

4.4

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

Kilograms=eval(input())
Pounds=Kilograms*2.2
print("{:.1f}".format(Pounds))

4、计算矩形的周长和面积

2-4

作者 mjye

单位 北京师范大学珠海校区

编写一个程序,要求用户输入矩形的长度 l 和宽度 w,然后计算并输出矩形的周长和面积。
公式:
Perimeter=2×(l+w)Area=l×w

输入格式:

输入两行,第一行一个正整数,表示矩形的长度 l,第二行一个正整数,表示矩形的宽度 w

输出格式:

输出两行,第一行一个整数,表示矩形的周长,第二行一个整数,表示矩形的面积。

输入样例:

1
2

输出样例:

6
2

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

l=eval(input())
w=eval(input())
Perimeter=2*(l+w)
Area=l*w
print("%d\n%d"%(Perimeter,Area))

5、统计单词的个数

2-5

作者 陈春晖

单位 浙江大学

输入一行字符,以回车结束,统计其中单词的个数。单词是中间没有空格的字符序列,各单词之间用空格分隔,单词间空格数可以是多个。

输入格式:

在一行中输入字符

输出格式:

在一行中输出单词的数量

输入样例:

在这里给出一组输入。例如:

Let's  go   to room  209

输出样例:

在这里给出相应的输出。例如:

count = 5

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

flag=0
count=0
i=0
str=input()+' '
while(i!=len(str)):
if(str[i]<='z' and str[i]>='a' or str[i]<='Z' and str[i]>='A' or str[i]<='9' and str[i]>='0' or str[i]=="'"):
flag=1
else:
if(flag==1):
count+=1
flag=0
i+=1
print("count =",count)

6、split函数分隔数据

2-6

作者 田洪云

单位 临沂大学

输入购买的3种商品的金额,计算应付钱数。

输入格式:

3种商品金额以空格间隔

输出格式:

应付钱数

输入样例:

35.2 36 34.5

输出样例:

应付105.7元

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

money=input()
money1=money.split(" ")[0]
money2=money.split(" ")[1]
money3=money.split(" ")[2]
total=float(money1)+float(money2)+float(money3)
print(f"应付{total}元")

7、计算矩形的周长和面积

2-7

作者 马杨珲

单位 浙江科技大学

输入一个电话号码,将中间的4位号码隐藏替换为4个星号,只保留前面3位数字和4位尾号。

输入格式:

输入一个电话号码。

输出格式:

隐藏后的号码。

输入样例:

在这里给出一组输入。例如:

13839283902

输出样例:

在这里给出相应的输出。例如:

138****3902

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

num=input()
str1=num[0:3]
str2=num[7:12]
str=str1+"****"+str2
print(str)

8、Print x n times

2-8

作者 马杨珲

单位 浙江科技大学

Enter n and x, and print x n times.

Input Specification:

Input an integer n and a character x .

Output Specification:

Print x repeatedly n times .

Sample Input:

5 *

Sample Output:

*****

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

str=input()
n=str.split(' ')[0]
x=str.split(' ')[1]
for i in range(int(n)):
print(f"{x}",end='')

一、第1章 开启Python学习之旅

第1章

(一)编程题

编程题

1、Hello Python

1-1

作者 马杨珲

单位 浙江科技大学

Just print this sentence: Hello Python!

Sample Input:


Sample Output:

Hello Python!

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

print("Hello Python!")

2 直接输出hello,china!

1-2

作者 dcq

单位 湖南工学院

本题无输入,直接输出hello,china!

输入格式:

无。

输出格式:

直接输出hello,china!。

输入样例:

在这里给出一组输入。例如:


输出样例:

在这里给出相应的输出。例如:

hello,china!

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

print("hello,china!")

3、输入姓氏

3-3

作者 thy

单位 临沂大学

编写一个程序,运行时用户输入姓氏后,输出,“您好,某同学!”

输入格式:

输入姓氏

输出格式:

您好,x同学!

输入样例:


输出样例:

您好,孙同学!

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

栈限制:8192 KB

答案:

a=input()
print("您好,",a,"同学!",sep="")