主要是time库,分支结构,循环结构,random库,报错处理

Time库

函数一览

time.time()
time.ctime()
time.gmtime
time.strftime(tpl,ts)
time.strptime(str.tpl)
time.perf_counter()
time.sleep(s)

获取时间

time.time()

获取当前电脑的时间戳,即计算机内部时间值,以浮点数形式输出,是一个很长很奇怪的数字。
其表示的意义是从1970年1月1日0点0分开始,到当前时间的以秒为单位的数值……所以它有什么用

time.ctime()

这个比上一个靠谱多了,这个输出的形式是一个字符串,输出的是人类易读的形式
输出的样子是这样的:Mon Jul 29 19:28:12 2019

time.gmtime()

这个获取时间的方法可以获得计算机可以处理的时间格式,是一种结构体形式(这里是这么叫吗?)print结果输出如下:time.struct_time(tm_year=2019, tm_mon=7, tm_mday=29, tm_hour=11, tm_min=29, tm_sec=34, tm_wday=0, tm_yday=210, tm_isdst=0)
这个函数获得的值可以在其它函数中使用

时间格式化

格式化字符

所有的格式化模板字符串都是以%+字符的形式构成的,用在相关函数中

  1. %Y:表示年份,取值范围0000~9999
  2. %m:表示月份,取值范围01~12
  3. %B:表示月份的名称,取值范围January~December
  4. %b:表示月份名称的缩写,取值范围Jan~Dec
  5. %d:表示日期,取值范围01~31
  6. %A:表示星期几,取值范围Monday~Sunday
  7. %a:表示星期几:取值范围Mon~Sun
  8. %H:表示小时(24小时制):01~24
  9. %I:表示小时(12小时制):01~12
  10. %p:表示上下午:AM或PM
  11. %M:表示分钟:00~59
  12. %S:表示秒:00~59

time.strftime(tpl,ts)

其中tpl是格式化模板字符串,用来定义输出效果;ts是计算机内部时间类型变量(即通过gmtime()得到的结果)
tpl必须以字符串的形式输入,除了格式化字符外其它的字符都会保留,例:

