目录
有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,第二个里面放2粒,第三个里面放4,棋盘上放的所有芝麻的重量。
python version: 3.6
创建一个字典:info
以“张三”,”李四”作为key,“张三”的value包含(年龄:20,sex:男,爱好:打球),“李四”的value包含(年龄:25,sex:男,爱好:学习)
info = {'张三': {'age': 20, 'sex': 'male', 'hobby': 'ball'},
'李四': {'age': 25, 'sex': 'male', 'hobby': 'study'}}
再添加一条信息key为小红,value为:年龄18,性别女,爱好旅游。
info['小红'] = {'age': 18, 'sex': 'female', 'hobby': 'travelling'}
更改李四的年龄为40。
info['李四']['age'] = 40
删除张三的信息。
info.pop('张三')
输入三个整数x,y,z,请判断这三个数的大小关系。
i = 1
triangle = []
while i <= 3:
x = input(f"Please enter {i} integers:")
try:
x = int(x)
except ValueError as e:
print("Input is not integer, please retry")
continue
else:
triangle.append(x)
i += 1
print("Three numbers from small to large are:")
for item in sorted(triangle):
print(item)
依次输入三角形的三边长,判断能否生成一个三角形。
依次输入三角形的三边长,判断能否生成一个等腰三角形。
依次输入三角形的三边长,判断能否生成一个直角三角形。
flag = True
while flag:
i = 1
triangle = []
# input 3 integers by loop
while i <= 3:
x = input(f"Please enter {i} integers:")
# is a integer?
try:
x = int(x)
except ValueError as e:
print("Input is not integer, please retry")
continue
# is a positive?
if x <= 0:
print("Please enter a positive number")
continue
else:
triangle.append(x)
i += 1
# sorting list
triangle.sort()
# a+b>c?
if (triangle[0] + triangle[1] > triangle[2]) \
and (triangle[1] + triangle[2] > triangle[0]) \
and (triangle[2] + triangle[0] > triangle[1]):
print("The three line can be made up a triangle")
# a=b? b=c? a=c?
if triangle[0] == triangle[1] or triangle[1] == triangle[2] or triangle[0] == triangle[2] == triangle[0]:
print("This is a Isosceles triangle")
# a*a+b*b=c*c?
if triangle[0] ** 2 + triangle[1] ** 2 == triangle[2] ** 2:
print("This is a Right triangle")
else:
print("The three line can NOT be made up a triangle")
print("Please input 'q' to quit or any key to continue")
#quit
if input() is 'q':
flag = False
猜拳游戏
用户输入石头、剪刀或布,电脑也会出一个招,要求得出最终结果,显示胜利玩家。
flag = True
while flag:
mora = {1: 'rock', 2: 'scissors', 3: 'cloth'}
x = input("Please punch: 1-rock 2-scissors 3-cloth")
# input is an integer?
try:
x = int(x)
except ValueError:
print("Wrong input, please retry")
continue
# input is 1, 2 or 3?
if x not in mora.keys():
print("Wrong input, please enter 1, 2 or 3")
continue
# com punch
y = random.randint(1, 3)
print(f"You: [{mora[x]}] v.s. [{mora[y]}] :Com")
# compare
if x == y:
print("Draw")
elif (x - y) == -1 or (x - y) == 2:
print("You Win")
elif (x - y) == 1 or (x - y) == -2:
print("You Lost")
print("Please input 'q' to quit or any key to continue")
# quit
if input() is 'q':
flag = False
有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,第二个里面放2粒,第三个里面放4,棋盘上放的所有芝麻的重量。
x = [2 ** x for x in range(0, 64)]
weight = 0.00001 * sum(index)
print("Total weight of sesame is %f kg (%0.2f kt)" % (weight, weight / 1000 / 1000))
打印99乘法表
for x in range(1, 10):
for y in range(1, x + 1):
if 1 == y:
print('\n')
print(f"{x} * {y} = {x*y}\t", end='')
鸡数
公鸡3元每只,母鸡5元每只,小鸡1元3只,一百元钱买一百只鸡。请求出公鸡,母鸡和小鸡的数目。
cock = 3
hen = 5
chick = 1 / 3
money = 100
for cock_num in range(1, round(money / cock)):
for hen_num in range(1, round(money / hen) - cock_num):
chick_num = 100 - cock_num - hen_num
if (cock_num * cock + hen_num * hen + chick_num * chick) == money:
print(f"number of cock is {cock_num}\n"
f"number of hen is {hen_num}\n"
f"number of chick is {chick_num}\n")
找零钱
一个小孩买了价值少于1美元的糖,并将1美元的钱交给售货员。售货员希望用数目最少的硬币找给小孩。假设提供了数目不限的面值为2 5美分、1 0美分、5美分、及1美分的硬币,写一个算法让售货员用最少的硬币数找给小孩。
# pay
lollipop = 0.37
money = 1
# coin
change1 = Decimal('0.01')
change5 = Decimal('0.05')
change10 = Decimal('0.1')
change25 = Decimal('0.25')
change = Decimal(str(money)) - Decimal(str(lollipop))
# initialize
n1, n5, n10, n25 = 0, 0, 0, 0
# if change < 0.05
if Decimal('0') < change < change5:
n1 = change / change1
# if change < 0.1
elif change < change10:
n5 = int(change / change5)
n1 = int((change - change5 * n5) / change1)
# if change < 0.25
elif change < change25:
n10 = int(change / change10)
n5 = int((change - change10 * n10) / change5)
n1 = int((change - change10 * n10 - change5 * n5) / change1)
# if change < 1
elif change < Decimal('1'):
n25 = int(change / change25)
n10 = int((change - change25 * n25) / change10)
n5 = int((change - change25 * n25 - change10 * n10) / change5)
n1 = int((change - change25 * n25 - change10 * n10 - change5 * n5) / change1)
print(f"$0.25: {n25}\n$0.1: {n10}\n$0.05: {n5}\n$0.01: {n1}")
小猴吃枣
小猴第一天摘下若干枣子,当即吃掉了一半,不过瘾又多吃了一个;第二天吃了剩下的一半又多吃了一个;每一天都吃了前一天剩下的一半多一个。到第十天小猴再想吃时,见到只剩下一只枣子了。问第一天这堆枣子有多少?
# x is stand for number of jujube on 1st day
x = 1
while True:
# x is stand for number of jujube on next day
y=x
# i is stand for number of days
for i in range(1, 11):
y = y / 2 - 1
print(y)
if y == 1:
print(f"There are {x} jujube total")
break
x += 1
折纸
一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?
thickness = 0.08 / 1000
n = 1
while True:
height = thickness * 2 ** (n - 1)
if height >= 8848.13:
print(f"Need to fold {n} times, and total height is {height} m")
break
n += 1