【计算和控制流】30、上机练习:创建并调用函数

文章目录

一、水仙花数判定

①创建一个函数,接受一个参数n(n>=100),判断这个数是否为水仙花数
水仙花数:满足如果这个数为m位数,则每个位上的数字的m次幂之和等于它本身

例如:1^3+5^3+3^3=153,1^4+6^4+3^4+4^4=1634
结果返回True或者False

def shui(a):
  a = input("请输入一个大于或等于100的数:")
  y = int(a)
  b = len(a)
  print("位数:%d" %b)
  x = 0
  for i in a:
    q = int(i)
    x += q ** b
  if x == y:
    return True
  else:
    return False
print(shui(120))

②创建一个函数,接受一个参数max(max>=1000),调用上题编写的判断函数,求100到max之间的水仙花数

def shui(a):
    y = int(a)
    l = str(a)
    b = len(l)
    x = 0
    for i in l:
        i = int(i)
        x += i ** b
    if x == y:
        return True
    else:
        return False

def shui2(ma):
    ma = int(ma)
    n = 100
    x = 0
    for i in range(n, ma+1):
        if shui(i) == True:
            print(i)
            x += 1

u = input("请输入一个大于1000的数:")
print(shui2(u))

结果:

请输入一个大于1000的数:1200
153
370
371
407
None

二、求字符集合的并集

创建一个函数,接受两个字符串作为参数,返回两个字符串字符集合的并集
例如:接受的两个字符串为“abc"和“bcd",返回set([‘a’,‘b’,‘c’,‘d’])

def fun1(a, b):
    aset = set(a)
    bset = set(b)
    x = aset | bset
    print(x)

u = input('第一个字符串:')
v = input('第二个字符串:')
fun1(u, v)

结果:

第一个字符串:abc
第二个字符串:bcd
{'a', 'b', 'd', 'c'}
上一篇:矩阵的压缩储存(C++)


下一篇:Codeforces231 C. To Add or Not to Add(贪心,双指针)