python编程练习7

python编程练习7_第1张图片
东临碣石,以观沧海

今天的题目也不是很难,但是我由于没有审清题目出错了,这个说不过去啊。
题目是这样的,编写一个函数,计算字符串中含有的不同字符的个数。字符在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)