PTA的Python练习题(二)

继续在PTA上练习Python

(从 第2章-5 求奇数分之一序列前N项和  开始)

1.

x=int(input())
a=i=1
s=0
while(i<=x):
    s=s+1/a
    a=a+2
    i=i+1
print(‘sum = %.6f‘ %(s))

2.

求交错级数也考虑了很久,这里要引入flag来计算。有时候表达式写的太繁琐,程序就进入了死循环。

n=int(input())
s=a=0
b=-1
flag=1
for i in range(1,n+1):
        a=a+1
        b=b+2
        s=s+a/b*flag
        flag=-flag
print(‘%.3f‘ %(s))

3.

这道题做过类似的,不过不算逗号输入可以简单点写

x=int(input())
n=int(input())
i=0
s=0
while(i<n):
    s=s+x*10**i
    i=i+1
print(s)

但是这里要写逗号,还要在同一行输入:

之前的 .split( )意识是用空格来分隔输入,这里换成逗号

x,n=map(int,input().split(","))
i=0
s=0
while(i<n):
    s=s+x*10**i
    i=i+1
print(s)

4.

转换函数这道题本来是有题目缺陷的

用了下强制类型转换,答案是照输入的数来写的,一旦超过两位数就不能用了

a,b=map(int,input().split(","))
c=int(a/10)
d=c*b
e=a-10*c
f=e+d
print(f)

5.

比较大小,一个和冒泡排序有关的题目。自己写了很多很多if,最后还是参考了网上唯一的资料(链接

N = input().split()
a = []
for i in N:
    a.append(int(i))
a = sorted(a)
for i in range(3):
    if i == 2:
        print(a[i])
    else:
        print(a[i], end=‘->‘)

sorted排序函数的用法(链接

range函数的用法(链接

6.

题目没怎么看懂

a,b=map(int,input().split())
if b<a:
    print("Invalid.")
else:
    print("fahr celsius")
    while a<=b:
        d = 5*(a-32)/9
        if (d<=-10.0)or(d>=10.0):
            print("%d  %.1f" %(a,d))
        elif d<-0.0:
            print("%d  %.1f" %(a,d))
        a+=2

网上参考的代码,但是死活不输出结果,可能是我pycharm编译器的问题

原文地址:https://www.cnblogs.com/echoDetected/p/12260258.html

时间: 2024-10-31 19:30:27

PTA的Python练习题(二)的相关文章

PTA的Python练习题(二十)

(PTA的Python题目4-21到4-30暂未解答,之后会抽时间再回头解答题目)写道题预热一下 这里涉及到字典问题.在Python字典是一系列键-值对,每个键都与一个值相关联,你可以使用键来访问与之相关联的值.事实上,我们可将任何Python对象用作字典中的值.(摘自<Python编程 从入门到实践>)如果我们要获取与键相关的值,可指定字典名和放在方括号内的键. 先定义一个字典,再输入键返回值 Week={'1':'Mon','2':'Tue','3':'Wed','4':'Thu','5'

PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。

Python 练习 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的数,屏幕显示"太大了,请重新输入"如果小于预设的数,屏幕显示"太小了,请重新输入"如此循环,直到猜中,显示"恭喜你,猜中了!共猜了N次"N为用户猜测次数. 答案: import random def guess_number(): true_num = random.randint(1, 100) user_n

PTA的Python练习题(十二)-第4章-7 统计学生平均成绩与及格人数

第4章-7 统计学生平均成绩与及格人数 a=eval(input()) b=list(map(int,input().split())) sum=sum(b) c=[i for i in b if i>=60] count=len(c) print('average = %.1f'%(sum/a)) print('count = %d'%(count)) 如果这里用append输入只能实现一行一行输入,不能实现同一行输入 知识点(列表的操作): """ ①实现嵌套列表的

PTA的Python练习题(五)

昨天耽搁了一天,今天继续 从  第3章-5 字符转换 开始 1. a=input() b="" for i in a: if i >='0' and i <='9': b=b+iprint(int(b))#(写成b=i+b会有倒置输出的问题) 2. 知识点: python 列表统计元素频数.频率 描述 count() 方法用于统计某个元素在列表中出现的次数. 语法 count()方法语法:list.count(obj) 看这网上也没有简单易懂的答案,都是拿着字典算的题目,就

PTA的Python练习题(十五)

第4章-12 求满足条件的斐波那契数 a=eval(input()) b=c=1 d=1 for i in range(a): c=b b=d d=b+c if d>a: print('{}'.format(d)) break 第4章-13 求误差小于输入值的e的近似值 a=eval(input()) b=1 count=1 count2=0 for i in range(1,100000): b=b*i count2=count count=count+1/b if (count-count2

PTA的Python练习题(六)

从 第3章-8 字符串逆序 开始 1. n = str(input()) n1=n[::-1] print(n1) 2. 不是很好做这道题,自己还是C语言的思维,网上几乎也找不到什么答案 s = input() idx = s.find("#") s = s[:idx] ss = s[:idx] s_16 = "0123456789ABCDEFabcdef" for c in s: if c not in s_16: s = s.replace(c, '') fla

PTA的Python练习题(七)

不知不觉一个星期过去了,继续从 第3章-12 求整数的位数及各位数字之和 开始做题 1. 我原来想用题目漏洞做题的,不过想想还是算了自己写个完整的: a=int(input()) b=len(str(a))-1 d=b+1 count=0 for i in range(0,d): c=a/(10**b) c=int(c) e=c-1 count=count+c a=a-10**e*c b=b-1 print('{} {}'.format(d,count)) 这道题的int类型是不能直接求位数的,

PTA的Python练习题(十六)

第4章-15 换硬币 挺难的,这里学到一个range的用法: 也就是说range函数能实现顺序和倒序,取决于step是正是负 count = 0 x = int(input()) a = x // 5 for m in range(a,0,-1): b = (x - (m * 5)) // 2 for n in range(b,0,-1): c = x - (5 * m) - (2 * n) if m > 0 and n > 0 and c > 0: print("fen5:{

python/MySQL练习题(二)

python/MySQL练习题(二) 21.查询各科成绩前三名的记录:(不考虑成绩并列情况) 1 select score.sid,score.course_id,score.num,T.first_num,T.second_num from score left join 2 ( 3 select 4 sid, 5 (select num from score as s2 where s2.course_id = s1.course_id order by num desc limit 0,1