应用思考-教育技术论坛

标题: 好玩的Python:植树问题,平闰年,鸡兔同笼,百钱白鸡,属相问题 [打印本页]

作者: etthink    时间: 2018-2-9 23:49
标题: 好玩的Python:植树问题,平闰年,鸡兔同笼,百钱白鸡,属相问题
  1. # 植树问题
  2. total = 1
  3. age = 1

  4. while total <= 100:
  5.     age += 1
  6.     total += age

  7. print("小明{}岁的时候树超过100棵".format(age))
复制代码

作者: etthink    时间: 2018-2-10 00:09
  1. # 有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?

  2. # 穷举法
  3. # 列表推导式如果不理解,代码不容易懂
  4. # list = [(chicken, rabbit) for chicken in range(0,35) for rabbit in range(35) if (2 * chicken + 4 * rabbit) == 94 and (chicken + rabbit) == 35]
  5. for chicken in range(35):
  6.     for rabbit in range(35):
  7.         if (2 * chicken + 4 * rabbit) == 94 and (chicken + rabbit) == 35:
  8.             print("一共有{}只鸡,{}只兔子".format(chicken, rabbit))
复制代码

作者: etthink    时间: 2018-2-10 00:09
  1. # 闰年是公历中的名词。
  2. # 普通年能整除4且不能整除100的为闰年。(如2004年就是闰年,1900年不是闰年);
  3. # 世纪年能整除400的是闰年。(如2000年是闰年,1900年不是闰年);
  4. # 对于数值很大的年份,这年如果能被3200整除,并且能被172800整除则是闰年。
  5. # 如172800年是闰年,86400年不是闰年(因为虽然能被3200整除,但不能被172800整除)。

  6. while True:
  7.     # 循环判断
  8.     year = input("请输入年份:")
  9.     # input得到的是字符串
  10.     # 需要用int方法转换为整数
  11.     year = int(year)

  12.     if (year % 4 ==0 and year % 100 != 0) or (year % 400 == 0):
  13.         # 括号不是必须的但是有利于理解代码
  14.         print("{}年是闰年".format(year))
  15.     else:
  16.         print("{}年是平年".format(year))
复制代码

作者: etthink    时间: 2018-2-10 00:10
  1. # 判断属相
  2. # 小时候大人教我用手算属相
  3. # 那时候可是聪明的象征呢
  4. zodiac = ["子鼠", "丑牛", "寅虎", "卯兔", "辰龙", "巳蛇", "午马", "未羊", "申猴", "酉鸡", "徐狗", "亥猪"]

  5. # 讲解获取证书值输入的办法
  6. while True:
  7.     age_str = input("请输入你的年龄或者出生年月:")

  8.     your_age = int(age_str)
  9.     if your_age &gt; 120:
  10.         # 输入的年龄和输入的是出生年月计算方法不同
  11.         print("您今年{}岁,您的属相是【{}】".format(2017 - your_age, zodiac[9 - (2017 - your_age) % 12]))
  12.     else:
  13.         print("您出生于{}年,您的属相是【{}】".format(2017 - your_age, zodiac[9 - your_age % 12]))

  14. # 属相要考虑周岁和虚岁的问题,然后这个算法年龄扣掉整数的12岁之后,然后计算的
复制代码

作者: etthink    时间: 2018-2-10 00:11
  1. # 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。
  2. # 百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

  3. # 采用最暴力的枚举法
  4. # 没有做任何优化
  5. # 可以根据数学知识对程序进行优化
  6. # 亲爱的老师们考虑下怎么优化
  7. # 判断也可以改成嵌套
  8. # 判断的层数可以减少
  9. for chicken_papa in range(100):
  10.     for chicken_mama in range(100):
  11.         for chicken_kids in range(100):
  12.             if (chicken_papa * 5 + chicken_mama * 3 + chicken_kids / 3) == 100 and (chicken_papa + chicken_mama + chicken_kids == 100):
  13.                 #讲解的时候注意条件表达式的括号
  14.                 print("百钱买百鸡,问鸡翁{}鸡母{}鸡雏{}".format(chicken_papa, chicken_mama, chicken_kids))
复制代码

作者: etthink    时间: 2018-2-10 00:11
  1. # 九九乘法表
  2. # range函数具体用法
  3. # http://www.runoob.com/python/python-func-range.html
  4. for x in range(1, 10):
  5.     for y in range(1, x + 1):
  6.         print("{} x {} = {}".format(x, y, x * y))


  7. for x in range(1, 10):
  8.     str = ""
  9.     for y in range(1, x + 1):
  10.         str += "{} x {} = {} ".format(x, y, x * y)
  11.     print(str)
复制代码





欢迎光临 应用思考-教育技术论坛 (http://etthink.com/) Powered by Discuz! X3.4