python入门牛刀小试02

#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)

猜你喜欢

转载自blog.csdn.net/qq_42336700/article/details/81263668