Python3 基础提高: 做练习题巩固语法

1.输入一个字符串,例如:s = "abcd\nefgh\nijkl\nmnop" ,以\n 为分割点,对各个部分的字符进行反转,对各个部分进行反转

效果如下:

vert_mirror(s) => "dcba\nhgfe\nlkji\nponm" 

hor_mirror(s) => "mnop\nijkl\nefgh\nabcd"

代码:

s = "abcd\nefgh\nijkl\nmnop"


def vert_mirror(s):                                                     
...: return '\n'.join(line[::-1] for line in s.split('\n'))              #  for line in s.split('n') 对字符串s,以\n为分割的分段,进行反转,然后,再join合起来


 def hor_mirror(s):
...: return '\n'.join(s.split('\n')[::-1])                                    # 先对字符串s进行split,然后将整个字符串进行反转,然后再join合并起来
a = vert_mirror(s),hor_mirror(s)
print(a)

 
2.给定一个小写字符串,没有空格,将偶数索引和奇数索引的字母大写,并返回如下所示的值。索引0也会被考虑。
 
For example, capitalize("abcdef") = ['AbCdEf', 'aBcDeF']. 
 
代码:
str = 'AbCdEfG'
def capitalize(s):
    s = ''.join(c if i%2 else c.upper() for i,c in enumerate(s))              # enumerate() 函数获取字符串s的序号和值,偶数字符不变,基数字符变成大写,然后将所有字符join起来
    return[s, s.swapcase()]                                                                # 返回字符串,和swapcas()函数,将字符大小全部调换过的值
m=capitalize(str)
print(m)
 
3.将学校的课程名,进行排序,不区分大小写
 
代码:
c=['English', 'Geometry', 'History','Algebra']

def sorter(textbooks):
    return sorted(textbooks,key=str.lower)                                        # sort排序,对列表进行操作,不生成新对象。sorted对可迭代对象进行操作,生成新对象
a=sorter(c)                           # key:用列表元素的某个属性和函数进行作为关键字。

                             # 在这里,就是拿每个元素的小写属性(str.lower)作为关键字来比较 进行排序

print(a)

4.

一个单词,的字母如abde,下标,a为1,b为2,d为3,e为4.  假设某个字母,下标+97和ascii码表里 字母和数字的对应关系相等,则符合要求。给一个单词,求里面有几个字母符合要求。

 

代码:

def solve(arr):
...: return [ sum(c == chr(97+i) for i,c in enumerate(w[:26].lower())) for w in arr]
...: test=['abide','xyz']
...: a=solve(test)
...: print(a)

 

posted @ 2017-11-12 17:06  谢亚波  阅读(1033)  评论(0编辑  收藏  举报