t=time.gmtime()
print(time.strftime("%Y-%m-%d  %H:%M:%S", t)

结果会输出2019-07-29 11:53:16这个时区不是中国的时区,所以会有差别

time.strptime(str,tpl)

与time.strftime作用相反,这个函数是把时间转化为gmtime那样结构体的形式
str的输入是以字符串的形式,并在tpl中说明这是怎样形式的字符串,然后返回结构体,如:

timeStr='2019-7-29 20:53:49
print(time.strptime(timeStr, "%Y-%m-%d  %H:%M:%S")

输出结果time.struct_time(tm_year=2019, tm_mon=7, tm_mday=29, tm_hour=20, tm_min=53, tm_sec=49, tm_wday=0, tm_yday=210, tm_isdst=0)

计时

time.perf_counter()

精准的测量一个时间值,单位为秒
每次调用返回一个当前时间值,所以如果想计时要调用两次

start = time.perf_counter()
end = time.perf_counter()
time = end-start

sleep(s)

休眠若干秒,单位是秒,可以是浮点数

分支结构

单分支结构

if <条件>:<语句>

True执行,False不执行,当然也可以if True:这样来写

二分支结构

if <条件>:<语句1>
else:<语句2>

此外要知道另一种紧凑形式的写法

<语句1> if <条件> else <语句2>

比如可以用在一个print里,例:一个猜谜的结果可以这么写

print("猜{}了".format("对" if <条件> else "错"))

这种紧凑形式不支持在语句中进行赋值等操作,只支持表达式形式

多分支结构

if <条件1>:<语句1>
elif <条件2>:<语句2>
elif <条件...>:<语句...>
else :<语句n>

注意取值范围的覆盖就好了

操作符

== ; != ; > ; < ; <= ; >=
A and B ; A or B ; not A

上面和C一样,下面是与或非
可以有if not True这样的写法,即False

循环

与C类似

for … in …

for <循环变量> in <遍历结构> :<语句块>
  1. for i in range(N)O(N)
  2. for i in range(M , N [,K] )
  3. for c in str 字符串的遍历,可以遍历字符串中每个字符进行操作,c可以用任意字符,只是习惯
  4. for item in ls对列表遍历,ls是一个列表,item可以用任意字符,只是习惯
  5. for line in fi对文件遍历,fi是一个文件标识符,遍历其每行,进行循环

while …

while <条件>:<语句块>

如果是while True这样的条件的话,可以用ctrl+c来退出

break和continue

与C基本一样
break跳出本个最内层的循环体,执行循环后的语句
continue跳出本次循环,执行下一次循环
都可以与while和for搭配使用

for … in …else与while …else

for ... in ... :<语句块1>
else :<语句块2>
while ...:<语句块1>
else :<语句块2>

仅当循环中出现break时有用,当循环没有被break跳出时,执行else后的语句,continue不会触发

random库

使用随机数的标准库

基本随机数函数
random.seed()
random.random()
---
扩展随机数函数
random.randint()
random.getrandbits()
random.uniform()
random.randrange()
random.choice()
random.shuffle()

与C中的随机数函数类似,它并不能产生真正的随机数,而是通过某种算法产生伪随机数,如果在给定相同的随机数种子情况下,则每次数字出现的顺序是一定的

random.seed()

初始化给定的随机数种子,不填时默认使用当前系统时间,在不使用seed函数直接使用random.random时,也默认使用系统时间做种子
种子只需要调用一次,不使用seed函数时,也是按第一次调用random函数时的系统时间做种子
如果多次调用seed,就每次按照新的seed给出随机数,使用相同的seed产生相同的序列

random.random()

随机产生一个[0.0 ,1.0)之间的小数

random.randint(a,b)

生成一个[a,b]之间的整数

random.randrange(m,n[,k])

生成一个[m,n)生成一个mn之间以k为步长的随机整数
random.randrange(10,100,10)结果会出现10,20…中的某一个

random.getrandbits(k)

生成一个k比特长的随机整数

random.uniform(a,b)

生成一个[a,b]之间的随机小数

random.choice(seq)

从序列seq中随机选择一个元素
random.choice([0,1,2,3,4,5,6,7,8,9])从中随机选择一个

random.shuffle(seq)

将序列seq中的元素随机排列,返回打乱后的序列

报错处理

使用保留字try ; except [; else ; finally]
即有可能报错的地方使用,比如

a=input("请输入一个整数")
print(a**2)

如果用户输入了一个字符,程序就会报错,所以可以使用try except

try :a=input("请输入一个整数")print(a**2)
except :print("请输入一个整数")

这样当第一部分报错时,程序依然可以进行,但是会执行except后的内容

也可以在except后加报错的类型,如except NameError 这样仅当出现NameError这样的错误时才执行except后的语句

还有一种样子是

try :<语句1>
except :<语句2>
else :<语句3>
finally :<语句4>

else仅当在<语句1>执行成功,未执行<语句2>时执行,finally不管怎样都执行时
else的用法与循环中else的用法一样

Python小白的自学笔记第四天相关推荐

  1. 基于python的openCV自学笔记(四)——遗漏知识点补充

    本篇补充暑假学opencv遗漏的相关知识点 参考链接:https://www.bilibili.com/video/BV1Fo4y1d7JL?from=search&seid=17628666 ...

  2. Python简短的自学笔记

    Python自学笔记 第一章:语法类型 list类型:['Michael', 'Bob', 'Tracy'] tuple(元组)类型:t = ('Adam', 'Lisa', 'Bart') dict ...

  3. 自学笔记十四:Matlab浮点型:创建和转换、取值范围、运算和精度问题

    1.浮点型的概念 浮点型分为单精度(single)浮点型和双精度(double)浮点型: IEEE浮点数算术标准(IEEE 754)是IEEE二进位浮点数算术标准(IEEE Standard for ...

  4. Python在入门-自学笔记-8字典

    Python零基础入门自学笔记 参考教程[Python教程]<零基础入门学习Python>最新版@B站@鱼C-小甲鱼 本文记录的主要是Python中的字典. 映射关系 效率会比列表快 0. ...

  5. python middle()_Python自学笔记(七):函数

    写在前面: 在两个电脑上编辑总是莫名其妙丢失内容,发现前面的笔记有丢失的部分,又回去补充了. 记到函数这一部分,书中案例会不断使用前面所学,所以会发现笔记有不完善的地方,以及在学习过程产生的疑问,会自 ...

  6. kmeans python interation flag_Python自学笔记-第六章面向对象编程(下)

    3.魔法方法 Python的对象天生拥有一些神奇的方法,它们总被双下划线所包围,他们是面向对象的 Python 的一切.他们是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一 ...

  7. #Python第三方模块学习笔记(四)——CSV模块功能及主要函数介绍

    声明:本篇文章为转载文章并附有自己的理解,如有冒犯请联系博主立马删除 源地址:https://blog.csdn.net/u012162613/article/details/41915859 1.c ...

  8. python网络爬虫——自学笔记1.用requests库爬取图片

    1.requests库的安装 rrequests库是公认的python的一个一个非常优秀的第三方库,下载方法也很简单 只需Win+R打开控制台命令窗口,输入pip install requests后回 ...

  9. 阿里云python轻应用学习笔记(四)---haas100通过python轻应用驱动舵机

    摘要:舵机是常用的执行器,haas100具有pwm功能,那么python轻应用编程驱动舵机能不能实现呢?本文就一步步带您做一遍. 硬件:haas100,SG90舵机 软件:win7 x64,串口助理 ...

最新文章

  1. Vue父组件和子组件之间传递数据
  2. java线程池队列场景,Java面试题汇总
  3. 互信息 卡方 - 文本挖掘
  4. centos离线安装mysql8_CentOS7离线安装Mysql8.0
  5. webservice 参数太大_手把手系列:常用数据交换方案Web Service接口处理法
  6. InfluxDB安装及使用
  7. 四级英语图表作文真题计算机,四级作文辅导二:图表类作文(范文、模板、必备句型。对了,还有作业)...
  8. tomcat vue 不用 前后端_部署前后端分离项目(后端 tomcat 前端 nginx)
  9. python 小技巧之获取固定下面包含的某种类型文件的个数
  10. tablelayout高度问题
  11. stm32f4 dma da正弦波发生器 keil5 hal库 CubeMX
  12. 关于linux文件系统出现脏数据修复的思路
  13. 零基础简单易用的EmberJS框架
  14. Unity Editor资源重命名
  15. Chosen.1 翁克 回忆 怪事
  16. 图片Exif信息解析(Java实现)
  17. java面向对象小知识
  18. 名帖157 王徽之 行楷《新月帖》
  19. 你离年薪50w的架构师还差多远
  20. Java组各任务工作流程

热门文章

  1. python考勤管理系统_Mysql和python在考勤系统中的应用
  2. VisualStudio的下载安装教程
  3. Linux 安装SVN服务器 图解教程
  4. 【ML4CO论文精读】用于组合优化的机器学习:方法论之旅(Yoshua Bengio, 2021)
  5. 搭建zerotier moon中转服务器实现虚拟局域网稳定快速互访
  6. Hi3518EV200+PS3210调试经验总结
  7. 云服务案例分析 BB平台 Quiz4
  8. 转载(https://blog.csdn.net/qq_36738482/article/details/72823509)大数据的概念
  9. 软件工程专业前景怎么样?
  10. android svga内存,iOS-SVGA动画渲染之内存优化