pythontrip做题小计01

前言

 学习python的时候在pythontrip做了不少的题目,如今想想把我所做的题目解法分享出来和大家交流一下,若有不足请多多指教,谢谢!
 一篇博客是不太可能把所用做的题目写出来的,所有我这个系列的博客上,每一篇就记载十道题目,就是pythontrip之挑战python的一页所具有的题目。
 个人认为挑战python里面的题还是比较简单的。

题目:

01 a+b

给你两个数a、b,请你计算它们的和,并输出。
例如: a = 3, b = 2
则输出:5
提示:挑战python栏目的所有题目,题目中所给变量使用前不用声明,也不用赋值,系统自动赋值。
如本题,只需一行代码即可: print a + b
系统会自动为a和b赋值,并检查代码执行结果和标准答案是否相同。
 这一题就是智障,没有解释。

print(a+b)

02 列表排序

给你一个列表 L, 对L进行升序排序并输出排序后的列表。
例如:L = [8,2,50,3]
则输出:[2,3,8,50]
 这一题的排序主要用的是sorted()函数,有两种写法,当成语句使用还是函数使用都没有问题。

print sorted(L)

03 字符串逆序

给你一个字符串 a, 请你输出逆序之后的a。
例如:a=‘xydz’
则输出:zdyx
 这一题使用切片操作就好了,具体怎么使用可以自行百度,如果还是不懂的可以发评论我来解答也可.

print a[::-1]

04 输出字典key

给你一字典a,如a={1:1,2:2,3:3},输出字典a的key,以’,’连接,如‘1,2,3’。要求key按照字典序升序排列(注意key可能是字符串)。
例如:a={1:1,2:2,3:3}, 则输出:1,2,3
 ok,这一题的手法就比较巧妙了,讲一下思路,首先是把a中的所有keys取出,然后将其转化为字符串,再进行排序。
 简单讲一下几个函数:
 map()函数,逗号右边的东西进行逗号左边东西的操作,比如这一题就是把a的所有keys转化为字符。
 join()函数和split()函数进行的操作的相逆的,join()进行字符串的拼接,split()进行字符串的分割。

print(",".join(sorted(map(str,a.keys()))))

05 输出字符奇数位置的字符串

给你一个字符串 a, 输出a中奇数位置字符构成的字符串(位置编号从1开始)。
例如:a=‘xyzwd’
则输出:xzd
这一题也是一个语句的事情同样是利用切片操作。

print a[::2]

06 求解100以内的所有素数

输出100以内的所有素数,素数之间以一个空格区分(注意,最后一个数字之后不能有空格)。
这一题的我的做法就比较蠢了,一个个遍历。(刚刚再写这一题的时候。。。懵了一会儿。。才反应过来1不是素数。。)

for i in range(2,101):
    t = 1
    for j in range(2,i):
        if(i % j == 0):
            t = 0
            break
    if(t):
        print i,

07 求矩形面积

已知矩形长a,宽b,输出其面积和周长,面积和周长以一个空格隔开。
例如:a = 3, b = 8
则输出:24 22
这一题。。。我就不解释了。。。

print a*b,2*a+2*b

08 求中位数

给你一个整数列表L, 输出L的中位数(若结果为小数,则保留一位小数)。
例如: L=[0,1,2,3,4]
则输出:2
这一题也是简单到不知道怎么解释的。。。主要就是保留一位小数那里有些坑而已,除2的时候加个点零就好了.

L.sort()
if len(L) % 2 ==0:
    print (L[len(L)/2]+L[len(L)/2-1])/2.0
else:
    print(L[len(L)/2])

09 最大公约数

给你两个正整数a和b, 输出它们的最大公约数。
例如:a = 3, b = 5
则输出:1
这一题我用是蠢方法,反正不超时,第一步的if是如果a>b的话就交换a,b,这一个语句是非常酷的了。

if a>b:
    a,b=b,a
t = a
while(1):
    if(a % t ==0 and b % t ==0):
        print t
        break
    t -=1

10 最小公倍数

给你两个正整数a和b, 输出它们的最小公倍数。
例如:a = 3, b = 5
则输出:15
嗯。。。还是蠢方法。。。。

if a > b:
    a,b=b,a
t = b
while(1):
    if(t % a ==0 and t % b ==0):
        print t
        break
    t +=1

最后

没有想到居然写了好一会儿,第一次算是写完了,自我感觉不错,回想起刚刚学python的时候真的是一步一个坑/(ㄒoㄒ)/~~
虽然现在python水平比以前高了些许,但是还是要努力学习才行!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值