目录

实例一 温度转换

实例二 货币转换

实例三 绘制毛毛虫

实例四 天天向上

实例五 星期几问题

实例六 输出十二星座的标志

实例七 程序计时

实例八 文本进度条

实例九 身体质量指数BMI计算

实例十 蒙特卡罗方法计算圆周率


实例一 温度转换

设计思路:从程序的角度看,有数据的读入--数据处理--数据输出三个部分组成。首先通过终端(用户输入)读取到温度数据,然后根据后缀判断温度值的类型(华氏度or摄氏度)进行温度转换,最后将转换的结果输出到终端界面(显示给用户)。就是这么一个简单的处理。

利用公式(华氏-摄氏):F=C×1.8+32     C=(F-32)÷1.8

代码实现

根据用户输入数据的后缀进行相应的转换输出,否者输出‘input error’

#t.py
TempStr = input("input please tempture:")
if TempStr[-1] in ['F','f']:C = (eval(TempStr[0:-1]) - 32)/1.8print("Temp:{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:F = 1.8*eval(TempStr[0:-1]) + 32print("Temp:{:.2f}F".format(F))
else:print("input error!!!")

演示

逐行分析

以'#'开头表示注释行,不会被解释。这里仅仅表示脚本文件名为t.py

#t.py

使用input函数从用户终端读取用户输入的数据,并将字符串的形式赋值给TempStr这个变量

TempStr = input("input please tempture:")

检索TempStr的最后一个字符,如果在后面的列表中就进行相应的转换

if TempStr[-1] in ['F','f']:

TempStr[0:-1]表示对字符串进行分割,割掉最后一个字符。eval将字符串两边的引号去掉,使解释器可以把其当成正常的语句。这个表达式总体上完成了温度的转换(F->C)

    C = (eval(TempStr[0:-1]) - 32)/1.8

将转换后的数值,格式化输出。{:.2f }表示保留两位有效数字输出。

   print("Temp:{:.2f}C".format(C))

完成对摄氏温度到华氏度的转换

elif TempStr[-1] in ['C','c']:F = 1.8*eval(TempStr[0:-1]) + 32print("Temp:{:.2f}F".format(F))

如果上面没有匹配就报错

else:print("input error!!!")

实例二 货币转换

设计思路:对上一个实例有一些小小的改进。程序读取用户输入的的货币面值(RMB或者USD),然后进行价值的转换,将转换后的货币面值再通过打印终端,送给用户显示。

转换公式:1美元 = 6.78人民币。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

代码

CurStr = input()
if CurStr[:3] == "RMB":        #[:3]用于提取字符串开始位置到3位置的子串(数值部分),然后判断字符串是否相等于"RMB"print("USD{:.2f}".format(eval(CurStr[3:])/6.78))   #进行公式转换,并format方法格式化输出
elif CurStr[:3] in ['USD']:print("RMB{:.2f}".format(eval(CurStr[3:])*6.78))

实例三 绘制毛毛虫

使用第三方库的好处,一方面是省的我们去操心底层代码是如何控制硬件的,另一方面就是让我们以少的代码量去实现复杂的功能。这个例程是使用标准库turtle库中的函数,实现图形的绘制,画一个毛毛虫。重点还是面向对象的思想与功能的实现。

Python是一个面向对象思想的编程,故本例程的对象

画布对象:实际上是一个窗口,通过设置画布的属性,可以改变它的位置和大小。

画笔对象:通过画笔和画布实现图形的绘制,可以设置画笔属性(决定线条的粗细、颜色...),通过画笔动作实现线条绘制。

代码

#test.py
#from turtle inport *
import turtleturtle.setup(650, 350, 200, 200) #设置画布位置和大小
turtle.penup()                  #抬起画笔
turtle.fd(-250)                     #画笔直线移动-250单位
turtle.pendown()                #放下画笔
turtle.pensize(25)              #设置画笔宽度
turtle.pencolor("purple")       #设置画笔颜色
turtle.seth(-40)                    #画笔方向 -40°for i in range(4):turtle.circle(40, 80)           #画轨迹(半径40,弧度80)turtle.circle(-40, 80)          #毛毛虫身体
turtle.circle(40, 80/2)
turtle.fd(40)
turtle.circle(16, 180)              #毛毛虫头部
turtle.fd(fd * 2/3)
turtle.done()                       #画布done --程序不退出

展示

实例四 天天向上

近来科技发展越来越迅速,每过一段时间都会有新的词汇出现。面对这个变化飞快的世界,只有不断的迭代自己,才能跟上时代的变化,而不进步实际上就是一种倒退。我们现在都处于历史的十字路口上,请问,你会怎么做?

设计思路:

一年365天,每天进步1%,累计进步多少呢?
一年365天,每天退步1%,累计剩下多少呢?

一年365天,工作日进步1%,累计进步多少呢?

工作日模式要努力到什么水平,才能与每天努力1%一样?

代码1  

#daydayup.pydayfactor = 0.01  #每天改变%1dayup = 1.0
daydown = 1.0
dayup = pow( 1+dayfactor, 365 )
daydown = pow( 1-dayfactor, 365 )
print("每天1%,一年以后 学习者:{:.2f}  荒废者{:.2f}".format(dayup,daydown))dayup = 1.0
daydown = 1.0
for i in range(365):if i % 7 in [6,0]:dayup = dayup*(1-dayfactor)else:dayup = dayup*(1+dayfactor)
print("工作日学习1% 周末玩耍.一年以后:{:.2f}".format(dayup))

演示

代码2 如何努力才能达到目标值

#dayup.py#dayup函数
#每天努力df
#一年之后的效果
def dayup(df):dayup = 1for i in range(365):if i % 7 in [6,0]:dayup = dayup*(1 - 0.01)else:dayup = dayup*(1 + df)return dayup#确定合适的参数,通过不断调用函数试错来寻找努力参数
dayfactor = 0.01
while dayup(dayfactor) < 37.78:dayfactor += 0.001print("工作日努力参数是:{:.3f}".format(dayfactor))

演示

实例五 星期几问题

设计思路:程序读入用户输入的数字,转换成为对应的星期。重点理解字符串的拼接用法

代码

#weekname.py#处理字符串相关函数weekStr = "一二三四五六日"
weekId = eval( input("请输入星期数字(1-7):") )
print( "星期" + weekStr[weekId-1] )   #拼接字符串

演示

实例六 输出十二星座的标志

设计思路:python中字符编码统一使用Unicode码,根据Unicode码制,输出十二星座的logo;使用chr和ord函数,完成字符和unicode码的相互转换。

代码

for i in range(12):print( chr(9800+i), end=" " )  #chr函数根据unicode码,返回相应的字符print( ord( chr(9800+i) ), end="\n" ) #ord函数根据字符,返回对应的unicode码

演示

实例七 程序计时

设计思路:利用Python标准库time函数,实现对程序执行过程的计时统计。

代码

#time.pyfrom time import *start = perf_counter()   #获取时间点start,为起始时间sleep(2)  #睡眠2send = perf_counter()     #获取时间点end,为结束时间print("{}".format(end-start))       #输出时间差,为程序执行的时间

演示

实例八 文本进度条

设计思路:编辑Python代码,结合time库函数的计时功能与print打印函数,实现进度条的显示。在本程序中,通过for循环遍历数列来模拟文本下载/上传的过程,结合time库函数延时函数来实现这个过程;遍历过程中通过对终端界面的行刷新来模拟进度条的动态显示,通过print函数来实现打印输出功能,再通过time库函数的计时功能来实现对进度条时间进度的说明。

PS:在实际进度条实现上,先给进度条一个较慢的速度,再最后提高进度条的速度显示,这样可以给用户一个较好的心里体验。

代码

#textBar.pyimport timescale = 50
print("执行开始".center(scale//2,"-"))  #居中打印 两边填充 -
start = time.perf_counter()
for i in range(scale+1):a = '*' * i         #  i个'*'b = '.' * (scale-i) #  (scale-i)个'.'c = (i/scale)*100   #  百分数dur = time.perf_counter() - start  #用时print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='')    #格式化输出,注意ends参数设置不换行time.sleep(0.1)print("\n"+"执行结束".center(scale//2,'-'))  #居中打印 两边填充 -

演示

实例九 身体质量指数BMI计算

输入:对象的身高和体重
处理:利用BMI = 体重 (kg) / 身高2 (m2),计算出BMI指标,判断用户的健康程度
输出:分别按照国内和国际两种标准,输出用户的健康程度

PS:重点学习if多分支语句的处理思想

height, weight = eval(input("请输入身高(m)和体重(\公斤)[逗号隔开]:"))
bmi = weight / pow(height,2)
print("BMI 数值为:{:.2f}.".format(bmi))
who,nat = "",""
if bmi < 18.5:who, nat = "正常","正常"
elif 18.5 <= bmi < 24:who,nat = "正常","正常"
elif 24 <= bmi < 25:who,nat = "正常","偏胖"
elif 25 <= bmi < 28:who,nat = "偏胖","偏胖"
elif 28 <= bmi < 30:who,nat = "偏胖","肥胖"print("国内标准:{} 国际标准:{}".format(who,nat))

展示

实例十 蒙特卡罗方法计算圆周率

圆周率是一个无理数,没有一个数学公式可以精确的表示。对圆周率的计算有两种方法,一种是使用数学近视公式来计算;另外一种就是蒙特卡罗方法了,在本例程中,使用大量随机的离散点来近视区域的面积,使用面积的比例来求圆周率的值。这里使用random函数来产生随机数,使用time库时间计时来计算程序运行的时间。
输入:抛物点数量
处理:计算每一个点到圆心的距离,统计在圆内的点的数量
输出:圆周率

from random import random
from time import perf_counter
DARTS = 1000*1000  #抛洒点的个数
hits = 0.0
start = perf_counter()  #记录开始时刻for i in range(1,DARTS+1):x, y = random(), random()   #撒点dist = pow(x**2 + y**2,0.5)if dist <= 1.0:  #如果该散点在圆内hits = hits + 1 #pi = 4 * (hits/DARTS)   #计算圆周率print("圆周率:{}".format(pi))
print("运行时间:{:.5f}s".format(perf_counter()-start))

展示

Python编程实例分析Ⅰ相关推荐

  1. Python编程实例03——对英文文本进行分词

    系列目录 上一篇:Python编程实例02--实现斐波那契数列 文章目录 系列目录 前言 一.编程要点 1.split()函数 a.单个分隔符分割 b.多个分割符分割 2.sorted()函数与sor ...

  2. python高级练习题:多米诺平铺 - 5×2N局【难度:4级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python高级练习题:多米诺平铺 - 5×2N局[难度:4级]: 请还检查了在[多米诺拼接系列]其他练习题(https://www.codewars.com/collections/5d19554d ...

  3. python进阶练习题:馏分类【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python进阶练习题:馏分类[难度:2级]: 为您提供了类"分数",这两个参数(分子,分母)的骨架. 例: fraction1 =分数(4,5) 分数fraction1 =新分数 ...

  4. python基础练习题:简单有趣#32:创建字谜【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python基础练习题:简单有趣#32:创建字谜[难度:1级]: 任务 现在给你两个字符串S和长度相同的T,由大写英文字母.你的任务是找到获得一些anagram的串T从字符串s需要"更换操作 ...

  5. 三菱FX2NPLC 应用编程实例分析

    今天学习了李金成老师三菱FX PLC应用编程与入门最后一讲,实例分析 三菱FX2NPLC 应用编程实例分析 PLC程序设计原则 PLC编程的基本步骤 实例一.啤酒灌装 实例二.六工位料车控制 PLC程 ...

  6. python基础练习题:Covfefe【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python基础练习题:Covfefe[难度:1级]: Covfefe 你给出的字符串.你必须用'covfefe但替换的单词(S)coverage,如果你没有找到字符串中的单词'coverage,你必 ...

  7. Python基础练习题:杂乱无章的页面列表【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    Python基础练习题:杂乱无章的页面列表[难度:1级]: 你得到了一本古老的书,不幸的是有几页错误的位置,幸运的是你的计算机有一个从"1"到"n"的顺序的每个 ...

  8. python进阶练习题:简单有趣#301:跳绳游戏【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python进阶练习题:简单有趣#301:跳绳游戏[难度:2级]: 任务 有些孩子在玩跳绳游戏.儿童跳过绳子在大致相同的速度:每一次秒'.如果孩子跳时失败,他需要整理一下绳子,然后继续.这将需要3 s ...

  9. python进阶练习题:格式化像“巴特,莉萨和玛吉”名称的字符串。【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python进阶练习题:格式化像"巴特,莉萨和玛吉"名称的字符串.[难度:2级]: 给定:含名称的散列数组 返回:格式化为除了最后两个名字,应该由一个符号分隔用逗号分隔的名称列表的 ...

最新文章

  1. Alibaba Cloud Linux 2.1903 LTS 64位服务器yum源下载404,Alibaba Cloud Linux 2实例中使用docker-ce、epel等YUM源安装软件失败
  2. Spring对Hibernate事务管理
  3. mysql主从虚拟机_虚拟机centos7Mysql实现主从配置
  4. python解析excel公式_[python][openpyxl]读取excel中公式的结果值
  5. Shell——流程控制
  6. 百练 05 切割回文
  7. NET中各种数据库连接大全
  8. 【Scala】Scala中特殊函数的使用(代码)
  9. 机器学习套路 —— 样本集的拆分(正样本、负样本)
  10. IntelliJ 平台 2020 年路线图,规划原来这么厉害
  11. 用C语言写一个查单词的小demo
  12. 51 单片机AD采集电压值的坑
  13. html cm和px转换,px和cm换算长度单位 怎么把AI单位里的像素改成毫米?
  14. 双稳态电路的两个稳定状态是什么_555定时器原理知多少?四种应用电路分享
  15. HTML 制作简单的下拉菜单
  16. 短信系统通道路由的设计和思路-移讯云短信系统
  17. IOI 2022国际信息学竞赛那些事儿(附Day1原题)
  18. java计算机毕业设计小型企业员工工资管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  19. 什么是Arduino? 了解有关此开源电子平台的信息
  20. 今天一不小心,把抖爸爸给爬了

热门文章

  1. 汽车租赁问题(Car Rental)
  2. 让沸腾的空体和世界碰撞
  3. KingDraw主界面介绍_超好用的化学结构式编辑器
  4. VR直播是什么?看VR直播应用如何开启新直播时代!
  5. mysql截取中文字符_mysql 截取中文字符
  6. JavaScriptCore 全面解析 (上篇)
  7. 【编程实践】第二章 C++面向对象编程《C++程序设计语言》 / By 禅与计算机程序设计艺术ChatGPT
  8. 一份超经典SpringBoot启动脚本
  9. 平凡的世界---读后感1
  10. 构建CTC语音识别解码网络