Python出租车计费

img


大学牲中文班太卷了,一直不会做啊啊,要完蛋,求帮忙看一下,也别shenhe不通过了😭

img



```python
def get_money(km, wait_time):
    if km <= 3:
        money = int(13 + wait_time)
        print(money)
        return money
    elif 3 < km <= 15:
        money = int(13 + 2.3 * (km - 3) + wait_time)
        print(money)
        return money
    elif km > 15:
        money = int((15 - 3) * 2.3 + 13 + (km - 15) * (2.3 + 2.3 * 0.5) + wait_time)
        print(money)
        return money


get_money(13, 10)


  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7425408
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Python之基础详解(一):关于在字典中储存列表,在字典中储存字典
  • 你还可以看下python参考手册中的 python- 定义扩展类型:已分类主题- 终结和内存释放
  • 除此之外, 这篇博客: python制作的点名神器(代码简单,适合初学者),老师再也不用发愁点名了中的 头秃,话不多,直接上源码 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 
    #!/usr/bin/env python
    # coding:gbk
    
    import pyttsx3
    import openpyxl
    import random
    import tkinter as tk
    import tkinter.messagebox
    
    
    #### 利用python第三方库pyttsx3来将文字用语音发送出来
    def voice(a):
        ## pytttsx初始化
        engine = pyttsx3.init()
        ## a代表着需要转成音频的文字
        engine.say(a)
        # 注意,没有本句话是没有声音的
        engine.runAndWait()
    
    ### 创建一个list来保存已经被抽到名字的同学
    ed_name= []
    
    root = tk.Tk()  # 创建窗口对象
    root.title("花名册     -----点名辅助程序   v1.10     ")
    root.geometry("500x300")
    
    # 创建抽取到的同学姓名展示部分
    labelx=tk.Label(root,text="紫薇",fg="red",font=("宋体",80),width=9,height=2)
    labelx.grid(row=0)
    
    name_data = [] # 创建存储所有学生姓名的列表
    
    def execl(filename, sheetname):
        wb = openpyxl.load_workbook(filename)  # 打开Excel
        sheet = wb[sheetname]  # 定位表单
        # 创建一个空列表
        column = 1
        for row in range(2, sheet.max_row + 1):
            if sheet.cell(row, column).value == "":
                continue
            name_data.append(sheet.cell(row, column).value)  # 将第一列的每一行数值遍历添加到name_data列表中;
        return name_data
    
    execl("config\\name.xlsx","Sheet1")  # 调用一下execl函数,在没有开始点名之前先将姓名添加到name_data列表之中
    
    
    def ceshi():
        while 2>1:
            a = random.randint(0,len(name_data)-1)## 产生随机数,作为list的下标index
    
            b = "下面请"+name_data[a]+"同学来回答问题"## 拼接成字符串
    
            ## 判断ed_name元素个数是不是与name_data列表中相同,如果相同,那么代表着所有的同学名字都被抽点过了
            if len(ed_name) == len(name_data):
                tk.messagebox.askokcancel("提示", '所有的学生都已经抽取了一边,如需要继续,请关闭该程序重新打开')
                break
    
            ## 判断被抽点到的同学是不是已经被抽点过,如果被抽点过,则跳过该同学
            if name_data[a] in ed_name:
                continue
    
            ed_name.append(name_data[a])    # 将被抽点到的学生添加到ed_name例表中,标记已经被抽点
    
            labelx = tk.Label(root, text=name_data[a], fg="red", font=("宋体", 80), width=9, height=2)# 在姓名框里面展示姓名
            labelx.grid(row=0)
    
            voice(b) ## 语音读取
    
            break
    
    tk.Button(root, text="开始点名", width=15, command=ceshi).grid(row=1,padx=10, pady=10,sticky='s')  # s南边也就是下边
    
    
    root.mainloop()  # 进入消息循环
    
  • 您还可以看一下 董付国老师的Python可以这样学(第十季:网络爬虫实战)课程中的 补充:下载文件时绕过防盗链设置小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    我能够为您提供一种计算出租车费用的Python程序实现,代码如下:

    import math
    
    def calculate_fare(distance, duration):
        """
        计算出租车费用
        :param distance: 历程(公里)
        :param duration: 时长(分钟)
        :return: 车费(元)
        """
        base_fare = 13  # 起步价
        distance_fare = 2.3  # 每公里加价
        duration_fare = 0.33  # 每分钟加价
        distance_fare_total = max(distance - 3, 0) * distance_fare  # 第四公里开始加价
        duration_fare_total = duration * duration_fare
        total_fare = base_fare + distance_fare_total + duration_fare_total
        return math.ceil(total_fare)  # 向上取整
    
    if __name__ == '__main__':
        distance = float(input("请输入历程(公里):"))
        duration = int(input("请输入时长(分钟):"))
        fare = calculate_fare(distance, duration)
        print("车费为:{}元".format(fare))
    

    以上程序使用了计费规则:起步价为13元,第四公里开始每公里加价2.3元,每分钟加价0.33元,并且对车费进行了向上取整。

    程序中使用了一个名为calculate_fare()的函数,它接受两个参数:历程(公里)和时长(分钟),并返回车费值。函数内部先定义了起步价、每公里加价和每分钟加价三个变量,然后分别计算了历程加价、时长加价和总车费。最后,使用Python标准库中的math.ceil()函数对车费值进行了向上取整。

    在程序的最后,使用了Python的条件语句if __name__ == '__main__':,这个条件是判断程序是否被直接运行,如果是,那么就读取两个输入值,计算车费并输出结果。

    可以将以上代码保存到一个Python文件中,比如taxi_fare.py,然后在命令行中运行python taxi_fare.py就可以使用了。输入历程和时长后,程序会输出计算出的车费。希望对您有所帮助!