SDUT PTA Python实验一 Python基础(注释版)

目录

7-1 sdut-温度转换

7-2 sdut-oop-1 简单的复数运算

7-3 sdut-入门-转换字母

 7-4 sdut-计算球体积

7-5 sdut-数据类型-1-求班级男女生比例

7-6 sdut-常用类-骄傲的代价

7-7 sdut-求奇数分之一序列的前N项近似和

7-8 sdut-求平方与倒数序列的近似和

7-9 sdut-入门-三个整数和、积与平均值

7-10 sdut-入门-买糖果

7-1 sdut-温度转换

输入一个华氏温度,输出摄氏温度,其转换公式为:C=5(F-32)/9。

输入格式:

输入数据只有一个实数,即华氏温度。

输出格式:

输出数据只有一个,即摄氏温度,保留2位小数。

提示:输出数据时小数点保留2位小数的实现方式如下。

(1) PYTHON实现:

print("%.2f" %(c))      #其中,c为变量 (方式1)
print("{:.2f}".format(c))  #其中,c为变量(方式2)

(2)Java实现:

System.out.printf("%.2f",c);  //c为变量

输入样例:

32.0

输出样例:

0.00

 答案:

f=float(input())#输入浮点型
c=5*(f-32)/9
print("%.2f"%(c))

7-2 sdut-oop-1 简单的复数运算

设计一个类Complex,用于封装对复数的下列操作:
成员变量:实部real,虚部image,均为整数变量;
构造方法:无参构造方法、有参构造方法(参数2个)
成员方法:含两个复数的加、减、乘操作。
    复数相加举例: (1+2i)+(3+4i)= 4 + 6i
    复数相减举例: (1+2i)-(3+4i)= -2 - 2i
    复数相乘举例: (1+2i)*(3+4i)= -5 + 10i
要求:对复数进行连环算术运算。

提示:如果用PYTHON语言实现,不必设计Complex类,可以使用内置的复数数据类型,完成复数的算术运算。

输入格式:

输入有多行。
第一行有两个整数,代表复数X的实部和虚部。
后续各行的第一个和第二个数表示复数Y的实部和虚部,第三个数表示操作符op: 1——复数X和Y相加;2——复数X和Y相减;3——复数X和Y相乘。
当输入0 0 0时,结束运算,输出结果。

输出格式:

输出一行。
第一行有两个整数,代表复数的实部和虚部,实部和虚部之间用1个空格分开。

输入样例:

1  1
3  4  2
5  2  1
2  -1  3
0  2  2
0  0  0

输出样例:

5 -7

 答案:

a,b=map(int,input().split())#得到输入的去空格的int型数值,分别赋予a,b
x=complex(a, b)#x用来表示一个复数,比如complex(1,2)实为1+2i
while 1:#当有输入时
    a,b,c=map(int,input().split())
    y = complex(a, b)
    if (y==0&c==0):#输入000时输出
        print(int(x.real),int(x.imag))#.real表示实部,.imag表示虚部
        break
    if c==1:
        x=x+y
    elif c==2:
        x=x-y
    else :
        x=x*y

7-3 sdut-入门-转换字母

输入格式:

从键盘上输入一个小写字母。

输出格式:

小写字母装换成大写字母输出。

输入样例:

a

输出样例:

A

答案: 

a=input()
print(a.upper())

 7-4 sdut-计算球体积

根据输入的半径值,计算球的体积。

提示:PI=3.1415926。

输入格式:

输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。

输出格式:

输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。

提示:PYTHON3输出三位小数的语句:print("%.3f" % (v)) ;其中,v为变量。

输入样例:

1
1.5

输出样例:

4.189
14.137

答案: 

while 1:#while,try,except实现多组输入
    try :
        r = float(input())
        PI = 3.1415926
        v = 4/3 * PI * r * r * r
        print("%.3f" %(v))
    except :
        break;   

7-5 sdut-数据类型-1-求班级男女生比例

新的一学期开始,HH同学在学校认识了很多的同学,但是他却不知道自己本班男生和女生的比例是多少。对于学过编程的你一定简单极了吧。你能帮他算出男生女生的百分比吗?

输入格式:

