Python学习

id(x) 函数、函数式编程、模块、import 语句、rand

2021-07-21  本文已影响0人  秋天丢了李姑娘

id(x) 函数

is / is not 运算符

None 对象

python 内部只有一个None 对象

通常判断一个变量是否绑定None,用 is 运算符(很少用 == 运算符)

函数式编程

用一系列函数来解决问题

求 1 + 2 + 3 + 4 + ..... 99 + 100 的和
# 用函数式编程
print(sum(range(1, 101)))

函数 说明
map(func, 可迭代对象1, ...) 返回一个可迭代对象, 此可迭代对象的每个数据用函数func 处理后返回
filter(func, 可迭代对象) 返回一个可迭代对象, 此可迭代对象的数据用func 函数进行筛选后过滤
sorted(可迭代对象, key=None,reverse=False) 返回一个列表, 所有的可迭代对象用key 的返回值进行排序

写一个程序。输入一些学生的成绩,当输入负数时结束, 把不及格的学生成绩打印出来

写一个程序。输入一些学生的成绩,当输入负数时结束, 把前三名的学生成绩放在一个列表中

模块

一个.py 文件就是一个模块

模块是含有一些列数据,函数,类等的程序

调用模块

# file: test_mod.py
# 小李写的程序,小李想调用 小张写的 mymod.py 里的两个函数和两个字符串

# 用import 语句导入模块
import mymod

print(mymod.name1)  # Audi
print(mymod.name2)    # tesla

mymod.mysum(100)  # 调用 mymod 模块里的 mysum 函数
print(mymod.get_name())   # 'tarena'

import 语句

导入

  1. import 模块名 [as 模块新名字1]

    导入一个模块到当前程序

  2. from 模块名 import 模块属性名 [as 属性新名]

    导入一个模块内部的部分属性到当前程序

  3. from 模块名 import *

    导入一个模块内部的全部属性到当前程序

https://pypi.org/

random 模块

生成随机数

文档位置: https://docs.python.org/zh-cn/3/library/random.html

>>> import random
>>> random.randint(1, 6)  # random.randint(a,b) 生产 a~b的随机整数
3
>>> random.randint(1, 6)
4
>>> random.random()   # random.random  生成包含0 但不包含1 的浮点数
0.5884109388439075
>>> random.choice("ABCD")    # 从一个序列中,随机返回一个元素
'C'
>>> random.choice("ABCD")
'B'
>>> L = [1, 2, 3, 6, 9]
>>> random.choice(L)
6
>>> random.shuffle(L)   # random.shuffer(x)  # 把列表X 打乱
>>> L
[1, 6, 2, 9, 3]

写一个程序, 生产6位由数字组成的随机密码

time 模块

https://docs.python.org/zh-cn/3/library/time.html

时间戳:从 1970年1月1日 0:0:0 UTC 时间 开始计时到现在的秒数

UTC 时间 : 世界协调时间

struct_time 用 含有9个元素的元组来表示时间

>>> import time
>>> time.time()   # 返回当前时间的时间戳
1617117219.0382686
>>> time.ctime()    #返回当前的UTC 时间的字符串
'Tue Mar 30 23:14:48 2021'
>>> t1 = time.localtime()   # 返回当前的本地时间元组
>>> t1
time.struct_time(tm_year=2021, tm_mon=3, tm_mday=30, tm_hour=23, tm_min=18, tm_sec=22, tm_wday=1, tm_yday=89, tm_isdst=0)
>>> t1.tm_year
2021
>>> t1.tm_yday
89
>>> time.sleep(3)  # time.sleep(n)  # 让程序睡眠 n 秒
>>> time.strftime("%Y-%m-%d", t1)   # 格式化时间
'2021-03-30'
>>> time.strftime("%y-%m-%d", t1)
'21-03-30'
>>> time.strftime('%Y-%m-%d %H:%M:%S', t1)
'2021-07-21 17:37:41'
# 用时间元组来创建一个自定义的时间
>>> t2 = time.struct_time ( (2021,1, 1, 10, 11, 20, 0, 0, 0) )

datetime 模块

https://docs.python.org/zh-cn/3/library/datetime.html

>>> import datetime
>>> d1 = datetime.datetime.now()  # 返回当前的时间
>>> d1
datetime.datetime(2021, 3, 30, 23, 32, 7, 342559)
>>> d1.year
2021
>>> d1.year, d1.month, d1.day, d1.hour, d1.minute, d1.second, d1.microsecond  # 用 datetime 的各个属性可以得到 具体的信息
(2021, 3, 30, 23, 32, 44, 757673)
>>> d1.strftime("%Y-%m-%d")
'2021-03-30'

# 计算时间差
>>> delta_time = datetime.timedelta(days=2, hours=1)  # 生成 2天1小时后的时间差
>>> delta_time
datetime.timedelta(2, 3600)
>>> t1 = datetime.datetime.now()  # 得到当前时间
>>> t1
datetime.datetime(2021, 3, 30, 23, 39, 26, 863109)
>>> t1 + delta_time  # 计算 未来时间
datetime.datetime(2021, 4, 2, 0, 39, 26, 863109)

异常

try 语句

try:
可能发生异常的语句块
except 错误类型1 [as 变量名1]:
异常处理语句块1
except 错误类型2 [as 变量名2]:
异常处理语句块2
...
except 错误类型n [as 变量名n]:
异常处理语句块n
except:
异常处理语句块other
else:
未发生异常的语句
finally:
最终的处理语句

raise 语句

# 写一个函数, get_score 函数,读取用户输入的整数成绩,
# 成绩的正常值是0~100 之间, 要求, 如果不在0~100 之间
# 报 ValueError类型的错误
def get_score():
x = int(input('请输入成绩:'))
if 0 <= x <= 100:
return x
raise ValueError

上一篇下一篇

猜你喜欢

热点阅读