Python课堂练习8

1、请编写一个程序分别求解以下问题(请注意保持原有代码的缩进格式):
(1)随机生成100以内的10个整数。
(2)随机选取0到100间的10个奇数。
(3)从字符串'abcdefghij'中随机选取5个字符。
(4)随机输出列表['Apple', ‘Pear’, 'Peach', 'Orange']中的1个字符串。

from random import*
for i in range(10):
      print(randint(0,101),end=" ")
print("\n")
for i in range(10):
      print(randrange(1,100,2),end=" ")
print("\n")
for i in range(5):
      print(choice('abcdefghij'),end=" ")
print("\n")
print(choice(['Apple','Pear','Peach','Orange']),end=" ")

运行效果图

2、(百鸡百钱问题)编程实现:我国古代数学书《张邱建算经》中有一个著名的“百鸡百钱”问题。大意是:公鸡1只值钱5,母鸡1只值钱3,小鸡3只值钱1。今有钱100,买鸡100只。问公鸡、母鸡、小鸡各买几只? 要求每种组合中公鸡、母鸡和小鸡数量均不能为0,试编程求解所有可能的组合。

这道题目有多种代码的写法,这里就只写出一种写法以供查看,思路大体上是差不了多少的。

for gj in range(1,20):
    for mj in range(1,33):
        if gj*5+mj*3+(100-gj-mj)/3==100:
            print("公鸡{}只,母鸡{}只,小鸡{}只".format(gj,mj,100-gj-mj))

3、编程实现:输出 2-1000 以内所有的完数及其因子。所谓完数是指一个数恰好等于它 的各因子之和(如6的因子为1、2、3)。 输出示例: 
2-1000以内所有的完数: 
6=1+2+3 
………

for i in range(2,1001):
    n=0
    s=''
    for j in range(1,i):
        if i%j==0:
            s=s+str(i)+"+"
            n=n+j
    if n==i:
        print("{}".format(n)+"="+s[:-1])

思路:先从2到1000开始循环,在里面找每个数字的因子,每个因子以字符串的形式串联,再把这些数相加,如果因子的和和数字值相等,那么就将刚才存有因子的字符串切片输出想要的形式。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值