挑战14天学完Python----初识计算思维

这篇具有很好参考价值的文章主要介绍了挑战14天学完Python----初识计算思维。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

往期文章

挑战14天学完Python----初识Python语法

挑战14天学完Python----初识python基本图形绘制

挑战14天学完Python----初识计算思维

前言

本章将从两个实例:"天天向上的力量"和"文本进度条"两个实例出发,学习数字类型的操作、字符串类型及操作、Python中非常重要的time库的使用.
挑战14天学完Python----初识计算思维

1. "天天向上的力量"实例

1951 年,毛泽东主席题词“好好学习、天天向上”,成为激励一代代中国人奋发图强的经典短语。那么“天天向上”的力量有多强大呢? 下面我们将用Python 程序来演算天天向上的力量。

问题一:天天向上的力量
1%一年 365 天,以第 1天的能力值为基数,记为 1.0,当好好学习时能力值相比前一天提高 0.1%,当没有学习时能力值相比前一天下降 0.1%。。每天努力和每天放任一年下来的能力值相差多少呢?

需求分析

  • 数学公式可以求解,似乎没必要用程序?
  • 如果是"三天打鱼两天晒网”呢?
  • 如果是"双休日又不退步"呢?

根据题目,代码如下:
挑战14天学完Python----初识计算思维
0.1%。的力量,接近2倍,不可小觑哦

问题二:5%。和1%的力量
一年365天,每天进步0.5%。或1%,累计进步多少呢?
一年365天,每天退步0.5%。或1%,累计剩下多少呢?
在问题二中,我们增加一个变量dayFactor,使用变量的好处:一处修改,处处可用

0.5%的力量:挑战14天学完Python----初识计算思维
1%的力量:
挑战14天学完Python----初识计算思维
0.5%。的力量,惊讶!
1%的力量,惊人!
问题三: 工作日的力量
一年365天,一周5个工作日,每天进步1%
一年365天,一周2个休息日,每天退步1%
这种工作日的力量,如何呢?
我们采用循环模拟365天的过程抽象 + 自动化
挑战14天学完Python----初识计算思维
挑战14天学完Python----初识计算思维
在这段代码中我们*抛弃了数学思维,引入了计算思维,计算思维是抽象和自动化相结合的结果
抽象:抽象问题的形式化逻辑
自动化:将抽象的结果通过程序自动实现

问题四:工作日的努力
工作日模式要努力到什么水平,才能与每天努力1%一样?
A君: 一年365天,每天进步1%,不停歇
B君: 一年365天,每周工作5天休息2天,休息日下降1%,要多努力呢?
挑战14天学完Python----初识计算思维

# DayDayUp4.py
def dayUp(df):
    dayup = 1
    for 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.001
print("工作日的努力参数是:{:.3f}".format(dayFactor))

挑战14天学完Python----初识计算思维

实例虽然仅包含8-12行代码,但包含很多语法元素条件循环、计数循环、分支、函数、计算思维清楚理解这些代码能够快速入门Python语言

2. 数值运算操作

2.1 数值运算操作符

操作符是完成运算的一种符号体系
挑战14天学完Python----初识计算思维
挑战14天学完Python----初识计算思维
二元操作符有对应的增强赋值操作符
挑战14天学完Python----初识计算思维
数字类型的关系:类型间可进行混合运算,生成结果为"最宽"类型
三种类型存在一种逐渐"扩展"或"变宽"的关系
整数 ->浮点数 -> 复数
例如: 123 + 4.0 = 127.0(整数+浮点数 = 浮点数)

2.2 数值运算函数

一些以函数形式提供的数值运算功能

挑战14天学完Python----初识计算思维
注意:pow(x,y[,z])中z能保证结果范围始终在保持在计算机计算的范围内
挑战14天学完Python----初识计算思维挑战14天学完Python----初识计算思维

在敲"文本进度条"之前我们先来了解一些字符串与time库相关知识,以便更好理解代码.

3. 字符串类型的操作

3.1 字符串的特殊字符

转义符\

  • 转义符表达特定字符的本意
    "这里有个双引号(”)” 结果为这里有个双引号(”)
  • 转义符形成一些组合,表达一些不可打印的含义
    ”\b"回退 n"换行(光标移动到下行首) r”车(光标移动到本行首)

3.2 字符串操作符

由0个或多个字符组成的有序字符序列
挑战14天学完Python----初识计算思维
一个例子:获取星期字符串
输入: 1-7的整数,表示星期几
输出:输入整数对应的星期字符串例如: 输入3,输出 星期三
挑战14天学完Python----初识计算思维

3.3字符串处理函数

以函数形式提供的字符串处理功能
挑战14天学完Python----初识计算思维
挑战14天学完Python----初识计算思维

3.4 Unicode编码

Unicode编码Python字符串的编码方式
Unicode编码是Python的统一字符编码,即覆盖几乎所有字符的编码方式从0到1114111(0x10FFFF)空间,每个编码对应一个字符
Python字符串中每个字符都是Unicode编码字符
在Python中,数字、标点符号、汉字、字母都是一个字符

