应用思考-教育技术论坛
标题:
好玩的Python:植树问题,平闰年,鸡兔同笼,百钱白鸡,属相问题
[打印本页]
作者:
etthink
时间:
2018-2-9 23:49
标题:
好玩的Python:植树问题,平闰年,鸡兔同笼,百钱白鸡,属相问题
# 植树问题
total = 1
age = 1
while total <= 100:
age += 1
total += age
print("小明{}岁的时候树超过100棵".format(age))
复制代码
作者:
etthink
时间:
2018-2-10 00:09
# 有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?
# 穷举法
# 列表推导式如果不理解,代码不容易懂
# list = [(chicken, rabbit) for chicken in range(0,35) for rabbit in range(35) if (2 * chicken + 4 * rabbit) == 94 and (chicken + rabbit) == 35]
for chicken in range(35):
for rabbit in range(35):
if (2 * chicken + 4 * rabbit) == 94 and (chicken + rabbit) == 35:
print("一共有{}只鸡,{}只兔子".format(chicken, rabbit))
复制代码
作者:
etthink
时间:
2018-2-10 00:09
# 闰年是公历中的名词。
# 普通年能整除4且不能整除100的为闰年。(如2004年就是闰年,1900年不是闰年);
# 世纪年能整除400的是闰年。(如2000年是闰年,1900年不是闰年);
# 对于数值很大的年份,这年如果能被3200整除,并且能被172800整除则是闰年。
# 如172800年是闰年,86400年不是闰年(因为虽然能被3200整除,但不能被172800整除)。
while True:
# 循环判断
year = input("请输入年份:")
# input得到的是字符串
# 需要用int方法转换为整数
year = int(year)
if (year % 4 ==0 and year % 100 != 0) or (year % 400 == 0):
# 括号不是必须的但是有利于理解代码
print("{}年是闰年".format(year))
else:
print("{}年是平年".format(year))
复制代码
作者:
etthink
时间:
2018-2-10 00:10
# 判断属相
# 小时候大人教我用手算属相
# 那时候可是聪明的象征呢
zodiac = ["子鼠", "丑牛", "寅虎", "卯兔", "辰龙", "巳蛇", "午马", "未羊", "申猴", "酉鸡", "徐狗", "亥猪"]
# 讲解获取证书值输入的办法
while True:
age_str = input("请输入你的年龄或者出生年月:")
your_age = int(age_str)
if your_age > 120:
# 输入的年龄和输入的是出生年月计算方法不同
print("您今年{}岁,您的属相是【{}】".format(2017 - your_age, zodiac[9 - (2017 - your_age) % 12]))
else:
print("您出生于{}年,您的属相是【{}】".format(2017 - your_age, zodiac[9 - your_age % 12]))
# 属相要考虑周岁和虚岁的问题,然后这个算法年龄扣掉整数的12岁之后,然后计算的
复制代码
作者:
etthink
时间:
2018-2-10 00:11
# 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。
# 百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
# 采用最暴力的枚举法
# 没有做任何优化
# 可以根据数学知识对程序进行优化
# 亲爱的老师们考虑下怎么优化
# 判断也可以改成嵌套
# 判断的层数可以减少
for chicken_papa in range(100):
for chicken_mama in range(100):
for chicken_kids in range(100):
if (chicken_papa * 5 + chicken_mama * 3 + chicken_kids / 3) == 100 and (chicken_papa + chicken_mama + chicken_kids == 100):
#讲解的时候注意条件表达式的括号
print("百钱买百鸡,问鸡翁{}鸡母{}鸡雏{}".format(chicken_papa, chicken_mama, chicken_kids))
复制代码
作者:
etthink
时间:
2018-2-10 00:11
# 九九乘法表
# range函数具体用法
# http://www.runoob.com/python/python-func-range.html
for x in range(1, 10):
for y in range(1, x + 1):
print("{} x {} = {}".format(x, y, x * y))
for x in range(1, 10):
str = ""
for y in range(1, x + 1):
str += "{} x {} = {} ".format(x, y, x * y)
print(str)
复制代码
欢迎光临 应用思考-教育技术论坛 (http://etthink.com/)
Powered by Discuz! X3.4