python Tip 算法题目

题目链接:http://www.pythontip.com/coding/code_oj

1、a + b 

给你两个数a、b,请你计算它们的和,并输出。

例如: a = 3, b = 2

则输出:5

print(a+b)

2、列表排序 

给你一个列表 L, 对L进行升序排序并输出排序后的列表。

例如:L = [8,2,50,3]

则输出:[2,3,8,50]

print(sorted(L))#不改变L本身
#print(L)

L.sort() #直接对L操作
print(L)
3、字符串逆序 

给你一个字符串 a, 请你输出逆序之后的a。

例如:a=‘xydz’

则输出:zdyx

print(a[::-1])

————————————————————————————————————————————————————————

小结:a[::-1]与a[:-1]的区别

设有一个元组或者列表

a = (1,2,3,4)
b = [1,2,3,4]

则a[::-1]和b[::-1]的含义是将元组或列表的内容翻转

a[::-1]  # 结果为(4,3,2,1)
b[::-1]  #结果为[4,3,2,1]

a[:-1]表示从元组中切片,默认从第一个元素开始,到倒数第一个元素前面的那个元素为止

a[:-1] #结果为(1,2,3)
b[:-1] #结果为[1,2,3]

———————————————————————————————————————————————————————

4、输出字典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

#a={1:1,2:2,3:3}
b=[]
for key in a.keys():
    b.append(key)
b.sort()
print(','.join(str(x) for x in b))

————————————————————————————————————————————————————————

小结:如何遍历字典(如何遍历字典的键?值?整个字典?)

#(1)遍历字典中的键: 
for key in a.keys():
#(2) 遍历字典中的值: 
for val in a.values(): 
#(3)遍历整个字典: 
for key,val in a.items():

小结:join的用法:

1、','.join(b) 意思就是将b字符串用','拼接起来并组成一个字符串。

2、str(i)把i这个整数转化为字符串 

print(','.join(str(x)for x in b))

————————————————————————————————————————————————————————

5、输出字符奇数位置的字符串

给你一个字符串 a, 输出a中奇数位置字符构成的字符串(位置编号从1开始)。

例如:a=‘xyzwd’

则输出:xzd

简单暴力循环

a='xyzwd'
b=[]
for i in range(0,len(a),2):
    b.append(a[i])
print(''.join(b))
print(''.join(str(x)for x in b))

一行代码搞定(这两行的意思都是:表示从0~len(a)-1 每次间隔两个字符)

a='xyzwd'
print(a[0:len(a):2])
print(a[::2])

————————————————————————————————————————————————————————

6、求解100以内的所有素数 

输出100以内的所有素数,素数之间以一个空格区分(注意,最后一个数字之后不能有空格)。
def isPrime(n):
    if n<2:
        return False
    else:
        for i in range(2,n):
            if n%i==0:
                return False
    return  True
a=[]
for i in range(2,101):
    if isPrime(i):
        a.append(i)
print(" ".join(str(x) for x in a))

7、求矩形面积 

a=3; b=8
x=a*b
y=2*(a+b)
print("%d %d"%(x,y))

8、求中位数 

给你一个整数列表L, 输出L的中位数(若结果为小数,则保留一位小数)。

例如: L=[0,1,2,3,4]

则输出:2

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