Unicode编码的一些有趣的例子
挑战14天学完Python----初识计算思维

3.5 字符串处理方法

一些以方法形式提供的字符串处理功能挑战14天学完Python----初识计算思维
挑战14天学完Python----初识计算思维
挑战14天学完Python----初识计算思维

3.5 字符串类型的格式化

格式化是对字符串进行格式表达的方式

字符串格式化使用.format0方法,用法如下:

<模板字符串>.format(<逗号分隔的参数>)

图示:
挑战14天学完Python----初识计算思维

挑战14天学完Python----初识计算思维

format()方法的格式控制----槽内部对格式化的配置方式

{<参数序号> : <格式控制标记>}
挑战14天学完Python----初识计算思维

举一些例子说明他们的使用:
挑战14天学完Python----初识计算思维
挑战14天学完Python----初识计算思维
槽格式控制 填充 对其 宽度

:b 二进制形式输出
:c 以字符形式(Unicode的编码形式)输出
:d 以十进制形式输出
: o 以八进制形式输出
:x 以十六进制形式输出
:X 以大写十六进制形式输出

编写模板字符串判断浮点类型的输出方式
:e 采用科学计数法e形式表现浮点数
:E 采用科学计数法E形式表现浮点数
:f 指的是以通常的非科学计数法形式表示浮点数
:% 百分号形式表示浮点数

4. time库的使用

time库是Python中处理时间的标准库
它可以:
计算机时间的表达
提供获取系统时间并格式化输出功能
提供系统级精确计时功能,用于程序性能分析

time的引用使用方式:
import time
time.()

4.1 time库的三类函数

  • 时间获取: time() ctime() gmtime()
    挑战14天学完Python----初识计算思维
    挑战14天学完Python----初识计算思维
  • 时间格式化: strftime() strptime()
    将时间以合理的方式展示出来
    格式化:类似字符串格式化,需要有展示模板
    展示模板由特定的格式化控制符组成
    strftime()方法
    挑战14天学完Python----初识计算思维
    ts变量是指在gmtime函数中输出的格式
    tpl定义了输出效果
    挑战14天学完Python----初识计算思维
    格式化控制符挑战14天学完Python----初识计算思维
    挑战14天学完Python----初识计算思维
    举个例子挑战14天学完Python----初识计算思维
  • 程序计时: sleep(),perf_counter()
    程序计时指测量起止动作所经历时间的过程
    测量时间: perf_counter0)
    产生时间 : sleep0)
    挑战14天学完Python----初识计算思维
    挑战14天学完Python----初识计算思维

5."文本进度条"实例分析

进度条是计算机处理任务或执行软件中常用的增强用户体验的重要手段,它能够实时显示任务或软件的执行进度。接下来我们将利用 Python字符串处理方法实现文本进度条功能。
挑战14天学完Python----初识计算思维

需求分析:
采用字符串方式打印可以动态变化的文本进度条
进度条需要能在一行中逐渐变化
刷新的原理是后面更新的内容覆盖前面的内容

问题分析:
如何获得文本进度条的变化时间?
采用sleep0模拟一个持续的进度

  • 方法一:
    最简单的方法,但不能实现单行刷新
# TextProBarQ1.py
import time
scale = 10
print("------执行开始------")
for i in range(scale+1):
    a = '*' * i
    b = '.' * (scale - i)
    c = (i/scale)*100
    print("{:^3.0f}%[{}->{}]".format(c, a, b))
    time.sleep(0.1)
print("------执行结束------")

挑战14天学完Python----初识计算思维挑战14天学完Python----初识计算思维

  • 方法二:
    实现单行刷新
    刷新的关键是\r
    刷新的本质是: 用之后打印的字符覆盖之前的字符
    不能换行: print()需要被控制
    要能回退: 打印后光标退回到之前的位置 \r
    代码如下:
# TextProBarQ2.py
import time
for i in range(101):
    print("\r{:3}%".format(i), end="")
    time.sleep(0.1)

如图我们可以看到动态效果;
挑战14天学完Python----初识计算思维
是不是还挺好玩的呢23333……

  • 方法三:
    较复杂的一个方法,具有格式框架,有进度’*'输出,又有时间记录的完整进度条.