每行输入正整数男生和女生的数目n,m(0

输出格式:

输出男生女生所占的比例(保留小数点后两位)。

输入样例1:

20 30

输出样例1:

40.00% 60.00%

输入样例2:

10 10

输出样例2:

50.00% 50.00%

输入样例:

50 0

输出样例:

100.00% 0.00%

答案: 

n, m = map(int, input().split())
sum = n+m
x = n/sum*100
y = m/sum*100
print("%.2f%%" %x, "%.2f%%" %y)

7-6 sdut-常用类-骄傲的代价

E_star由于在上次考试中取得了很好的成绩他开始骄傲起来,此时von看不下去了,于是他把E_star叫来说,最近一道A+B编程题目不会,想让E_star来帮他解答,E_star二话没说结一口答应了,等到von把题目发给E_star的时候他傻眼了。这下,知道骄傲的后果了吧。

JAVA语言实现提示:可使用JDK标准API中的类:java.math.BigInteger。

输入格式:

题目有多组数据,处理到文件结束。输入的第一行包含一个数T,代表测试组数;

接下来有T行,每行有两个整数A和B,中间用空格分隔。

提示:整数可能超出long类型的取值范围。B不为0。

输出格式:

对于每一组数据,输出5行数据,分别为2个数的和、差、积、商(整除)、余数。形式为:

A+B=C,其中C是A与B的加和。

A-B=D,其中D是A与B的差。

A*B=E,其中E是A与B的乘积。

A/B=F,其中F是A与B的商(整数)。

A%B=G,其中G是A除以B的余数。

输入样例:

3
1 2
24 6
12313131231231232131 31232131315465436657434321

输出样例:

1+2=3
1-2=-1
1*2=2
1/2=0
1%2=1
24+6=30
24-6=18
24*6=144
24/6=4
24%6=0
12313131231231232131+31232131315465436657434321=31232143628596667888666452
12313131231231232131-31232131315465436657434321=-31232119002334205426202190
12313131231231232131*31232131315465436657434321=384565331518372453687453692411523206037368051
12313131231231232131/31232131315465436657434321=0
12313131231231232131%31232131315465436657434321=12313131231231232131

答案: 

while 1:
    try:
        n = int(input())
        while n:
            n =n-1
            a, b = map(int, input().split())
            print("%d+%d=%d" %(a, b, a + b))
            print("%d-%d=%d" %(a, b, a - b))
            print("%d*%d=%d" %(a, b, a * b))
            print("%d/%d=%d" %(a, b, a // b))
            print("%d%%%d=%d" %(a, b, a % b))
    except:
        break;

7-7 sdut-求奇数分之一序列的前N项近似和

计算序列 1 + 1/3 + 1/5 + ... 的前N项近似和。

Python提示:用math模块的ceil函数。
ceil函数帮助信息:Return the ceiling of x as an Integral. This is the smallest integer >= x.

ceil函数使用举例:

import math
print(math.ceil(12.23))     #输出:13

输入格式:

在一行中给出一个正整数N。

输出格式:

在一行中按照“sum≈S”的格式输出近似和S。S是大于序列和的最小整数。

输入样例:

23

输出样例:

sum≈3

答案: 

import math
a=int(input())
sum=1
x=1
for i in range(1,a):#统计循环次数,由于前面定义了1,所以只需要循环22次就可以,1到a-1,例如:range(1,3)表示1,2
    x=x+2
    sum=sum+1/x
print("sum≈%d" %(math.ceil(sum)))

7-8 sdut-求平方与倒数序列的近似和

对两个正整数m和n(m≤n)编写程序,计算序列近似和。近似和定义为小于序列和的最大整数。

Python实现提示:用math模块的floor函数。floor函数帮助信息:Return the floor of x as an Integral. This is the largest integer <= x.

floor函数使用举例:

import math
print(math.floor(12.43))    #输出:12

输入格式:

在一行中给出两个正整数m和n(m≤n),其间以空格分开。

输出格式:

在一行中按照“sum≈S”的格式输出近似和S。

输入样例:

5  10

输出样例:

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

sum≈355

答案: 

import math
n, m = map(int, input().split())
sum = 0
for i in range(n, m + 1):
    sum = sum + i*i + (1/i)
 
print("sum≈%d" %(math.floor(sum)))    #输出:12

7-9 sdut-入门-三个整数和、积与平均值

给出三个整数,请你设计一个程序,求出这三个数的和、乘积和平均数。

输入格式:

输入只有三个正整数a、b、c。数据之间用一个空格隔开。

输出格式:

输出一行,包括三个的和、乘积、平均数。 数据之间用一个空格隔开,其中平均数保留小数后面两位。

输入样例:

2 3 3

输出样例:

8 18 2.67

答案: 

a, b, c = map(int, input().split())
x = a + b + c
y = a * b * c
z = x/3
print("%d %d %.2f"  %(x, y, z))

7-10 sdut-入门-买糖果

小瑜是个爱吃糖果的馋鬼,天天嚷着要爸爸买糖果,可是爸爸很忙,哪有时间啊,于是就让小瑜自己去了。

糖果3角钱一块,爸爸给小瑜n元钱,请你告诉小瑜最多能买几块糖,还剩几角钱?

输入格式:

输入爸爸给小瑜的钱n元,n为整数。

输出格式:

小瑜最多能买回的糖块数以及剩下的钱(单位为:角),用1个空格分隔。

输入样例:

2

输出样例:

6 2

答案: 

import math
n = int(input())
m = n * 10
x = math.floor(m/3)  #floor函数,12.43返回12
y = m % 3
print(x, y)

 

你可能感兴趣的:(算法)