Python教材(数据分析、数据挖掘与可视化)——第四章课后习题

题目

1.接收一个正整数作为参数,返回对齐进行因式分解后的结果列表。例如,接收参数50,返回[2,5,5]
2.接收两个正整数参数n和a(a要求小于10的自然数),计算形式入a+aa+aaa+…+aaa.aaa的表达式前n项的值
3.模拟报数游戏。有n个人围成一圈,从0到n-1按顺序编号,从第一个人开始从1到k报数,报到k的人退出圈子,然后圈子缩小,
从下一个人继续游戏,问最后留下的是原来的第几号。
4.接收一个字符串作为参数,判断该字符串是否为回文(正读和反读都一样的字符串),如果是则返回True,否则返回False。不允许使用切片

代码

'''1.接收一个正整数作为参数,返回对齐进行因式分解后的结果列表。例如,接收参数50,返回[2,5,5]
2.接收两个正整数参数n和a(a要求小于10的自然数),计算形式入a+aa+aaa+...+aaa.aaa的表达式前n项的值
3.模拟报数游戏。有n个人围成一圈,从0到n-1按顺序编号,从第一个人开始从1到k报数,报到k的人退出圈子,然后圈子缩小,
从下一个人继续游戏,问最后留下的是原来的第几号。
4.接收一个字符串作为参数,判断该字符串是否为回文(正读和反读都一样的字符串),如果是则返回True,否则返回False。不允许使用切片

'''

def function(n, list1):
    for i in range(2, n):
        while i != n:
            if n % i == 0:
                list1.append(i)
                n = n/i
            else:
                break
    list1.append(int(n))
    return list1

n = int(input("请输入一个正整数:"))
list1 = []
function(n, list1)
print(list1)

def n_a():
    '''
    接收两个正整数参数n和a(要求a小于10的自然数),计算形式入a+aa+aaa+...+aaa...aaa
    :return:
    '''
    n=int(input("输入正整数参数n:"))
    a=int(input("输入正整数参数a(小于10):"))
    s=0
    list1=[0]
    for i in range(1,n+1):
        list1.append(list1[i-1]*10+a)
    list1.remove(0)
    print(list1)
    print(sum(list1))
n_a()

def baoshu():
    '''
    模拟报数游戏。有n个人围成一圈,从0到n-1按顺序编号,从第一个开始从1到k报数,报道k的人退出圈子,然后圈子缩小,从下一个人继续游戏,
    问最后留下的是原来的第几号
    :return:
    '''
    n=int(input("请输入参与游戏的人数:"))
    k=int(input("请输入退出的号码:"))
    c=[i for i in range(1,n+1)]
    num = 1
    while len(c)!=1:
        c.append(c.pop(0))  #把已报数的人取出放到队尾,以此实现围成圈循环往复
        num +=1
        if num==k:
            del c[0]    # 把报到规定数字的人踢出圈子
            num =1      # 重新从1开始报数
    print(c)

baoshu()

def baoshu():
    '''
    接收一个字符串作为参数,判断该参数是否为回文(正读和反读都一样的字符串),
    如果是则返回True,否则返回False。不允许使用切片。
    :return:
    '''
    str1=input("接收一个字符串(判断其是否为回文):")
    n=len(str1)
    str2=[]
    for i in range(0,n):
        str2.append(str1[n-i-1])    #str2是列表
    if list(str1)==str2:            #将str1的字符形态转为列表
        return print("True")
    else:
        return print("False")
baoshu()
  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值