# TextProBarQ3.py
import time
scale = 50
print("执行开始".center(scale//2, "-"))
start = time.perf_counter()
for i in range(scale+1):
    a = '*'*i
    b = '.'*(scale - i)
    c = (i/scale)*100
    dur = time.perf_counter() - start
    print("\r{:^3.0f}[{}->{}]{:.2f}s".format(c, a, b, dur), end='')
    time.sleep(0.1)
print("\n"+"执行结束".center(scale//2, '-'))

代码解析:
.center方法将"-"字符填充在"执行开始"和"执行结束"字符串的两侧,perf_counter函数计时,dur记录每一次打印文本进度条需要的时间,\r实现光标向行首移动,end参数赋值为空字符使得每次输出后不换行.

\r和end详解:
因为

  • input获得的输入会被保存为字符串类型
  • print输出函数后会默认换行到下一行

所以我们要使用\r和end参数

  • \r 在打印字符串信息之前,使光标退回到当前行的行首
  • end print()函数的一个参数,默认情况下不增加,指的是输出信息后,默认在最后增加一个换行换到下一行.但如果在**输出信息之后,增加",end="这样一个参数,它就能改变print输出最后增加的信息.**比如,我们将end赋值为空字符串,那么print每一次输出字符串后它都不会增加换行,它自会把光标停留在当初输出字符串的后面.

挑战14天学完Python----初识计算思维文章来源地址https://www.toymoban.com/news/detail-444859.html

到了这里,关于挑战14天学完Python----初识计算思维的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一天学完C++的标准模板库STL

    提到字符串,我们会想起C语言中的 char * ,这是一个指针。而在STL中 string 也是用来声明字符串的,但是 string 是一个类,需要导入库 #includestring 。 String 封装了 char * ,管理这个字符串,是一个 char* 型的 容器 。 string 本质上是一个动态的 char 数组。 使用String字符串的第一步

    2023年04月17日
    浏览(34)
  • STM32学习——半天学完正点原子入门篇例程,STM32:学会了吗?我:学废了✨

    本文代码均来正点原子标准例程 声明:本文不是教学文章,可能也不适合初学者阅读 不知为什么,最近总蹦出有很多想法(可能是工作太闲了)一会想学这,一会想学那,这不,突然想复习一下 STM32 了。 我好久以前就学过正点原子的课程,还买过一些开发板,但现在手上只

    2024年02月04日
    浏览(29)
  • 山东大学计算机科学与技术学院程序设计思维与实践作业 week14-动态规划(4)

    山东大学计算机科学与技术学院程序设计思维与实践作业 山大程序设计思维与实践作业 sdu程序设计思维与实践 山东大学程序设计思维实践作业H14 山大程序设计思维实践作业H14 山东大学程序设计思维与实践 week14-动态规划(4) 相关资料:GitHub 题目描述 给出一棵树,求树的

    2024年02月09日
    浏览(101)
  • Python第一天学习之Python数据类型

    1.数据类型介绍 2.数据转换 Python会进行自动的转换,但是,运算就错误,在赋值时可以直接转换,但是在计算时无法直接转换。 数据类型转换 返回的值改变了类型,原数据没修改 3.命名规则 Python不允许$ 开头只能字母或者下划线 大小写敏感的 4.运算符 与其他不同的是, 取整

    2024年02月13日
    浏览(28)
  • 公众号hanniman往期精选

    目录 一、AI产品分析(10篇) 二、AI产品经理(10篇) 三、AI技术(10篇) 四、AI行业及个人成长(10篇) 一、AI产品分析 1、【重点】深度 | 关于AIGC商业化的13个非共识认知(8000字长文) 2、【重点】大B公司自己做AI,都是九死一生——To B AI 平台的1.0 模式,已几乎宣告失败?

    2024年02月09日
    浏览(26)
  • 初识大数据,一文掌握大数据必备知识文集(14)

    🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论⭐收藏 🔎 大数据领域知识 🔎 链接 专栏 大数据专业知识学习一 大数据专栏 大数据专

    2024年02月21日
    浏览(33)
  • 学完python的心得体会,初学者对python的感想

    大家好,给大家分享一下学了一年的python的收获和感想,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! Python今年是排名前3的最受欢迎和增长最快的编程语言之一。 它是一种多用途,高级别,面向对象,交互式,解释型和对用户非常友好的编程语言。 那么

    2024年02月08日
    浏览(32)
  • 学完C/C++,再学Python是一种什么体验?

    你好,我是安然无虞。 与C/C++等其他语言不同的是,Python中两个整数相除的结果为浮点数 Python中浮点数在内存中存储的时候遵循IEEE754标准,这套标准在表示浮点数时可能会存在微小的误差,但这个误差在实际开发中不会造成太大的影响 Python中创建变量的语法非常简单,比如

    2024年01月17日
    浏览(49)
  • Python 入门经典必背的 18 个程序,学完就入门 Python 了

    注意:这是初学者要牢记的 18 个代码,入门之后就简单了。 这段代码使用 print 函数输出字符串 “Hello World!” 到控制台。 以下是使用 python 计算数字的平方和的代码: 字符串连接:使用 + 或 + 运算符可以将两个字符串连接起来。 字符串重复:使用 * 运算符可以将字符串重复

    2024年02月09日
    浏览(52)
  • 《Python安全攻防:渗透测试实战指南》极致经典,学完即可包吃包住

    网络江湖,风起云涌,攻防博弈,从未间断,且愈演愈烈。从架构安全到被动纵深防御,再到主动防御、安全智能,直至进攻反制,皆直指安全的本质——攻防。未知攻,焉知防! 每一位网络安全从业者都有仗剑江湖的侠客情怀和维护网络公平正义的初心。渗透测试就是一把

    2024年02月06日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包