目录
一、判断题
- 在Python中使用浮点数除法运算符/时,结果总是浮点数,而使用整数除法运算符//时,如果一个或者两个操作数为浮点数,则结果为浮点数,但小数部分被舍弃。 T
- 在Python中,print函数输出不会自动换行,因此,如下两条语句:print(‘Hello ‘)print(‘World!’)输出结果为:
Hello World! F
- 无论while循环表达式判断结果是真是假,循环体至少执行一次。 F
- python中,循环体中的每条语句都需要缩进 T
- Python字典和集合都是无序的容器。 T
- 在Python异常处理中,只能有一个try,但可以有多个except。 T
- 文件打开的默认方式是只读。 T
二、选择题
- 以下Python变量名称中哪一个是不合法的?(123abc ) Python变量命名应注意:只能是字母、数字、下划线的组合,并且之间不能包含空格,数字不能放在变量名首位;区分大小写字母;不可以使用保留字。
- 关于 Python 中的复数,下列说法错误的是 C A.表示复数的语法是 real + image j B.实部和虚部都是浮点数 C.虚部必须后缀 j,且必须是小写 D.方法 conjugate 返回复数的共轭复数
- 以下表达式不正确的是:(B)A.”hello” * 2 B.”hello” + 2 C.”hello” + ‘2’ D.”hello” > “2”
- 关于Python的分支结构,以下选项中描述错误的是( A )。 A.分支结构可以向已经执行过的语句部分跳转 B.Python中if-elif-else语句描述多分支结构 C.Python中if-else语句用来形成二分支结构 D.分支结构使用if保留字
- 下列语句中,用来结束整个循环的是( break )
- 关于组合数据类型的描述,正确的选项是:A A.Python中最常用的映射类型的典型代表是字典类型 B.列表类型里的元素要求是同一种数据类型 C.元组采用大括号{ }方式表示 D.序列类型的元素可以用reverse()方法交换相邻元素的位置 (reverse()方法的功能不是交换相邻元素的位置,而是将序列类型的元素的顺序完全翻转;元组采用圆括号方式表示,大括号表示字典类型;列表类型里的元素不要求是同一种数据类型)
- 当try语句中没有任何错误信息时,一定不会执行( except )语句。
- 以下关于函数定义的描述错误的是:A A.函数必须有返回值 B.函数使用return给出返回值 C.函数定义中可以指定无限多个参数 D.函数定义中可以为某些参数指定默认值
- 调用以下函数返回的值 None def myfun():pass
- 关于 python 读取文件,下列描述错误的是:B A.关键字 with 会在程序不再需要访问文件或出现异常的情况下,关闭文件 。 B.Python 对数据量没有大小限制,需要读取的文件多大都可以。 C.函数 open()中如果输入参数只有文件名,那么 Python 会在当前执行的 .py 文件的所在目录中查找文件 。 D.读取文本文件时,Python 会将文件中的所有文本都解释为字符串
二、函数题fn
6-1 判断回文函数
请编写一个函数,判断输入字符串是否是回文。如果是,返回True,否则返回False。回文指的是,若某字符串正着读和倒着读都一样,则称该字符串为回文。比如madam、noon等。
- 函数接口定义:def isPalindrome(str): 其中str为任意字符串。
- 裁判测试程序样例:
# 请在这里填写答案
def main():
global input
input = input()
if isPalindrome(input):
print("yes")
else:
print("no")
if __name__ == '__main__':
main()
- 输入样例:refer laugh
- 输出样例:yes no
def isPalindrome(str):
text = []
str2=str.lower()
for i in str2:
if i.isalnum():
text.append(i)
for j in range(len(text)):
if text[j] != text[len(text) - j-1]:
return False
break
return True
def isPalindrome(str):
left = 0
right = len(str) - 1
while left <= right:
if str[left] == str[right]:
left += 1
right -= 1
else:
break
if left > right:
return True
else:
return False
6-2 计算一元二次方程的根
已知一元二次方程ax2+bc+c=0的三个系数,求解方程的实根。设计 equation(a,b,c)函数,三个参数分别为二次项系数a,一次项系数b和常数项系数c。计算Δ=b2−4ac。若Δ≥0,则有实根,返回两个实根,要求保留2位小数,英文逗号分隔;若Δ<0,则没有实根,返回“没有实根”。
计算方程两个根的公式为:x=2a−b±b2−4ac
- 函数接口定义:def equation(a,b,c):
- 裁判测试程序样例:
# 请在这里写答案
a,b,c=map(float,input().split())
print(equation(a, b, c))
输入样例1:1 -2 1
输出样例1:1.00,1.00
输入样例2:2 11 -6
输出样例2:0.50,-6.00
输入样例3:2 2 1
输出样例3:没有实根
import math
def equation(a,b,c):
num=b*b-4*a*c
if num>=0:
x1=(-b+math.sqrt(num))/2/a
x2=(-b-math.sqrt(num))/2/a
return "{:.2f},{:.2f}".format(x1,x2)
else:
return "没有实根"
三、编程
7-1 计算球体积
- 输入半径,计算球的体积。球体积公式是34πr3
- 输入格式:输入半径,可以是小数。
- 输出格式:输出球的体积,结果保留3位小数,π使用math库的常量。
- 输入样例:在这里给出一组输入。例如:2
- 输出样例:在这里给出相应的输出。例如:v=33.510
- 输入样例:在这里给出一组输入。例如:3.33
- 输出样例:在这里给出相应的输出。例如:v=154.675
import math
r = float(input())
v = 4/3*r**3*math.pi
print("v={:.3f}".format(v))
7-2 计算每月电费费用
计算电费。通常一度电的电费是0.53元,但超过50度后每度电的电费将增加费用。
输入用电量和超过50度后的每度电费用。
计算电费总价。结果保留2位小数。
输入格式:在一行内输入用电度数和超过50度的每度用电电费,两个数之间用空格隔开输出格式:输出电费总价。结果保留2位小数
输入样例1:40 0.8
输出样例1:cost = 21.20
输入样例2:150 0.8
输出样例2:cost = 106.50
x, a = map(float,input().split())
if x >= 50:
cost = 50 * 0.53 + (x - 50) * a
else:
cost = x * 0.53
print("cost = %.2f" % cost)
7-3 按顺序输出小于指定值的所有斐波纳契数
斐波那契数列的输出:按顺序输出所有小于指定值的斐波那契数。
输入格式:输入一个整数n(1<n≤10000)。
输出格式:输出斐波那契数列,要求只输出小于n的部分。每个数占5列,每行6个数。
输入样例1:100
输出样例1:
1 1 2 3 5 8
13 21 34 55 89
n = int(input())
count = 0
t,f = 1,1
while(t < n):
print("%5d"%(t),end="")
count =count+1
if count % 6 == 0:
print()
t,f = f,t+f
7-4 句子首字母变大写
输入一行句子将每个句子的首字母变为大写。每个单词之间都有空格,每个句子以?或.或!结尾。
- 输入格式:输入一段字符串 输出格式:将句子的首字母变大写输出字符串
- 输入样例:you are a sight sore eyes! you look well.
- 输出样例:You are a sight sore eyes! You look well.
s=input()
s=s.lower()
save=[]
print(chr(ord(s[0])-32),end='')
for i in range(1,len(s)):
if s[i] in'?.!':
save.append(i+2)
if i in save:
print(chr(ord(s[i])-32),end='')
else:
print(s[i],end='')
print(" ",end='')
7-5 计算每个学生的平均成绩
输入所有学生的姓名和成绩,以#
结束。输出每个学生的平均成绩表。
输入格式:每一行输入一个学生的姓名和成绩,以空格分隔。输入完成后以#
结束
输出格式:每行显示一个学生的姓名和平均成绩,姓名占8位宽度,平均成绩保留两位小数点。姓名和平均成绩之间用空格隔开。
输入输出样例1:
Maria 20
David 10
Bob 15
David 20
#
姓 名 平均成绩
Maria 20.00
David 15.00
Bob 15.00
输入输出样例2:
韩思 80
杨世忆 70
徐晓畅 100
黄嘉 95
刘天宇 60
叶鸿 80
韩思 85
杨世忆 65
徐晓畅 100
黄嘉 90
刘天宇 80
刘天宇 90
徐晓畅 100
徐晓畅 100
徐晓畅 100
#
姓 名 平均成绩
韩思 82.50
杨世忆 67.50
徐晓畅 100.00
黄嘉 92.50
刘天宇 76.67
叶鸿 80.00
items = dict()
while 1:
string = input()
if string == '#':
break
else:
name = string.split()[0]
score = float(string.split()[1])
if items.__contains__(name):
items[name][0] += score
items[name][1] += 1
else:
items[name] = [score, 1]
print("姓 名 平均成绩")
for k in items.keys():
items[k][0] /= items[k][1]
print(f"{k}".ljust(8), f"{float(items[k][0]):.2f}".rjust(4))
文章出处登录后可见!