python pta实验八

​​​​​​​

目录


一、判断题

  1. 在Python中使用浮点数除法运算符/时,结果总是浮点数,而使用整数除法运算符//时,如果一个或者两个操作数为浮点数,则结果为浮点数,但小数部分被舍弃。        T
  2. 在Python中,print函数输出不会自动换行,因此,如下两条语句:print(‘Hello ‘)print(‘World!’)输出结果为:Hello World!        F
  3. 无论while循环表达式判断结果是真是假,循环体至少执行一次。        F
  4. python中,循环体中的每条语句都需要缩进        T
  5. Python字典和集合都是无序的容器。        T
  6. 在Python异常处理中,只能有一个try,但可以有多个except。        T
  7. 文件打开的默认方式是只读。        T

二、选择题

  1. 以下Python变量名称中哪一个是不合法的?(123abc ) Python变量命名应注意:只能是字母、数字、下划线的组合,并且之间不能包含空格,数字不能放在变量名首位;区分大小写字母;不可以使用保留字。
  2. 关于 Python 中的复数,下列说法错误的是  C      A.表示复数的语法是 real + image j        B.实部和虚部都是浮点数        C.虚部必须后缀 j,且必须是小写        D.方法 conjugate 返回复数的共轭复数
  3. 以下表达式不正确的是:(B)A.”hello” * 2  B.”hello” + 2  C.”hello” + ‘2’  D.”hello” > “2”
  4. 关于Python的分支结构,以下选项中描述错误的是( A )。        A.分支结构可以向已经执行过的语句部分跳转        B.Python中if-elif-else语句描述多分支结构        C.Python中if-else语句用来形成二分支结构        D.分支结构使用if保留字
  5. 下列语句中,用来结束整个循环的是( break
  6. 关于组合数据类型的描述,正确的选项是:A         A.Python中最常用的映射类型的典型代表是字典类型        B.列表类型里的元素要求是同一种数据类型        C.元组采用大括号{ }方式表示        D.序列类型的元素可以用reverse()方法交换相邻元素的位置        (reverse()方法的功能不是交换相邻元素的位置,而是将序列类型的元素的顺序完全翻转;元组采用圆括号方式表示,大括号表示字典类型;列表类型里的元素不要求是同一种数据类型)
  7. 当try语句中没有任何错误信息时,一定不会执行( except )语句。
  8. 以下关于函数定义的描述错误的是:A         A.函数必须有返回值        B.函数使用return给出返回值           C.函数定义中可以指定无限多个参数         D.函数定义中可以为某些参数指定默认值
  9. 调用以下函数返回的值 None               def myfun():pass​​​​​​​​​​​​​​
  10. 关于 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))

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年5月28日
下一篇 2023年5月28日

相关推荐