【Python】综合运用知识点,完成金额折扣、斐波那契数列等编程,结合递归方法

简介: 最近在学习python,如何快速提高所学编程和加深印象呢 很显然,通过多练习和尝试编写代码实现功能
作者:小5聊基础
简介:一只喜欢全栈方向的程序员,欢迎咨询,尽绵薄之力答疑解惑
编程原则:Write Less Do More
  • 主要知识点列表
编号 语言或插件 知识点 说明
1 python %s 字符出输出标识
2 python 逻辑判断 if-elif,python这个elif写法挺特别,一般都是else if,直接简写成了elif
3 python def 定义方法关键词

【金额折扣计算编程】

  • 编程要求如下
编写程序,实现如下表所示的购货金额折扣计算
X(数量) Y(金额) 备注
x<10 10x 10元每件
10<=x<20 9.5x 9.5元每件
20<=x<40 9x 9元每件
x>=40 8.5x 8.5元每件
  • 分析

从题目可以知道,购买不同数量的商品,会有一定折扣,对应金额也就不一样,同时考查知识点如下

1)逻辑判断,if-elif

image.png

  • 代码
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2022.06.15 14:34
import sys 

while True:
    print('请输入购买数量:')
    sum_price = 0 # 总金额
    x = int(input()) # 数量购买数量
    y = 10 # 金额默认10元/件
    if x < 10:
        y = 10
    elif x >= 10 and x < 20:
        y = 9.5
    elif x >= 20 and x < 40:
        y = 9
    elif x > 40:
        y = 8.5
    sum_price = y * x
    if x > 10:
        print('购买数量:%s,原价:10,折扣前总金额:%s' % (x,10 * x))
    print('购买数量:%s,折扣价:%s,折扣后总金额:%s' % (x,str(y),str(sum_price)))
    print('优惠金额:%s\r\n' % (10 * x - y * x))

【斐波那契数列编程】

  • 编程要求如下
写一个函数,给定N,返回斐波那契数列第n项。 <br/>
斐波那契数列指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1,F(n)=F(n - 1)+F(n - 2)(n≥ 2,n∈ N)
  • 什么是斐波那契数列?

又称黄金分割数列,这个数列从第3项开始,每一项都等于前两项之和

  • 分析

知道上面概念后,就知道应该如何编程了

1)先定义一个方法,使用递归方法生成一组斐波那契数列,然后返回第n项值

image.png

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2022.06.15 14:34
import sys 

arr = []
start_value = 1
index = 0
def createData(index,N):
    if index == 0 or index == 1:
        arr.append(1)
    else:
        arr.append(arr[index - 1] + arr[index - 2])
    index+=1
    if index>N:
        return arr
    else:
        return createData(index,N)

while True:
    print('请输入斐波那契数列长度N:')
    L = int(input())
    N=createData(index,L)
    print('数列值:%s' % N)
    
    print('请输入斐波那契数列第n项值:')
    n = int(input())
    print('第%s项值:%s' % (n,N[n-1]))
