python,编写程序,统计大小写字母,数字及其他字符的数量,并以字典形式输出

emmmm,各位大佬帮帮忙,其实三个都不会啊
2024-11-11 19:16:52
推荐回答(2个)
回答1:

a = "aAsmr3idd4bgs7Dlsf9eAF"

请将a字符串的数字取出,并输出成一个新的字符串。

请统计a字符串出现的每个字母的出现次数(忽略大小写,a与A是同一个字母),并输出成一个字典。 例 {'a':3,'b':1}

请去除a字符串多次出现的字母,仅留最先出现的一个,大小写不敏感。

例 :'aAsmr3idd4bgs7Dlsf9eAF',经过去除后,输出 'asmr3id4bg7lf9e'

a="aAsmr3idd4bgs7Dlsf9eAF"

def fun1_2(x):#1&2

x=x.lower()#大小写转换

num=[]

dic={}

for i in x:

if i.isdigit():#判断如果为数字,请将a字符串的数字取出,并输出一个新的字符串

num.append(i)

else:#2请统计a字符串出现每个字母的出现次数(忽视大小写),并输出一个字典。例:{'a':3,'b':1}

if i in dic:

continue

else:

dic=x.count(i)

new=''.join(num)

print"the new numbers string is:"+new

print"the dictionary is:%s"%dic

fun1_2(a)

def fun3(x):

x=x.lower()

new3=[]

for i in x:

if i in new3:

continue

else:

new3.append(i)

print''.join(new3)

fun3(a)

扩展资料:

printf函数使用注意事项

1、域宽

%d:按整型数据的实际长度输出。

如果想输出指定宽度可以指定域宽,%md-->m域宽,打印出来以后,在控制台上,显示m位;

如果要打印的数的位数如果超过我们设定m则原样输出;

如果要打印的数的位数如果小于设定的位数,则补空白,具体如下:

如果m为正数,则左对齐(左侧补空白);

如果m为负数,则右对齐(右侧补空白)。

2、转义字符

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。

如:printf("%f%%",1.0/3);输出结果:0.333333%。

回答2:

#!/usr/bin/python
# -*- coding:utf-8 -*-
# @File    : Statistics.py 
"""
统计字符串中大写的字母、小写的字母、数字及其他字符的个数,以字典形式返回
"""


def statistic_string(ostr):
    """
    统计字符串中大写的字母、小写的字母、数字及其他字符的个数,以字典形式返回
    """
    uppers = 0
    lowers = 0
    digits = 0
    others = 0
    odict = {}

    for istr in ostr:
        if istr.isupper():
            uppers += 1
        elif istr.islower():
            lowers += 1
        elif istr.isdigit():
            digits += 1
        else:
            others += 1
    else:
        odict.setdefault('uppers', uppers)
        odict.setdefault('lowers', lowers)
        odict.setdefault('digits', digits)
        odict.setdefault('others', others)
    return odict

if __name__ == '__main__':
    astr = raw_input(u'请输入一个字符串:')
    print statistic_string(astr)