Python学习之认识python

Python 版本

? Python 从1989年诞生的第一个版本,到目前为止,存在 python2 和 python3 两个版本,并且两个版本不兼容。目前python 程序中 python2 占比依然大于 python3,但 python2 已于2020-01-01官方不再维护,因此学习 python,强烈推荐 python3。

第一个 python 程序

判断当前分钟数为奇数还是偶数,并打印信息

from datetime import  datetime

odds =[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59]

now_this_minute = datetime.today().minute
if now_this_minute in odds:
    print(f"当前分钟数为奇数:{now_this_minute}")
else:
    print(f"当前分钟数为偶数:{now_this_minute}")
    
>>>当前分钟数为奇数:17

from datetime import datetime

datetime 是 python 的标准库提供的模块,可以获取当前的时间,年、日、月、时、分、秒。

标准库又叫 python 的“内置电池”,里面包含了各种各样的方法,以此满足 python 程序员的各种需求,当然,python 也支持导入第三方的库(如果已安装对应库)。

为什么从 datetime 导入 datetime 呢?可能这会有些别扭,但这是 python 的固定写法,也许这也是 python 的特点之一

odds=[]

这是 python 其中一种数据结构-列表,python 还有其他三种数据结构,包括:元组、字典、集合。列表是一种有序可修改的,存储各种数据类型的数据结构,在 python 中非常常用,和其他语言的数组类似。

= 是 python 给变量赋值的方式

now_this_minute = datetime.today().minute

使用 datetime 模块的 today 方法,获取当前的分钟数,并赋值给变量 now_this_minute。

if now_this_minute in odds

if:python 的判断方式,和其他语言一样。

in:是 python 的一种判断一个变量是否在一个列表中或者对象中的方式,若在,则返回 True,否则返回 False。

else:

print(f"当前分钟数为奇数:{now_this_minute}")

print:python 打印信息的方法(pirnt 在 python2 中是一个关键字,而在 python3 中是一个方法)

f"{}":python 中字符串格式化的方式之一,也是当前最推荐使用的方法,除此之外,还有两种方法也可以格式化字符串,% 以及 format,% 是许多语言都支持的一种方式,但已经不推荐使用该种方式,而 format 则是 python 另外推荐使用的一种方式。

通过上面程序,对 python 有了一个初步的认识。但这个程序只能执行一次判断一次,如果想要执行一次可迭代判断多次的话,该如何实现呢?

在 python 中想要实现循环迭代,常用的方法有 for 和 while。如果已知道需要迭代的次数,则推荐使用 for 循环; while 循环是一个深度循环,需要适时的跳出循环,否则容易进入死循环。但死循环也是有应用场景的,比如:ATM

实现判断当前分钟数为奇数还是偶数,并打印信息,循环迭代5次的代码如下:

from datetime import  datetime
from time import sleep
import random

odds =[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59]

for i in range(5):
    now_this_minute = datetime.today().minute
    if now_this_minute in odds:
        print(f"当前分钟数为奇数:{now_this_minute}")
    else:
        print(f"当前分钟数为偶数:{now_this_minute}")
    wait_time = random.randint(1, 60)
    sleep(wait_time)
    
>>>当前分钟数为偶数:12
>>>当前分钟数为奇数:13
>>>当前分钟数为偶数:14
>>>当前分钟数为偶数:14
>>>当前分钟数为偶数:14

上面的程序使用了 for 循环,time 模块,以及 random 模块

for i in range(5)

循环执行5次,怎么确定是执行了5次呢?这归功于 range 函数,range 函数最基本的形式是接收一个整数参数,并返回一个可迭代的数字列表,从 1 开始,到指定的参数结束,比如:range(5),则返回的结果为 [1, 2, 3, 4, 5]

random.randint(1, 60)

random 是内置的标准库模块,randint 函数能从给定的范围中随机获取一个数,randint(1, 60):从1~60中随机获取一个整数

time

time 是内置的标准库模块,提供与时间相关的处理方法,sleep 是一个睡眠等待方法,可以使得程序暂停等待指定的秒数

学习内容来自《Head First Python》

相关推荐