Python PTA


7-1 华氏温度到摄氏温度的转换(高教社,《Python编程基础及应用》习题3-9) (2 分)

从键盘读取华氏温度,转换成摄氏温度并输出,保留1位小数。 转换公式为:c=5/9*(f-32), 其中,f为华为温度,c为摄氏温度。

f=eval(input())
c=5/9*(f-32)
print("{:.1f}".format(c))

7-2 温度转换 (5 分)

本题要求编写程序,计算华氏温度150°F对应的摄氏温度。计算公式:2,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。

print("fahr = 150, celsius = {}".format(int(5*(150-32)/9)))

7-3 温度转换 (11 分)

温度刻画存在不同体系,摄氏度以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画。华氏度以1标准大气压下水的结冰点为32度,沸点为212度,将温度进行等分刻画。

根据华氏和摄氏温度定义,转换公式如下:

C = ( F – 32 ) / 1.8 F = C * 1.8 + 32

TempStr=input('')
if TempStr[-1] in ['F','f']:
    C=(eval(TempStr[:-1])-32)/1.8
    print("{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:
    F=1.8*eval(TempStr[:-1])+32
    print("{:.2f}F".format(F))
else :
    print("Error")

7-4 人民币与美元汇率兑换程序 (10 分) 

按照温度转换的设计思路,设计人民币与美元汇率兑换程序,按照1美元=7人民币的汇率 编写一个双向兑换程序。

T=input('')
if T[0] in ["$"]:
    a=eval(T[1:])*7
    print("¥{:.2f}".format(a))
elif T[0] in ["¥"]:
    b=eval(T[1:])/7
    print("${:.2f}".format(b))
else :
    print("输入格式错误")

7-5 三角形面积 (100 分)

已知三角形三边长(假设能构成三角形),计算三角形面积。

a=int(input())
b=int(input())
c=int(input())
p=(a+b+c)/2
s=(p*(p-a)*(p-b)*(p-c))**0.5
print("{:.1f}".format(s))

7-6 计算长方形的周长和面积 (20 分)

输入长方形的长和宽,要求计算长方形的周长和面积。

a,b=input().split()
a,b=eval(a),eval(b)
c=a+a+b+b
s=a*b
print("C = {}\nS = {}".format(c,s))

7-1 统计输入字符串中的单词个数及单词的平均长度(高教社,《Python编程基础及应用》习题7-7) (3 分)  

编写一个程序,接受用户输入的一行英文句子(假设该句子仅由英文单词及空格构成,不包括逗号等符号),统计并输出该行句子包含的单词个数及单词的平均长度。

s = str(input()) 
b=len(s.split(" "))
c=len(s)
d=(c-b+1)/b
print("{},{:.2f}".format(b,d))

7-2 给顾客找零钱的方案 (3 分)

这是一个编程题。题目:本题目要求掌握数值运算中的整数除法和求余数运算,并掌握输入输出的方法。 商店需要找钱给顾客,现在有足够的张数,面值分别是50元5元和1元。输入一个整数金额值给出找钱方案,假设人民币足够多,且优先使用面额大的钱币。

s=eval(input())
m50=s//50
m5=s%50//5
m1=s%50%5
print("50元面额需要的张数:{}".format(m50))
print("5元面额需要的张数:{}".format(m5))
print("1元面额需要的张数:{}".format(m1))

7-4 数七游戏 (10 分)

数七游戏是一种常见的行酒令,即多个人围成一圈,由一个人喊一个数开始,后面的人依次+1报数,如碰到含7的数字或是7的倍数,则要喊pass。输入两个正整数数m,n(1<=m<=n),请统计[m-n]之间需要喊pass的次数。

s=input().split(",")
m=eval(s[0])
n=eval(s[1])
t=0
flag=1
if flag==1:
    for i in range(1,n-m+1):
        if (m+i)%7==0 or "7" in str(m+i):
            t=t+1
        else:
            flag==0
if flag==1 and t!=0:
    print(t)
else:
    print("None")

7-5 整数的二进制相加 (30 分)

输入两个整数,大小在[0,63]之间。求它们的二进制和,二进制用8位表示。

a=eval(input())
b=eval(input())
print("{:0>8b}".format(a))
print("{:0>8b}".format(b))
print("{:->8}".format('-'))
print("{:0>8b}".format(a+b))

7-6 输入一行字符串,并将它转换成10进制数输出 (40 分)

输入一行字符串,去掉非16进制字符,并将它转换成10进制数输出。

a= input()
b = list(a)
c = []
for i in range(len(b)):
    if 'a'<= b[i] <= 'f' or 'A' <= b[i] <= 'B' or '0'<= b[i] <= '9':
        c.append(b[i])
result = ''.join(c)
print(result)
print(int(result,16))

7-7 计算M和N的多个结果 (10 分)

用户输入两个数M和N(用两个input语句输入),其中N是整数,计算M和N的5种数学运算结果,并依次输出,结果间用空格分隔。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

5种数学运算分别是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

M与N的和、M与N的乘积、M的N次幂、M除N的余数、M和N中较大的值

M=eval(input())
N=eval(input())
print("{} {} {} {} {}".format(M+N,M*N,M**N,M%N,max(M,N)))

7-1 输出字符-单分支 (15 分)

输入一个字符,如果是小写字母,转换为其大写形式,其余字符不变。

s = input()
if 'a' <= s <= 'z':
    print(chr(ord(s) - 32))
else:
    print(s)

7-2 虫子吃苹果后,还剩下几个完整苹果 (10 分)

你买了一箱n个苹果,很不幸的是买来的时候,箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?'

s=input()
n,x,y=(float(e) for e in s)
t=y//x
n-=t
n=int(n-1 if y!=x*t else n)
print(n)

7-3 数据比较 (10 分)

实现一个程序,用户输入四个数值(整数或浮点数)。先计算前三个数的平均值,然后把平均值与第四个数进行比较。如果相等,则程序在屏幕上输出“Equal”,如果平均值大于第四个数则输出“Larger”,否则输出“Smaller”

x1=eval(input())
x2=eval(input())
x3=eval(input())
x4=eval(input())
x5=(x1+x2+x3)/3
if x5==x4:
    print('Equal')
elif x5>x4:
    print("Larger")
else:
    print("Smaller")

7-4 对于给定的正整数N,求它的位数及其各位数字之和。 (15 分)

给定的正整数N,求它的位数及其各位数字之和。

a = input()
sum = 0
count = len(a)
for i in range(0,len(a)):
    sum = sum + int(a[i])
print(count,sum)

7-5 jmu-python-素数 (20 分)

输入一个数,判断其是否素数。素数是大于1的自然数中,除了1和它本身以外不再有其他因数。

a = int(input()) temp=False if a<=1: print(f'{a} is not prime') else: for i in range(2,a): if a%i==0: temp=True print(f'{a} is not prime') break if temp==False: print(f'{a} is prime')

7-6 折纸问题 (10 分)

一张纸厚0.2mm, 问至少对折多少次后,纸的厚度超过珠穆朗玛峰(8848m)

n=0.2/1000
m=0
while n<8848 :
    n=n*2
    m=m+1
print("折叠次数={}".format(m))
print("折叠后厚度={:.2f}".format(n))

7-7 jmu-python-统计成绩 (15 分)

输入一批学生成绩,计算平均成绩,并统计不及格学生人数。

x = int(input())
num = 0
count = 0
sum =0 
if(x<0):
    print("没有学生")
    exit(0)
while x >= 0:
    count = count+1
    if x < 60:
        num = num+1
    sum = sum + x
    x = eval(input())
ave = sum/count
if(count > 0):
    print("平均分=%.2f,不及格人数=%d" % (ave, num))
if(num==0):
    print("没有学生")
    exit(0)

  

7-8 判断素数 (20 分)

判断一个给定的正整数是否素数

num = int(input())
for item in range(num):
    a = int(input())
    for j in range(2,a):
        if a % j == 0:
            break
    else:
        print('Yes')
        continue
    print('No')

7-9 往返跑方阵 (10 分)

所谓“往返跑方阵”,是指对任意给定的n,将1到n×n的整数依次填写到n×n的方阵中,从右上角第1个格子开始,向下填充;倒底后,往左移动一列,改变方向,向上填充;到最上面一行后,再向左一列,改变方向,向下填充;.…… 以此类推,直到将n×n的方阵填满。本题要求构造这样的“往返跑方阵”。

n=eval(input())
for j in range(n):
    for i in range(n,1,-1):
        if i%2==0:
            print("{: >3}".format(n*i-j),end="")
        else :
            print("{: >3}".format(n*i-(n-1)+j),end="")
    print("{: >3}".format(j+1))

7-10 jmu-python-异常-学生成绩处理基本版 (15 分)

小明在帮老师处理数据,这些数据的第一行是n,代表有n行整数成绩需要统计。
数据没有错误,则计算平均值(保留2位小数)并输出。
数据有错误,直接停止处理,并且不进行计算。

注:该程序可以适当处理小错误,比如对于有些数据如果左右包含空格,先去掉
空格再行处理。

s=int(input())
sum=0
count=0
c=0
for i in range(s):
    a=input("")
    b=a.strip()
    flag=0
    for j in b:
        if j not in ['0','1','2','3','4','5','6','7','8','9']:
            flag+=1
    if flag==0:
        sum=sum+eval(b)
    else:
        c=a
        count+=1
        break
if count==0:
    print("All OK")
    print("avg grade = {:.2f}".format(sum/s))
    print("Process Completed")
else:
    print("Error for data \"{}\"! Break".format(c))
    print("Process Completed")

7-11 下标异常 (10 分)

输入一个非空的字符串,再输入一个索引值(Python中可以是正向索引,也可以是反向索引)

s=input()
try:
    t=eval(input())
    print(s[t])
except:
    print("输入下标有误")

7-12 jmu-python-数据异常处理 (20 分)

输入一组数据,求平均值。要求:

  • 数据正确,正确计算。
  • 数据有错误,能异常处理,输出错误信息,不进行计算。
sum=0
n=int(input())
try:
    for i in range(1,n+1):
        m=eval(input())
        sum=sum+m
    avg=sum/n
    print("正确")
    print("avg={:.2f}".format(avg))
except NameError:
    print("数值错误")
except ZeroDivisionError:
    print("除0错误,n不能等0")
print("程序结束")

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM