精华内容
下载资源
问答
  • 输入一个字符串,计算其中出现的不同数字,并且重复出现的数字只计算一次

    描述:输入一个字符串,计算其中出现的不同数字的和。例如,输入 ‘abc12dk23’,则出现的数字为1、2、3(重复出现的数字只计算一次),输出 ‘6’

    输入 输出
    abc231mnk21 6

    基本思路:
    1. 去重
    2. 提取整型数字
    3. 求和

    由于我本人也只是学了点python的基础知识,这道题是偶尔得来的,尝试做了一下。代码可能不是最优解,但还是希望对有需要的同学有帮助。

    import re
    
    s = input("请输入一个字符串:")
    
    li = [] #定义list,记录去重后的字符串,以list形式存储
    sum = 0 # 定义变量,记录数字的和
    
    # 1.去重
    for i in s: # 遍历字符串
        if i not in li:
            li.append(i)
    
    # 2.提取列表list中的数字
    #将li转换成以“,”为分隔符的字符串
    li_string = ",".join(li) 
    
    #使用re模块下的方法——findall对li_string进行正则匹配,提取出所有的数值型字符串
    li_list = re.findall(r"\d+",li_string) 
    
    #将得到的li_list中的元素转换为int型
    li_int = list(map(int,li_list))
    
    #求和
    for i in li_int:
        sum = sum + i
    
    print(li)
    print(sum)
    
    

    运行结果:
    在这里插入图片描述
    对该程序进行优化:

    s = input("input string:")
    li = []
    sum = 0
    for i in s:
        if '0' <= i <= '9' and i not in li:
            li.append(i)
            sum += int(i)
    print(sum)
    

    运行结果:
    在这里插入图片描述

    展开全文
  • 两个超长数字字符串Python】 ‘123…0’ ‘333…9’ 2:分析 如: ‘12345’ ‘67890’ 分析思路:两个超长数字字符串 1:先把两个字符串强制转换成数字 2:把两个数字相加即可得到...

    1:题目

    求两个超长数字字符串的和【Python】
    ‘123…0’
    ‘333…9’

    2:分析

    如:
    ‘12345’
    ‘67890’
    分析思路:求:求两个超长数字字符串的和
    1:先把两个字符串强制转换成数字
    2:把两个数字相加即可得到加和

    3:代码如下:

    str1 = '1233333336666666663345'
    str2 = '678333366666666666666633390'                
    num1 = 0
    num2 = 0
    for i in range(len(str1)):
        #1先把字符串强制转换成数字
        values = int(str1[i])
        num1 += values *(10**(len(str1)-1-i))   #由于range()为左开右闭
    print('第一个字符串数字为:%i'%num1)
    for i in range(len(str2)):
        #1
        values = int(str2[i])
        num2 += values *(10**(len(str2)-1-i))
    print('第二个字符串数字为:%i'%num2)
    #2把两个数字相加即可得到加和
    sum = num1 + num2
    print('两个字符串数字加和为:%i'%sum)
    

    结果:

    第一个字符串数字为:1233333336666666663345
    第二个字符串数字为:678333366666666666666633390
    两个字符串数字加和为:678334600000003333333296735

    注:代码缺点
    字符串长度超出一定数量,数字相加会出现溢出,好的算法后续补充!!!

    展开全文
  • Python——字符串

    2017-04-13 16:10:01
     所有标准的序列操作(索引、分片、乘法、判断成员资格、长度、取最小值最大值)对字符串同样适用。但是,请记住字符串都是不可变的。 二、字符串格式化:精简版  字符串格式化使用字符串格式化操作符即百分...

    一、基本字符串操作

            所有标准的序列操作(索引、分片、乘法、判断成员资格、求长度、取最小值和最大值)对字符串同样适用。但是,请记住字符串都是不可变的。

    二、字符串格式化:精简版

            字符串格式化使用字符串格式化操作符即百分号%来实现。在%的左侧放置一个字符串(格式化字符串),而右侧则放置希望格式化的值。可以使用一个值,如一个字符串或者数字,也可以使用多个值的元组或者字典。

    1. >>> format = "Hello. %s. %s enough for ya?"  
    2. >>> values = ('world''Hot')  
    3. >>> print(format % values)  
    4. Hello. world. Hot enough for ya?  
            注意:如果使用类表或者其他序列代替元组,那么序列就会被解释为一个值。只有元组和字典可以格式化一个以上的值。

            格式化字符串的 %s 部分称为转换说明符(conversion specifier),它们标记了需要插入转换值的位置。

    三、字符串格式化:完整版

            1. 如果右操作数是元组的话,则其中的每一个元素都会被单独格式化,每个值都需要一个对应的转换说明符。

            2. 基本的转换说明符包括以下部分。

                (1)%字符:标记转换说明符的开始。

                (2)转换标志(可选):- 表示左对齐;+ 表示在转换值之前要加上正负号;“ ”(空白字符)表示正数之前保留空格;0表示转换值若位数不够则用 0 填充。

                (3)最小字段宽度(可选):转换后的字符串至少应该具有该值指定的宽度。如果是 *,则宽度会从值元组中读出。

                (4)点(.)后跟精度值(可选):如果转换的是实数,精度值表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度就会从元组中读出。

                (5)转换类型

             3.1 简单转换

             简单的转换只需要写出转换类型。

    1. >>> print(format % values)  
    2. Hello. world. Hot enough for ya?  
    3. >>> 'Price of eggs: $%d' % 42  
    4. 'Price of eggs: $42'  
    5. >>> 'Hexadecimal price of eggs: %x' % 42  
    6. 'Hexadecimal price of eggs: 2a'  
             3.2 字段宽度和精度

             字段宽度是转换后的值所保留的最小字符个数,精度(对于数字转换来说)则是结果中应该包含的小数位数,或者(对于字符串转换来说)是转换后的值所能包含的最大字符个数。

             这两个参数都是整数(首先是字段宽度,然后是精度),通过点号(.)分隔。虽然两个都是可选的参数,但如果只给出精度,就必须包含点号。

    1. >>> from math import pi  
    2. >>> '%10f' % pi  
    3. '  3.141593'  
    4. >>> '%10.2f' % pi  
    5. '      3.14'  
    6. >>> '%.2f' % pi  
    7. '3.14'  
    8. >>> '%.*s' % (5'Guido van Rossum')  
    9. 'Guido'  
              3.3 符号、对齐和 0 填充

              在字段宽度和精度值之前还可以放置一个“标表”,该标表可以是零、加号、减号或空格。零表示数字将会用 0 进行填充。

    1. >>> '%010.2f' % pi  
    2. '0000003.14'  
              减号(-)用来做对齐数值:

    1. >>> '%-10.2f' % pi  
    2. '3.14      '  

              空白(“ ”)意味着在正数前加上空格。

    1. >>> print(('% 5d' % 10) + '\n' + ('% 5d' % -10))  
    2.    10  
    3.   -10  

              加号(+),它表示不管是正数还是负数都标示出符号。

    1. >>> print(('%+5d' % 10) + '\n' + ('%+5d' % -10))  
    2.   +10  
    3.   -10  
    四、字符串方法

            字符串的方法丰富得多,这是因为字符串从 string 模块中“继承”了很多方法。尽管字符串方法完全来源于 string 模块,但是这个模块还包括一些不能作为字符串方法使用的常量和函数。下面是一些有用的字符串常量。

            (1) string.digits:包换数字 0 - 9 的字符串

            (2) string.letters:包含所有字母(大写和小写)的字符串

            (3) string.lowercase:包含所有小写字母的字符串

            (4) string.printable:包含所有可打印字符的字符串

            (5) string.punctuation:包含所有标点的字符串

            (6) string.uppercase:包含所有大写字母的字符串

            

            1. find

             find 方法可以在一个较长的字符串中查找子字符串。它返回子串所在位置的最左端索引。如果没有找到则返回 -1。

    1. >>> 'With no moo-moo here, and a moo-moo there'.find('moo')  
    2. 8  
    3. >>> title = "Monty Python's Flying Circus"  
    4. >>> title.find('Monty')  
    5. 0  
    6. >>> title.find('Python')  
    7. 6  
    8. >>> title.find('Zirquss')  
    9. -1  
             find 方法还可以接受可选的起始点和结束点参数:

    1. >>> subject = '
      $Getrichnow!!!
      $'  
    2. >>> subject.find('$$$')  
    3. 0  
    4. >>> subject.find('$$$'1)  
    5. 20  
    6. >>> subject.find('!!!')  
    7. 16  
    8. >>> subject.find('!!!'016)  
    9. -1  
             由起始和终止值指定的范围(第二和第三个参数)包含第一个索引,但不包含第二个索引。

             2. join

             join 方法用来在队列中添加元素。需要添加的队列元素都必须是字符串。

    1. >>> seq = ['1''2''3''4''5']  
    2. >>> sep = '+'  
    3. >>> sep.join(seq)  
    4. '1+2+3+4+5'  
    5. >>> dirs = '''usr''bin''env'  
    6. >>> '/'.join(dirs)  
    7. '/usr/bin/env'  

             3. lower

             lower 方法返回字符串的小写字母版。

    1. >>> 'Trondhe Hammer Dance'.lower()  
    2. 'trondhe hammer dance'  
             和 lower 方法相关的是 title 方法,它会将字符串转换为标题——也就是所有单词的首字母大写,而其他字母小写。

    1. >>> "that's all folks".title()  
    2. "That'S All Folks"  

             4. replace

             replace 方法返回某字符串的所有匹配项均被替换之后得到的字符串。

    1. >>> 'This is a test'.replace('is''eez')  
    2. 'Theez eez a test'  

             5. split

             split 方法将字符串分割成序列。

    1. >>> '1+2+3+4+5'.split('+')  
    2. ['1''2''3''4''5']  
    3. >>> '/usr/bin/env'.split('/')  
    4. ['''usr''bin''env']  
    5. >>> 'Using the default'.split()  
    6. ['Using''the''default']  
             如果不提供任何分隔符,程序会把所有空格作为分隔符(空格、制表、换行等)。

             6. strip

             strip 方法返回去除两侧(不包括内部)空格的字符串。

    1. >>> '         internal whitespace is kept        '.strip()  
    2. 'internal whitespace is kept'  
              也可以指定需要去除的字符,将它们列为参数即可。

    1. >>> '*** SPAM * for * everyone!!! ***'.strip(' *!')  
    2. 'SPAM * for * everyone'  
              这个方法只会去除两侧的字符,所以字符串中的星号没有被去掉。


    展开全文
  • str = input(“请输入一个字符串:”) length1 = len(str) letter = 0 digit = 0 others = 0 print(length1) i = 0 for each in str: str1 = str[i] i += 1 if str1.isalpha(): letter += 1 elif str1.isdigit(): ...
    str = input("请输入一个字符串:")
    length1 = len(str)
    letter = 0
    digit = 0
    others = 0
    print(length1)
    i = 0
    for each in str:
        str1 = str[i]
        i += 1
        if str1.isalpha():
            letter += 1
        elif str1.isdigit():
            digit += 1
        else:
            others += 1
    print("字母有%d个,数字有%d个,其他字符有%d个" % (letter, digit, others))
    
    展开全文
  • Python基本元素:数字字符串和变量 变量、名字对象 对象类型不可变 变量名不能以数字开头 数字 运算符 描述 / 浮点数除法 // 整数除法 % 模(余) ** 幂 基数 默认为十进制 进制 代表...
  • Python——字符串1

    2014-10-06 23:11:09
    一、基本字符串操作 所有标准的序列操作(索引、分片、乘法、判断成员资格、长度、取最小值最大值)对字符串同样适用。但是,请记住字符串都是不可变的。二、字符串格式化:精简版 字符串格式化使用字符串格式化...
  • Python 统计字符串中的字符类型数量

    千次阅读 2018-06-22 09:21:16
    # 求字符串长度的函数 def strlen(s): return s + '的长度是 : ' + str(len(s)) # return len(s) # len()方法返回的是数字,在拼接字符串的时候需要,转换为string(用str()方法) # 计算字符串中数字,字母、...
  • 输入一个字符串求出包含的所有的整数的,如果整数前面有负号则是负数,两个负号就是正数,依次类推。 方法: import re from functools import reduce print(reduce(lambda x,y:eval(x) + eval(y), re.findall...
  • 我想提取一个文本中除了中文以外的英文,数字,以及各种符号,用以下代码,能把所有的中文提取出来,有没有什么办法能在原文件中将提取出来的这一部分中文去掉剩下英文数字和各种符号,请求各位大佬帮忙,不尽感激。...
  • 【猿辅导】(数据开发工程师-面试)两个超长数字字符串Python】题目描述方法一:分别把每个字符串按位转换为数字,然后相加方法二:翻转字符串,逐位相加(注意进位)方法三:与方法二同理,未反转,反向...
  • python字符串

    2018-09-18 17:35:57
    python字符串 ‘’’ 和数字相关的内置函数 1.绝对值 abs() print(abs(-10))结果10 2.最大值 max() print(max(1,2))结果2 3最小值min() print(min(1,2))结果1 4,a的b次方pow print(pow(2,2))结果4 ...
  • “水仙花数"是指一个三位整数,其各位数字的3次方等于该数本身。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪例如:ABC是一个"3位水仙花数”,则:A的3次方+B的3次方+C的3次方 = ABC。...
  • 然后将获得的字符串分割,得到:三个整数:1 20 30,然后累加。 ‘’’ number_string = input('请输入字符串:') print(number_string) number_string_1 = number_string.split(',') number_string_2 = '...
  • #1. 使用while循环输出1 2 3 4 5 6 8 9 10 n = 1 while n <= 10: if n == 7: pass else: print(n) n = n + 1 ...#2. 1 ~100所有数的 n = 1 count = 0 while n <= 100:...
  • python字符串操作

    2017-09-07 15:31:00
     所有的标准序列操作(索引、分片、乘法、判断成员资格、长度、取最大值最小值)对字符串同样适用。  特性:不可修改 字符串格式化  字符串格式化使用字符串操作符即百分号%来实现;在%左侧放置一个字符串...
  • 现有字符串AB,两个字符串的字符范围为0-9、a-z、A-Z,出其字符串B在字符串A中出现的次数。 while True : A = input("请输入字符串A:") if A.isalnum() == False : print("字符串中的字符只能是数字或字母,...
  • python基础之字符串

    2016-01-17 11:16:57
    所有标准序列的操作(索引,分片,乘法,成员资格判断,长度,取最小最大值)同样适用,但是记住:字符串都是不可变的。 2.字符串格式化:精简版 字符串的格式化可以使用字符串格式化操作符——百分号(%)来实现...
  • l = len(s) #求字符串长度 数字和字串互换 num = eval(“‘234.5’”) #去掉一个字串最外面的一层引号(数字首字母为0代表8进制,如果其后带有8、9会报错) ss = str(-3461.234) #数字转换为字符串 s...
  • 字符串获取操作 ... 给字符串求长度 &gt;&gt;&gt; len(S)   4 从正数数字从左边开始获取单个字符:从0开始 &gt;&gt;&gt; S[0]   'a' &gt;&gt;&
  • 出这个字符串所有字母 对应数字. 方法:将字母转化为对于的ascll码,转化为ascll码再减去96. 代码实现: s=input() sum=0 for i in s: asc=ord(i) num=asc-96 sum=sum+num print(sum) 输入输出示例...
  • 3.2_常见的Python函数 (1) abs()函数 绝对值 (2) max(x1,x2,x3,....)最大值 (3) min(x1,x2,x3,....)最小值 (4) pow 返回a的b次方,类似a**b (5) round(x) 返回最接近x的整数,如果x与两个整数接近程度...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 223
精华内容 89
关键字:

python求字符串数字和

python 订阅