相关文章
|
8天前
|
测试技术 API Python
【10月更文挑战第1天】python知识点100篇系列(13)-几种方法让你的电脑一直在工作
【10月更文挑战第1天】 本文介绍了如何通过Python自动操作鼠标或键盘使电脑保持活跃状态,避免自动息屏。提供了三种方法:1) 使用PyAutoGUI,通过安装pip工具并执行`pip install pyautogui`安装,利用`moveRel()`方法定时移动鼠标;2) 使用Pymouse,通过`pip install pyuserinput`安装,采用`move()`方法移动鼠标绝对位置;3) 使用PyKeyboard,同样需安装pyuserinput,模拟键盘操作。文中推荐使用PyAutoGUI,因其功能丰富且文档详尽。
|
4天前
|
安全 Linux 数据安全/隐私保护
python知识点100篇系列(15)-加密python源代码为pyd文件
【10月更文挑战第5天】为了保护Python源码不被查看,可将其编译成二进制文件(Windows下为.pyd,Linux下为.so)。以Python3.8为例,通过Cython工具,先写好Python代码并加入`# cython: language_level=3`指令,安装easycython库后,使用`easycython *.py`命令编译源文件,最终生成.pyd文件供直接导入使用。
python知识点100篇系列(15)-加密python源代码为pyd文件
|
5天前
|
机器学习/深度学习 数据采集 数据挖掘
11种经典时间序列预测方法:理论、Python实现与应用
本文将总结11种经典的时间序列预测方法,并提供它们在Python中的实现示例。
29 2
11种经典时间序列预测方法:理论、Python实现与应用
|
5天前
|
网络协议 数据库连接 Python
python知识点100篇系列(17)-替换requests的python库httpx
【10月更文挑战第4天】Requests 是基于 Python 开发的 HTTP 库,使用简单,功能强大。然而,随着 Python 3.6 的发布,出现了 Requests 的替代品 —— httpx。httpx 继承了 Requests 的所有特性,并增加了对异步请求的支持,支持 HTTP/1.1 和 HTTP/2,能够发送同步和异步请求,适用于 WSGI 和 ASGI 应用。安装使用 httpx 需要 Python 3.6 及以上版本,异步请求则需要 Python 3.8 及以上。httpx 提供了 Client 和 AsyncClient,分别用于优化同步和异步请求的性能。
python知识点100篇系列(17)-替换requests的python库httpx
|
1天前
|
调度 Python
python知识点100篇系列(20)-python协程与异步编程asyncio
【10月更文挑战第8天】协程(Coroutine)是一种用户态内的上下文切换技术,通过单线程实现代码块间的切换执行。Python中实现协程的方法包括yield、asyncio模块及async/await关键字。其中,async/await结合asyncio模块可更便捷地编写和管理协程,支持异步IO操作,提高程序并发性能。协程函数、协程对象、Task对象等是其核心概念。
|
1天前
|
开发者 Python
Python中的魔法方法与运算符重载
在Python的奇妙世界里,魔法方法(Magic Methods)和运算符重载(Operator Overloading)是两个强大的特性,它们允许开发者以更自然、更直观的方式操作对象。本文将深入探讨这些概念,并通过实例展示如何利用它们来增强代码的可读性和表达力。
|
2天前
|
Java Python
> python知识点100篇系列(19)-使用python下载文件的几种方式
【10月更文挑战第7天】本文介绍了使用Python下载文件的五种方法,包括使用requests、wget、线程池、urllib3和asyncio模块。每种方法适用于不同的场景,如单文件下载、多文件并发下载等,提供了丰富的选择。
|
3天前
|
设计模式 开发者 Python
Python编程中的设计模式:从入门到精通####
【10月更文挑战第14天】 本文旨在为Python开发者提供一个关于设计模式的全面指南,通过深入浅出的方式解析常见的设计模式,帮助读者在实际项目中灵活运用这些模式以提升代码质量和可维护性。文章首先概述了设计模式的基本概念和重要性,接着逐一介绍了几种常用的设计模式,并通过具体的Python代码示例展示了它们的实际应用。无论您是Python初学者还是经验丰富的开发者,都能从本文中获得有价值的见解和实用的技巧。 ####
|
3天前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
6天前
|
Java Python
python知识点100篇系列(16)-python中如何获取线程的返回值
【10月更文挑战第3天】本文介绍了两种在Python中实现多线程并获取返回值的方法。第一种是通过自定义线程类继承`Thread`类,重写`run`和`join`方法来实现;第二种则是利用`concurrent.futures`库,通过`ThreadPoolExecutor`管理线程池,简化了线程管理和结果获取的过程,推荐使用。示例代码展示了这两种方法的具体实现方式。
python知识点100篇系列(16)-python中如何获取线程的返回值