python 作业
Linux day01 计算机硬件知识整理 作业要求:整理博客,内容如下 编程语言的作用及与操作系统和硬件的关系 应用程序-》操作系统-》硬件 cpu-》内存-》磁盘 cpu与寄存器,内核态与用户态及如何切换 存储器系列,L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOS与BIOS电池 磁盘结构,平均寻道时间,平均延迟时间,虚拟内存与MMU 磁带 设备驱动与控制器 总线与南桥和北桥 操作系统的启动流程 应用程序的启动流程 day02 作业要求一:整理操作系统博客
为何要有操作系统
操作系统的位置
操作系统的功能
操作系统的发展
多道技术 作业要求二:整理网络基础博客
什么是互联网协议及为何要有互联网协议
osi五层模型
用户上网流程
作业要求三:安装linux操作系统
安装linux操作系统
预习linux操作系统命令 day03 开启Linux操作系统,要求以root用户登录GNOME图形界面,语言支持选择为汉语
使用快捷键切换到虚拟终端2,使用普通用户身份登录,查看系统提示符
使用命令退出虚拟终端2上登录的用户
使用快捷键切换到虚拟终端5,使用管理员身份登录,查看系统提示符
使用命令退出虚拟终端5上登录的用户
切回图形界面,右单击桌面打开终端,输入关闭系统的命令
查看哪些用户在系统上工作
修改当前时间为2018年8月26号11:28
查看2015年10月份日历
使用两种方法查看ls命令的使用说明
清除屏幕
使用“useradd tom”命令新建tom用户,为tom用户设置密码“123”
切换当前用户为tom
查看当前登陆Linux系统所使用的用户名
开启Linux操作系统,要求以root用户登录GNOME图形界面
右击桌面打开终端,使用“useradd lucy”命令创建lucy用户
使用鼠标点击的方法进入根目录
点击进入root用户的家目录
点击进入lucy用户的家目录
点击进入用来存放常用的可执行文件的目录
点击进入用来存放系统的可执行文件的目录
点击进入设备文件目录
点击进入配置文件目录
创建目录wg
使用绝对路径的方法在wg目录下新建文件a.txt
进入wg目录
使用相对路径的方法在当前目录下新建wg01目录和b.txt文件
以长列表格式列出当前目录下的内容
删除空目录wg01
进入上一级工作目录
强制删除非空目录wg
复制/etc/passwd到当前目录,名为file1
不停的以只读的方式查看file1文件的内容
查看file1文件的前3行内容
查看file1文件的后2行内容
以百分比的方式分页查看file1文件的内容
以上下翻页的方法分页查看file1文件的内容 创建如下目录结构
sh-3.2# tree /FtpServer/
/FtpServer/
├── bin
│ ├── register.py
│ └── start.py
├── conf
│ └── settings.py
├── core
│ └── server.py
├── db
│ └── user.db
├── lib
│ └── common.py
└── log
└── access.log 1:切换到路径/tmp下,以追加的方式往start.py内写入内容
2:查看当前所在的路径
3:切换到log目录下,新建目录access,然后把access.log移动到该目录下。
4:切换到core目录下,然后在该路径下新建auth.py文件
5. 开启两个终端,一个终端往access.log文件中追加内容,然后在另外一个终端动态查看access.log新增的内容。
6. 关闭上述的终端,然后以覆盖的方式往access.log中写入内容
7: 删除/FtpServer目录 day04 作业一:
1) 新建用户natasha,uid为1000,gid为555,备注信息为“master”
2) 修改natasha用户的家目录为/Natasha
3) 查看用户信息配置文件的最后一行
4) 为natasha用户设置密码“123”
5) 查看用户密码配置文件的最后一行
6) 将natasha用户账户锁定
7) 将natasha用户账户解锁
8) 新建组police,gid为999
9) 查看组配置文件的最后一行
10) 将natasha用户加入police组
11) 修改police组的组名为jingcha
12) 删除natasha用户,连家目录和邮箱一起删除
13) 删除jingcha组 作业二:
1) 在用户的主目录下创建目录test,进入test创建空文件file1
2) 以长格式形式显示文件信息,注意文件的权限和所属用户和组
3) 为文件file1设置权限,使其他用户可以对此文件进行写操作。
4) 查看设置结果,
5) 取消同组用户对文件file1的读取权限,并查看设置结果。
6) 用数字表示法为文件file设置权限,所有者可读、可写、可执行,所属组用户和其他用户只具有读和执行的权限。设置完成后查看设置结果。
7) 用数字形式更改文件file1的权限,使所有者只能读取此文件。其他任何用户都没有权限。查看设置结果。
8) 回到上层目录,查看test的权限
9) 为其他用户添加对此目录的写权限 作业三:
以操作文件的方式,新建一个用户alex 作业四:
1) 新建目录/test/dir,属主为tom,数组为group1,/test目录的权限为777
2) 新建用户jack,切换到jack用户下,验证jack用户对dir目录的rwx权限(开启另外一个终端,依次修改dir目录的others权限) 3)将jack加入group1组,验证jack用户对dir目录的rwx权限(开启另外一个终端,依次修改dir目录的group权限) 4)切换到tom用户,验证tom用户对dir目录的rwx权限(开启另外一个终端,依次修改dir目录的user权限) 5)在dir目录内新建文件tom.txt,属主为tom,属组为group1,/test目录的权限为777 6)新建用户rose,切换到rose用户下,验证rose用户对tom.txt的rwx权限(开启另外一个终端,依次修改tom.txt的others权限来配合验证过程) 7)将rose加入group1组,在rose用户下,验证rose用户对tom.txt的rwx权限(开启另外一个终端,依次修改tom.txt的group1权限来配合验证过程) 8)切换到tom用户,验证tom用户对tom.txt的rwx权限(开启另外一个终端,依次修改tom.txt的user权限来配合验证过程) day05 作业一:
1) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖)
2) 将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件/2.txt(追加)
3) 将/1.txt、/2.txt两个文件打包为/1.tar
4) 使用gzip命令压缩1.txt文件名为1.txt.gz
5) 解压缩1.txt.gz
6) 使用bzip2压缩1.txt压缩后文件名为1.txt.bz2
7) 解压缩1.txt.bz2
8) 解包1.tar,解包后文件存放到/tmp目录下
9) 使用tar命令打包并且压缩/1.txt、/2.txt,得到的文件名为1.tar.gz
10) 解包1.tar.gz,解包后文件存放到/tmp目录下 作业二:
1) 使用vi编辑器编辑文件/1.txt进入编辑模式写入内容“hello world”
2) 进入命令行模式复制改行内容,在下方粘贴80行
3) 快速移动光标到文件的最后一行
4) 快速移动光标到当前屏幕的中间一行
5) 快速移动光标到文件的第五行
6) 在下方插入新的一行内容“welcome to beijing”
7) 删除刚插入的一行
8) 撤销上一步的操作
9) 进入扩展模式,执行文件的保存退出操作 作业三:
1) 开启Linux系统前添加一块大小为20G的SCSI硬盘
2) 开启系统,右击桌面,打开终端
3) 为新加的硬盘分区,一个主分区大小为10G,剩余空间给扩展分区,在扩展分区上划分两个逻辑分区,大小各5G
4) 格式化主分区为ext3系统
5) 格式化两个逻辑分区为ext4系统 作业四:
1)建立/etc/passwd的软连接文件,放在/tmp目录下
2)建立/etc/passwd的硬链接文件,放在/boot下,如果不成功,思考是为什么
3)查看刚刚建立的软连接,源文件与目标文件的inode
4)查看刚刚建立的硬连接,源文件与目标文件的inode day06 作业一:
1) 开启Linux系统前添加一块大小为15G的SCSI硬盘
2) 开启系统,右击桌面,打开终端
3) 为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划分1个逻辑分区,大小为5G
4) 格式化主分区为ext3系统
5) 将逻辑分区设置为交换分区
6) 启用上一步的交换分区
7) 查看交换分区的状态 作业二:free命令查看内存
整理buffer与cache的作用
计算真实的内存使用率 作业三:dd命令测试硬盘速度 作业四:查找一个名为init的进程,并且将其强制杀死 作业五:rpm命令
1) 挂载光盘文件到/media目录
2) 进去/media目录下的Packages目录
3) 查看系统已安装的所有rpm包
4) 查看系统是否安装dhcp软件包
5) 安装dhcp软件包
6) 查看dhcp软件包的信息
7) 查看dhcp软件包中所包含的所有文件
8) 查看/bin/ls文件是由哪个软件包产生
9) 卸载dhcp软件包 作业六:yum命令
1) 自定义yum仓库:createrepo
2) 自定义repo文件
3) 使用yum命令安装httpd软件包
4) 卸载httpd软件包:yum –y remove 软件名
5) 使用yum安装组件'KDE 桌面':yum –y groupinstall 组件名
6) 掌握使用yum删除组件‘KDE 桌面’:yum –y groupremove 组件名
7) 掌握清除yum缓存:yum clean all
8) 使用yum查找软件包:yum search 软件包名 作业六:源码安装python day07 作业一:nginx服务
二进制安装nginx包
作为web服务修改配置文件
让配置生效,验证配置 作业二:nfs服务
二进制安装nfs
作为共享存储挂载在三台web的网站根目录下
实现,在任意一台web上修改的结果,其余两台都可以看到 作业三:nginx反向代理三台web
实现基于轮询的方式调度三台web,并验证结果
实现基于权重的方式调度三台web,并验证结果
实现基于hash的方式调用三台web,并验证结果 作业四:nginx反向代理+三台web+nfs共享存储实现集群配置 作业五:源码安装nginx,并按照作业一描述的那样去测试使用 day08 我再找下 day09 作业一:完成作业未做完的集群架构
作业二:临时配置网络(ip,网关,dns)+永久配置
作业三:为集群内的机器设定主机名,利用/etc/hosts文件来解析自己的集群中所有的主机名,相应的,集群的配置应该改成使用主机名的方式
作业四:ssh登录,scp上传、下载,ssh秘钥登录,修改ssh server端的端口为8888然后进行登录和scp测试
作业五:整理bash命令类型,验证寻找一个命令的优先级
作业六:通配符实验 day10 作业一:整理正则表达式博客
作业二:grep作业(正则表达式及字符处理)
目标文件/etc/passwd,使用grep命令或egrep
1.显示出所有含有root的行:
2.输出任何包含bash的所有行,还要输出紧接着这行的上下各两行的内容:
3. 显示出有多少行含有nologin。
4.显示出那些行含有root,并将行号一块输出。
5.显示出文件中
6.新建用户
abominable
abominate
anomie
atomize
编写正则表达式,将他们匹配出来
7.建四个用户
Alex213sb
Wpq2222b
yH438PIG
egon666
egon 过滤出用户名组成是字母+数字+字母的行
8.显示出/etc目录下所有包含root的文件名
9. 过滤掉/etc/ssh/sshd_config内所有注释和所有空行 作业三:Sed作业:以/etc/passwd文件为模板 1,删除文件每行的第一个字符。 2,删除文件每行的第二个字符。 3,删除文件每行的最后一个字符。 4,删除文件每行的倒数第二个字符。 5,删除文件每行的第二个单词。 6,删除文件每行的倒数第二个单词。 7,删除文件每行的最后一个单词。 8,交换每行的第一个字符和第二个字符。 9,交换每行的第一个字符和第二个单词。 10,交换每行的第一个单词和最后一个单词。 11,删除一个文件中所有的数字。 12,删除每行开头的所有空格。 13,用制表符替换文件中出现的所有空格。 14,把所有大写字母用括号()括起来。
sed -r 's/[A-Z]/(&)/g' /etc/passwd
15,打印每行3次。 16,只显示每行的第一个单词。 17,打印每行的第一个单词和第三个单词。 18,用命令获取格式为 mm/yy/dd 的日期格式,结合管道,将其换成 mm;yy;dd格式 day11 作业一:整理博客,内容包含awk、变量、运算符、if多分支
作业二:awk文本处理
打印uid在30~40范围内的用户名。
打印第5-10行的行号和用户名
打印奇数行
打印偶数行
打印字段数大于5的行
打印UID不等于GID的用户名
打印没有指定shell的用户 作业三:shell脚本编写
自动部署、初始配置、并启动nginx反向代理服务
自动部署、初始配置、并启动三台web
监控脚本:监控每台机器的内存使用率>70%,则输出报警信息
(思路提示:
[root@www ~]# ((80>70))
[root@www ~]# echo $?
) Linux 完结 开发脚本自动部署及监控
1.编写脚本自动部署反向代理、web、nfs;
要求:
I、部署nginx反向代理三个web服务,调度算法使用加权轮询;
II、所有web服务使用共享存储nfs,保证所有web都对其有读写权限,保证数据一致性;
2.编写监控脚本,监控集群内所有服务存活状态,内存、磁盘剩余率检测,异常则发送报警邮件
3.编写计划任务,定时运行监控脚本,完成监控操作 python
3月31日 开始 day13 for while 循环 day14 字符串 列表 字典 购物车作业 day15 字典详解 一次break跳出多层循环 打印三级菜单,省 市 县 可随时退出或跳出上一级
菜单字典
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
} day16 运算符 二进制运算 购物车
用户输入工资,显示商品列表,选择要购买的商品
当用户买不起是提示余额不足,并显示还差多少钱
当用户退出时,打印购物车列表,物品,单价,数量,总价
并显示余额 day17 元组 集合 字符编码 day18 字符编码 字符串操作 列表操作 day19 文件操作 增删改查haproxy.conf配置文件
1.查询输入:www.oldboy1.com
2.删除输入:{'backend': 'www.oldboy2.org','record':{'server': ["1.1.1.1","2.2.2.2"],'weight': 20,'maxconn': 30}}
3.增加输入:{'backend': 'www.oldboy2.org','record':{'server': ["1.1.1.1","2.2.2.2"],'weight': 20,'maxconn': 30}}
4.修改输入:{'backend': 'www.oldboy2.org','record':{'server': ["1.1.1.1","2.2.2.2"],'weight': 20,'maxconn': 30}}
修改之后:{'backend': 'www.oldboy2.org','record':{'server': ["1.1.1.1","2.2.2.2"],'weight': 20,'maxconn': 30}} global
log 127.0.0.1 local2
daemon
maxconn 256
log 127.0.0.1 local2 info defaults
log global
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
option dontlognull listen stats :8888
stats enable
stats uri /admin
stats auth admin:1234 frontend oldboy.org
bind 0.0.0.0:80
option httplog
option httpclose
option forwardfor
log global
acl www hdr_reg(host) -i www.oldboy.org
use_backend www.oldboy.org if www backend www.oldboy1.org
server 100.1.7.9 weight 20 maxconn 1111111
server 100.1.7.9 weight 20 maxconn 0
server 10.10.0.10 10.10.0.10 weight 9999 maxconn 33
server 10.10.10.1 10.10.10.1 weight 22 maxconn 2000
server 2.2.2.4 2.2.2.4 weight 20 maxconn 3000 backend www.oldboy2.org
server 1.1.1.1 2.2.2.2 weight 20 maxconn 30
server 10.10.0.10 10.10.0.10 weight 9999 maxconn 33
server 10.10.10.1 10.10.10.1 weight 22 maxconn 2000 backend www.oldboy20.org
server 10.10.0.10 10.10.0.10 weight 9999 maxconn 33 一阶段考试 1、执行 Python 脚本的两种方式
2、简述位、字节的关系
3、简述 ascii、unicode、utf-8、gbk 的关系
4、请写出 “李杰” 分别用 utf-8 和 gbk 编码所占的位数
5、Pyhton 单行注释和多行注释分别用什么?
6、声明变量注意事项有那些?
8、如何查看变量在内存中的地址?
9、执行 Python 程序时,自动生成的 .pyc 文件的作用是什么?
10、写代码
a.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!
b.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
c.实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
11、写代码
a. 使用while循环实现输出2-3+4-5+6...+100 的和
b. 使用for循环和range实现输出 1-2+3-4+5-6...+99 的和
c. 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12 d. 使用 while 循环实现输出 1-100 内的所有奇数
e. 使用 while 循环实现输出 1-100 内的所有偶数
12、分别书写数字 5,10,32,7 的二进制表示
13、简述对象和 类的关系(可用比喻的手法)
14、现有如下两个变量,请简述 n1 和 n2 是什么关系? n1 = 123
n2 = 123
15、现有如下两个变量,请简述 n1 和 n2 是什么关系? n1 = 123456
n2 = 123456
16、现有如下两个变量,请简述 n1 和 n2 是什么关系? n1 = 123456
n2 = n1
17、如有一下变量 n1 = 5,请使用 int 的提供的方法,得到该变量最少可以用多少个二进制位表示?
18、布尔值分别有什么?
19、阅读代码,请写出执行结果
a = "alex"
b = a.capitalize() print(a)
print(b)
请写出输出结果:
20、写代码,有如下变量,请按照要求实现每个功能 name = " aleX"
a. 移除 name 变量对应的值两边的空格,并输入移除有的内容 b. 判断 name 变量对应的值是否以 "al" 开头,并输出结果
c. 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
d. 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果 e. 将 name 变量对应的值根据 “l” 分割,并输出结果。
f. 请问,上一题 e 分割之后得到值是什么类型? g. 将 name 变量对应的值变大写,并输出结果
h. 将 name 变量对应的值变小写,并输出结果
i. 请输出 name 变量对应的值的第 2 个字符?
j. 请输出 name 变量对应的值的前 3 个字符?
k. 请输出 name 变量对应的值的后 2 个字符?
l. 请输出 name 变量对应的值中 “e” 所在索引位置?
21、字符串是否可迭代?如可以请使用 for 循环每一个元素?
22、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li = ['alex', 'eric', 'rain']
22、写代码,有如下列表,按照要求实现每一个功能
li = ['alex', 'eric', 'rain']
a. 计算列表长度并输出
b. 列表中追加元素 “seven”,并输出添加后的列表
c. 请在列表的第 1 个位置插入元素 “Tony”,并输出添加后的列表
d. 请修改列表第 2 个位置的元素为 “Kelly”,并输出修改后的列表
e. 请删除列表中的元素 “eric”,并输出修改后的列表
f. 请删除列表中的第 2 个元素,并输出删除的元素的值和删除元素后的列表 g. 请删除列表中的第 3 个元素,并输出删除元素后的列表
h. 请删除列表中的第 2 至 4 个元素,并输出删除元素后的列表
i. 请将列表所有的元素反转,并输出反转后的列表
j. 请使用 for、len、range 输出列表的索引
k. 请使用 enumrate 输出列表元素和序号(序号从 100 开始) l. 请使用 for 循环输出列表的所有元素
23、写代码,有如下列表,请按照功能要求实现每一个功能 li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
a. 请输出 “Kelly”
b. 请使用索引找到 'all' 元素并将其修改为 “ALL”
24、写代码,有如下元组,按照要求实现每一个功能 tu = ('alex', 'eric', 'rain')
a. 计算元组长度并输出
b. 获取元组的第 2 个元素,并输出
c. 获取元组的第 1-2 个元素,并输出
d. 请使用 for 输出元组的元素
e. 请使用 for、len、range 输出元组的索引
f. 请使用 enumrate 输出元祖元素和序号(序号从 10 开始)
25、有如下变量,请实现要求的功能
tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
a. 讲述元祖的特性
b. 请问 tu 变量中的第一个元素 “alex” 是否可被修改?
c. 请问 tu 变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven” d. 请问 tu 变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
26、字典
dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
a. 请循环输出所有的 key b. 请循环输出所有的 value
c. 请循环输出所有的 key 和 value
d. 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
e. 请在修改字典中 “k1” 对应的值为 “alex”,输出修改后的字典 f. 请在 k3 对应的值中追加一个元素 44,输出修改后的字典
g. 请在 k3 对应的值的第 1 个位置插入个元素 18,输出修改后的字典
27、转换
a. 将字符串 s = "alex" 转换成列表
b. 将字符串 s = "alex" 转换成元祖
b. 将列表 li = ["alex", "seven"] 转换成元组
c. 将元祖 tu = ('Alex', "seven") 转换成列表
d. 将列表 li = ["alex", "seven"] 转换成字典且字典的 key 按照 10 开始向后递增
27、转码
n = "老男孩"
a. 将字符串转换成 utf-8 编码的字节,并输出,然后将该字节再转换成 utf-8 编码字符串,再输出 a. 将字符串转换成 gbk 编码的字节,并输出,然后将该字节再转换成 gbk 编码字符串,再输出
28、求 1-100 内的所有数的和
29、元素分类
有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个 key 中,将小于 66 的值保存至第二个 key 的值中。
即: {'k1': 大于 66 的所有值, 'k2': 小于 66 的所有值}
30、购物车 功能要求:
要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品,加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998},
] day20 初识函数 返回值 形参和实参 day21 名称空间与作用域 函数嵌套 闭包 day22 装饰器 day23 迭代器 生成器 协程函数 有两个列表,分别存放来老男孩报名学习linux和python课程的学生名字
linux=['钢弹','小壁虎','小虎比','alex','wupeiqi','yuanhao']
python=['dragon','钢弹','zhejiangF4','小虎比'] 问题一:得出既报名linux又报名python的学生列表
问题二:得出只报名linux,而没有报名python的学生列表
问题三:得出只报名python,而没有报名linux的学生列表 shares={
'IBM':36.6,
'lenovo':27.3,
'huawei':40.3,
'oldboy':3.2,
'ocean':20.1
} 问题一:得出股票价格大于30的股票名字列表
问题二:求出所有股票的总价格
l=[10,2,3,4,5,6,7]
得到一个新列表l1,新列表中每个元素是l中对应每个元素值的平方
过滤出l1中大于40的值,然后求和 day24 面向过程编程 列表解析和生成器表达式 内置函数作业 =====================作业一
#用map来处理字符串列表啊,把列表中所有人都变成sb,比方alex_sb
name=['alex','wupeiqi','yuanhao'] #用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾
>>> l=[{'name':'alex'},{'name':'y'}]
=====================作业二
#用filter来处理,得到股票价格大于20的股票名字
shares={
'IBM':36.6,
'Lenovo':23.2,
'oldboy':21.2,
'ocean':10.2,
} =====================作业三
#如下,每个小字典的name对应股票名字,shares对应多少股,price对应股票的价格
portfolio = [
{'name': 'IBM', 'shares': 100, 'price': 91.1},
{'name': 'AAPL', 'shares': 50, 'price': 543.22},
{'name': 'FB', 'shares': 200, 'price': 21.09},
{'name': 'HPQ', 'shares': 35, 'price': 31.75},
{'name': 'YHOO', 'shares': 45, 'price': 16.35},
{'name': 'ACME', 'shares': 75, 'price': 115.65}
] 1:map来得出一个包含数字的迭代器,数字指的是:购买每支股票的总价格
2:基于1的结果,用reduce来计算,购买这些股票总共花了多少钱
3:用filter过滤出,单价大于100的股票有哪些 day25 内置函数 day26 递归函数 二分法 函数式编程 面向对象编程 初识类和对象 day27 类与对象的名称空间及绑定方法 面向对象开发软件 4.19 苑昊测试题 1、8<<2等于?
2、通过内置函数计算5除以2的余数
3、s=[1,"h",2,"e",[1,2,3],"l",(4,5),"l",{1:""},"o"],将s中的5个字符提取出来并拼接成字符串。
4、判断"yuan"是否在[123,(1,"yuan"),{"yuan":"handsome"},"yuanhao"],如何判断以及对应结果?
5、l=[1,2,3]
l2=l.insert(3,"hello")
print(l2)
执行结果并解释为什么?
6、 a=[1,2,[3,"hello"],{"egon":"aigan"}]
b=a[:]
a[0]=5
a[2][0]=666 print(a)
print(b)
#计算结果以及为什么?
使用文件读取,找出文件中最长的行的长度(用一行代码解决)?
def add(s, x):
return s + x def generator():
for i in range(4):
yield i base = generator()
for n in [1, 11]:
base = (add(i, n) for i in base) print list(base) hello.py (gbk方式保存):
#coding:GBK
print(“老男孩”) 如果用py2,py3下在cmd下运行回报错吗?为什么并提出解决方案? (编码)
通过函数化编程实现5的阶乘
打印如下图案: *
***
*****
*******
*****
***
*
def outer():
count = 10
def inner():
count = 20
print(count)
inner()
print(count)
outer() (1)分析运行结果?
(2)如何让两个打印都是20
输入一个年份,判断是否是闰年?
任意输入三个数,判断大小?
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222
,几个数相加以及a的值由键盘控制。
f=open("a") while 1:
choice=input("是否显示:[Y/N]:")
if choice.upper()=="Y":
for i in f:
print(i)
else:
break 请问程序有无bug,怎么解决? def foo():
print('hello foo')
return()
def bar():
print('hello bar') (1)为这些基础函数加一个装饰器,执行对应函数内容后,将当前时间写入一个文件做一个日志记录。
(2)改成参数装饰器,即可以根据调用时传的参数决定是否记录时间,比如@logger(True)
三次登陆锁定:要求一个用户名密码输入密 day28 继承与派生 组合 接口与归一化设计 抽象类 作业一:定义如下类,并最大程度地重用代码(继承,派生:子类重用父类方法,组合,)
老师类
学生类
分数类
课程类
日期类 作业二:预习继承实现的原理,super,多态,封装,http://www.cnblogs.com/linhaifeng/articles/6182264.html day29 新式类与经典类 多态与多态性 封装 1.作业一:实现如图的继承关系,然后验证经典类与新式类在查找一个属性时的搜索顺序
2.作业二:基于多态的概念来实现linux中一切皆问题的概念:文本文件,进程,磁盘都是文件,然后验证多态性
3.作业三:定义老师类,把老师的属性:薪资,隐藏起来,然后针对该属性开放访问接口
苑昊老师有多种癖好,把这种癖好隐藏起来,然后对外提供访问接口
而且以后还会苑昊老师培养很多其他的癖好,对外开放修改接口,可以新增癖好,并且需要保证新增的癖好都是字符串类型,否则无法增加成功。 day30 property staticmethod classmethod day31 反射 attr系列 定制自己的数据类型 整理博客:
isinstance,issubclass
反射:getattr,setattr,delattr,hasattr
内置attr:__getattr__,__setattr__,__delattr__ 定制自己的数据类型:
1.继承的方式
2.授权的方式 作业:
基于授权定制自己的列表类型,要求定制的自己的__init__方法,
定制自己的append:只能向列表加入字符串类型的值
定制显示列表中间那个值的属性(提示:property)
其余方法都使用list默认的(提示:__getattr__加反射) day32 slots与迭代器 上下文管理 元类 模块练习
小程序:根据用户输入选择可以完成以下功能:
创意文件,如果路径不存在,创建文件夹后再创建文件
能够查看当前路径
在当前目录及其所有子目录下查找文件名包含指定字符串的文件
将三次登陆锁定的作业改为:python login.py -u alex -p 123456 输入的形式(-u,-p是固定的,分别代表用户名和密码) 层级结构:
dir1
---hello.py
dir2
---main.py 其中,hello.py: def add(x,y):
return x+y main.py如何能调用到hello.py中的add函数。
显示当前时间三天后是星期几? day33 time模块 random模块 hashilib模块 os模块 sys模块 day34 logging模块 json模块 pickle模块 re模块(正则) 计算器
s = "1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )" day35 作业一:
整理异常处理博客
整理导入模块与导入包博客 作业二:
创建如下目录结构
keystone/
├── __init__.py
└── auth
├── __init__.py
└── plugins
└── core.py core.py内容为: def create(cls, auth_payload, method_name):
pass class UserAuthInfo: def __init__(self):
self.password = None 要求一:保证包keystone可以在任意位置被导入
要求二:import keystone,然后就可以直接调用keystone.create和 keystone.UserAuthInfo 作业三:
预习软件开发规范 http://www.cnblogs.com/alex3714/articles/5765046.html 开发ATM程序,作业要求http://www.cnblogs.com/alex3714/articles/5765046.html
1-35
作业一:
整理博客
预习基于udp的套接字 作业二:
基于tcp的套接字实现远程执行命令的操作 作业三:
面向对象小组分享准备
36-
python 作业的更多相关文章
- Python作业第一课
零基础开始学习,最近周边的同学们都在学习,我也来试试,嘿嘿,都写下来,下次不记得了还能来看看~~ Python作业第一课1)登陆,三次输入锁定,下次不允许登陆2)设计一个三级菜单,菜单内容可自行定义, ...
- Python作业-选课系统
目录 Python作业-选课系统 days6作业-选课系统: 1. 程序说明 2. 思路和程序限制 3. 选课系统程序目录结构 4. 测试帐户说明 5. 程序测试过程 title: Python作业- ...
- python作业ATM(第五周)
作业需求: 额度 15000或自定义. 实现购物商城,买东西加入 购物车,调用信用卡接口结账. 可以提现,手续费5%. 支持多账户登录. 支持账户间转账. 记录每月日常消费流水. 提供还款接口. AT ...
- (转)Python作业day2购物车
Python作业day2购物车 原文:https://www.cnblogs.com/spykids/p/5163108.html 流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现) ...
- Python作业之三次登陆锁定用户
作业之三次登陆锁定用户 作业要求如下: 1. 输入用户名和密码 2. 认证成功提示欢迎信息 3. 认证失败三次锁定用户 具体代码如下: 方法1: import os#导入os模块 if os.path ...
- python作业高级FTP
转载自:https://www.cnblogs.com/sean-yao/p/7882638.html 作业需求: 1. 用户加密认证 2. 多用户同时登陆 3. 每个用户有自己的家目录且只能访问自己 ...
- Python作业
1使用while 循环输入1,2,3,4,5,6,,8,9,10 count = 0 while count<10: count+=1 if count ==7: continue print( ...
- python作业简单FTP(第七周)
作业需求: 1. 用户登陆 2. 上传/下载文件 3. 不同用户家目录不同 4. 查看当前目录下文件 5. 充分使用面向对象知识 思路分析: 1.用户登陆保存文件对比用户名密码. 2.上传用json序 ...
- python作业学员管理系统(第十二周)
作业需求: 用户角色,讲师\学员, 用户登陆后根据角色不同,能做的事情不同,分别如下 讲师视图 管理班级,可创建班级,根据学员qq号把学员加入班级 可创建指定班级的上课纪录,注意一节上课纪录对应多条学 ...
- python作业(第十一周)基于RabbitMQ rpc实现的主机管理
作业需求: 可以对指定机器异步的执行多个命令 例子: >>:run "df -h" --hosts 192.168.3.55 10.4.3.4 task id: 453 ...
随机推荐
- 34张史上最全IT架构师技术知识图谱 最新下载
本文是笔者多年来积累和收集的知识技能图谱,小编极力推荐分享给身边的技术人儿,希望这份技术知识图谱能够帮助到每一位奋斗在技术路上的小伙伴. 下面是笔者多年来积累和收集的知识技能图谱,有的是笔者原创总结的 ...
- HDU 4417 主席树写法
Super Mario Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- 使用树莓派录音——USB声卡
原文链接:http://jingyan.eeboard.com/article/73723 我们都知道树莓派只有音频输出口,而没有音频输入的接口,怎么办呢?其实只要一个USB声卡就可以了. USB声卡 ...
- logrotate配置和使用
logrotate是linux自带的日志管理工具.服务器如果不对日志进行滚动操作,单个日志文件的增长速度极快,不利于日志查找和问题定位.而logrotate能够自动完成日志的截断.压缩和滚动操作. 安 ...
- HDU 1045 dfs
Fire Net Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- Qt中内存泄露和退出崩溃的问题 delete
Qt中帮程序员做了一些内存回收的事情,但正因为这些反而让对此不熟悉的人会屡屡犯错. 收录一篇不错的文章: 在C++中学习过程中,我们都知道: delete 和 new 必须 配对使用(一 一对应):d ...
- 如何写出高性能DOM?
为什么要写高性能DOM? 一个网站,在页面上承载最多内容的就是DOM,而且无论是我们通过加载JS.加载图片,他们也是通过写HTML标签来实现的.而我们性能优化要做的无非就是几大块: 站点的网络消耗 D ...
- Java集合(3)一 红黑树、TreeMap与TreeSet(上)
目录 Java集合(1)一 集合框架 Java集合(2)一 ArrayList 与 LinkList Java集合(3)一 红黑树.TreeMap与TreeSet(上) Java集合(4)一 红黑树. ...
- python基础---输入输出
1.输入字符串. name=input() or name=input('please input a string') 这样可以接收一个字符串,包括空格,都可以输入.只有回车不接受,作为结束符, ...
- 地精排序Gnome Sort
号称最简单的排序算法,只有一层循环,默认情况下前进冒泡,一旦遇到冒泡的情况发生就往回冒,直到把这个数字放好为止 直接看它排序的过程,待排数组[6 2 4 1 5 9] 先设计一个标识i=0然后从头开始 ...