美文网首页
python编程练习7

python编程练习7

作者: AlexDM | 来源:发表于2017-02-14 20:33 被阅读31次
    东临碣石,以观沧海

    今天的题目也不是很难,但是我由于没有审清题目出错了,这个说不过去啊。
    题目是这样的,编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。

    s = raw_input()
    n = 0
    for i in set(s):
        if ord(i) >= 0 and ord(i) <= 127:
            n += 1
    print n
    

    通过了测试,但是好像还是有点不符合题意,这不是一个函数
    看来还需要改一下

    #有人用字典来实现,通过统计key的数量,得到不同字符的个数
    def count_char(s):
        count_dict = {}
        for i in s:
            count_dict[i] = 1
     
        return len(count_dict.keys())
     
    a = raw_input('')
    print count_char(a)
    

    今天的第二道题目是数字颠倒
    题目是输入一个整数,将这个整数以字符串的形式逆序输出
    程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
    今天的题目和上次的有一些类似,之前提到的字符串倒排序的知识点,今天再复习一下。
    1、strA[::-1]
    2、strA.reverse()
    今天看到还有一个类似的函数reversed,以及sorted

    下面就来实现一下

    import sys
     
    s = raw_input()
    s = reversed(s)
    for i in list(s):
         sys.stdout.write(i)
    

    类似的还有将句子颠倒过来的
    将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”,所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符

    s=raw_input()
    r=s.split(" ")
    r = r[::-1]
    print ' '.join(r)
    # 这个还有一个简单的写法,就一行搞定
    print ' '.join(raw_input().split()[::-1])
    

    另外还有一个写法,是比较规范的,写了一些注释信息

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time    : 2017/1/11 15:48
    # @Author  : xudandan
    # @Site    : 
    # @File    : 句子逆序.py
    # @Software: PyCharm
     
    if __name__ == '__main__':
        string = raw_input()
        temp = string.split(' ')
        res = ''
        for val in temp[::-1]:
            res += val
            if val != temp[0]:
                res += ' '
        print res
    

    参考资料:
    https://www.nowcoder.com
    http://blog.sina.com.cn/s/blog_7f5bc3670102vlke.html

    相关文章

      网友评论

          本文标题:python编程练习7

          本文链接:https://www.haomeiwen.com/subject/mwdxwttx.html