#1、 山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。提示:
#
# 用整型变量water表示水缸里的水“water = 15;”。
# 用整型变量l表示小和尚下山挑水的次数“l = 0;”。
# 分析循环条件(水少于50升),循环操作(水增加5升,挑水次数增加1)。
# 套用while循环写出代码。
water = 15 #水缸里的水“water = 15;”
l = 0 #小和尚下山挑水的次数“l = 0;”。
while water<50: #while 当水大于等于50跳出while
water += 5 #每一次加5 water = water + 5
l += 1
print(l)
#2、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
# 以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
tao = 1
print("第10天剩下1个桃")
for day in range(9,0,-1):
tao = tao * 2 + 2
print("第%d天剩下%d个桃"%(day,tao))
# 3、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
# 我的思路是:除了第1次从100米高度落下,其余的9次都经历了“反弹-落地”的过程,每个过程来回走过的长度相当于上一个过程的高度。
# 因此,把第1个过程初始化并赋值,从第2个过程开始,先次上一个过程的高度计算进去,再将高度减半,传递给下一个过程进行计算。代码如下:
# 落下的路程
totle_length = 0
height = 100
for i in range(0, 10):
totle_length += height
height /= 2
print(height)
# 弹起的路程
totle_length = totle_length + totle_length - 100
print(totle_length)
4、输出100以内的所有素数,每行显示5个;并求和。(素数:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除)count = 0 #定义一个变量为0是为了下面的每五个换行用的
for n in range(1,101): #循环1-100
if n == 1: #1不是素数所以跳过
continue
elif n ==2 : #因为运算的需要直接把2提出来,不然循环执行不了
print(n,end=' ')
count += 1 #输入了一个2 所以count+1
else:
for i in range(2,n): #执行n这个数去取余2到他本身如果有能等于0的证明他能被哪个数整除跳出循环
if n%i==0:
break
else: #到本身没有可以整除的就是素数
print(n,end=' ')
count += 1
if count == 5: #当输入5个数的时候执行换行,并把count再赋值为0
count = 0
print()
5、实现功能:
列表为:['Iphone8',6888],['MacPro',14800],['小米6',2499],['Coffee',31],['Book',80],['Nike Shoes',799]
实现一个类似购物车的语句,用户循环输入编号可以将列表内的商品储存到一个新的列表里面,当用户输入'q'时退出循环
products = [['Iphone8', 6888], ['MacPro', 14800], ['小米6', 2499], ['Coffee', 31], ['Book', 80], ['Nike Shoes', 799]]
shopping_car = []
while True:
print("-------商品信息---------")
for index,i in enumerate(products):
print("%s.%s %s"%(index,i[0],i[1]))
chose = input("请输入你想添加购物车的商品信息(q键退出):")
if chose.isdigit():
chose = int(chose)
shopping_car.append(products[chose])
elif chose == "q":
print("---------购物车商品信息-----------")
for index,i in enumerate(shopping_car):
print("%s.%s %s"%(index,i[0],i[1]))
break
# 6、使用字典,编写景区一个景点查询工具,
# 要求:
# 菜单分为省/市/景点三级菜单
# 用户必须先输入省份查看全部地市信息
# 用户输入地市可以查看本地的所有景点信息
travel_map_dict = { "上海": {"崇明": ["崇明1", "崇明2", "崇明3", "崇明4"],
"宝山": ["宝山1", "宝山2", "宝山3", "宝山4"],
"奉贤": ["奉贤1", "奉贤2", "奉贤3", "奉贤4"]},
"北京": {"昌平": ["昌平1", "昌平2", "昌平3", "昌平4"],
"朝阳": ["朝阳1", "朝阳2", "朝阳3", "朝阳4"],
"海淀": ["海淀1", "海淀2", "海淀3", "海淀4"]}}
pro = input("请输入需要查看的省份:")
for key in travel_map_dict:
if pro == key:
d = list(travel_map_dict[pro].keys())
print(d)
choice = input("是否想继续查看地级城市(是或否)")
if choice == "否":
print("结束查看!")
break
if choice == "是":
pro1 = input("请输入需要查看的地级城市:")
for key1 in travel_map_dict[pro]:
if key1 == pro1:
print(travel_map_dict[pro][key1])
# 7、编写代码,实现双色球彩票一键选号功能:
# 红球6个,号码在1—33之间,按从小到大排列
# 篮球一个,排列在红球后面
# 参考格式:
# {‘红球’: [05,15,20,22,31,33],’蓝球’:[10,]
import random
a = int(input("请输入买的注数:"))
for i in range(a):
list00 = [k for k in range(0,37)]
dict00 = {}
b = []
d = []
for j in range(6):
a = random.choice(list00)
b.append(a)
list00.remove(a)
b.sort()
list01 = [p for p in range(0,16)]
c = random.choice(list01)
d.append(c)
key = "红球"
value = b
key1 = "蓝球"
value1 = d
dict00[key]=value
dict00[key1] = value1
print(dict00)
# 8、用函数实现输入某年某月某日,判断这一天是这一年的第几天?闰年情况也考虑进去
import datetime
year00 = input("请输入一个年份:")
month00 = input("请输入一个月份:")
day00 = input("请输入一个日期:")
d1 = datetime.datetime.strptime("2018-7-25","%Y-%m-%d")
d2 = datetime.datetime.strptime("2018-1-1","%Y-%m-%d")
date00 = d1 - d2
print(date00.days)
9、声明两个方法,实现以下功能
方法一:根据输入的整型值创建一个一维列表,并将该列表进行 0~99的随机数赋值
方法二:遍历方法一返回的列表(试一试把列表当参数传进去)
import random
length = int(input("请输入列表的长度:"))
list01 = []
def make_list():
for i in range(0, length):
list01.append(random.randint(0, 99))
print(list01)
make_list()
def print_list():
for i in list01:
print(i)
print_list()
10、 模拟银行账户业务,实现存款、取款和余额查询。运行效果如下所示:
1.存款 2.取款 3.查询 0.退出
请选择你要办理的业务:1
请输入存款金额:1000
---------
存款成功!
1.存款 2.取款 3.查询 0.退出
请选择你要办理的业务:2
请输入取款金额:100
---------
取款成功!
1.存款 2.取款 3.查询 0.退出
请选择你要办理的业务:
---您当前账户余额:900元---
1.存款 2.取款 3.查询 0.退出
请选择你要办理的业务:0
O(∩_∩)O谢谢您的使用,欢迎下次光临!
total_money = 0
def save_money(money, total_money):
total_money += money
return total_money
def get_money(money, total_money):
total_money -= money
return total_money
while True:
select = input("1.存款 2.取款 3.查询 0.退出\n请选择你要办理的业务:")
if select == "1":
money = int(input("请输入存款金额:"))
total_money = save_money(money, total_money)
elif select == "2":
money = int(input("请输入取款金额:"))
total_money = get_money(money, total_money)
elif select == "3":
pass
elif select == "0":
break
else:
print("你输入的数字无效,重新输入")
print("当前余额为%s"%total_money)