Triste.own 发表于 2021-12-4 00:40:53

python编程题

编程题4:统计字符串中某类字符个数(字符分为大写字符、小写字符、数字字符、其他字符四类)


编程题11:自己定义一个字典,求和(值),求最大值(值),平均值(值)


编程题12:求两个数的最大公约数(调用自定义函数实现,自定义函数的功能是求两个数的最大公约数)


编程题13:将某个区间内的素数输出(调用自定义函数实现,自定义函数的功能是判断一个数是不是素数)

白two 发表于 2021-12-4 01:36:54

本帖最后由 白two 于 2021-12-4 01:38 编辑

# 4
def statistics(str):
    a = "A~Z"
    b = "a~z"
    c = "1~9"
    a1, b1, c1, d1 = 0, 0, 0, 0
    for i in str:
      if i in a:
            a1 += 1
      elif i in b:
            b1 += 1
      elif i in c:
            c1 += 1
      else:
            d1 += 1
    return ("大写字符%d个,小写字符%d个,数字字符%d个,其他字符%d个" % (a1, b1, c1, d1))


# 11
def dict_calc(dict_target):
    sum = 0
    max = 0
    average = 0
    for i in dict_target:
      i = dict_target
      sum += i
      if max < i:
            max = i
    average = sum / len(dict_target)
    return ("和%d,最大值%d,平均值%d" % (sum, max, average))


# 12
def gongyueshu(num1, num2):
    num = num1 if num1 < num2 else num2
    while num >= 1:
      if (num1 % num == 0) and (num2 % num == 0):
            return (f"最大公约数{num}")
      num -= 1


# 13
def prime_number(lst):
    list1 = []
    for i in lst:
      num = i ** 0.5
      n = 2
      flag = 1
      if i == 1:
            flag = 0
      while n <= num:
            if i % n == 0:
                flag = 0
                break
            n += 1
      if flag == 1:
            list1.append(i)
    return list1


print(statistics('AAAaaa111./...'))
print(dict_calc({'a': 1, 'b': 2, 'c': 3, 'd': 5, 'e': 4}))
print(gongyueshu(21, 3))
print(prime_number(range(1, 101)))

运行结果:
大写字符3个,小写字符3个,数字字符3个,其他字符5个
和15,最大值5,平均值3
最大公约数3

傻眼貓咪 发表于 2021-12-4 14:01:51

"A~Z" 是什么东西?A 到 Z 吗?Python 语法吗?
def statistics(str):
    a = "A~Z"
    b = "a~z"
    c = "1~9"
    a1, b1, c1, d1 = 0, 0, 0, 0
    for i in str:
      if i in a:
            a1 += 1
      elif i in b:
            b1 += 1
      elif i in c:
            c1 += 1
      else:
            d1 += 1
    return ("大写字符%d个,小写字符%d个,数字字符%d个,其他字符%d个" % (a1, b1, c1, d1))

print(statistics("xysst4565464645"))错误结果:大写字符0个,小写字符0个,数字字符0个,其他字符15个

傻眼貓咪 发表于 2021-12-4 14:07:14

    a = "A~Z" 只表示三个字符。 那就是 A 和 ~ 和 Z
    b = "a~z" 只表示三个字符。 那就是 a 和 ~ 和 z
    c = "1~9" 只表示三个字符。 那就是 1 和 ~ 和 9

最可爱的楼主居然设最佳解答?

白two 发表于 2021-12-4 15:31:16

本帖最后由 白two 于 2021-12-4 15:32 编辑

傻眼貓咪 发表于 2021-12-4 14:07
a = "A~Z" 只表示三个字符。 那就是 A 和 ~ 和 Z
    b = "a~z" 只表示三个字符。 那就是 a 和 ~ 和 z ...

哈哈,懒得打那么多字符了
毕竟我只是提供一个思路嘛

傻眼貓咪 发表于 2021-12-4 15:37:57

白two 发表于 2021-12-4 15:31
哈哈,懒得打那么多字符了
毕竟我只是提供一个思路嘛

抱歉,误会你了{:10_257:}
页: [1]
查看完整版本: python编程题