Python课程第五天作业
1、利用字典推导式和列表推导式完成数据的相互转化:
dic = {'name': 'Owen', 'age': 18, 'gender': '男'}
ls = [('name', 'Owen'), ('age', 18), ('gender', '男')]
dic=[(k,v) for k,v in dic.items()]
ls={k: v for k, v in ls}
2、用生成器实现可以无限取值的生成器对象,第一次取值得到1,第二次取值得到3,第三次取值得到6,第四次取值得到10,依次类推
def fn2():
total = 0
count = 1
while True:
total += count
yield total
count += 1
obj = fn2()
print(obj.__next__())
print(obj.__next__())
print(obj.__next__())
print(obj.__next__())
3、利用递归完成斐波那契数列案例:1、1、2、3、5、8、13、21初始1只兔子,1个月成熟,次月往后每月可以生出1只,每只兔子成熟后都具有繁殖能力,问一年半后一共有多少只兔子
def func(depth,k1,k2):
if depth > 18:
return k1
k3=k1+k2
res=func(depth+1,k2,k3)
return res
ret=func(1,0,1)
print(ret)
4、利用map函数完成成绩映射 [58, 78, 98] => ['不通过', '通过', '通过'] 用到匿名函数,匿名函数的返回值用三元运算符处理
a=map(lambda x: str(x) + '通过' if x > 60 else str(x) + '不通过' ,[58, 78, 98])
for i in a:
print(i)
5、利用reduce求[58, 78, 98]的总成绩
from functools import reduce
res=reduce(lambda a,b: a + b, [58, 78, 98])
print(res)
6、打印数字128的二进制、八进制、十六进制数
print(bin(128))
print(oct(128))
print(hex(128))
7、解决第7题求总成绩还可以用什么内置函数,输出13的7次幂的结果用什么内置函数,判断一个变量是否是函数对象的内置函数,原义字符串的内置函数
print(sum([58, 78, 98]))
print(pow(13,7))
callable(func)
8.写出for迭代器迭代字符串、列表、元组、集合、字典(三种情况)的代码实现
# Pyhon列表
list_a = [, , , , , , , , , ]
# Pyhon元组
tuple_a = (, , , , , , , , , )
# Python字典
dict_a = {'a': , 'b': , 'c': } # 可迭代对象的父类
from collections import Iterable
# 判断列表、元组、字典是否是可迭代对象
print(isinstance(list_a, Iterable),
isinstance(tuple_a, Iterable),
isinstance(dict_a, Iterable))
# 迭代列表
for i in list_a:
print(i)
# 迭代列表,顺带获得索引了
for i, v in enumerate(list_a):
print(i, v)
# 迭代字典中的值
for value in dict_a.values():
print(value)
# 迭代字典中的键和值
for k, v in dict_a.items():
print(k, v)
# 迭代由元组作为元素组成的列表
for x, y in [(, ), (, ), (, )]:
print(x, y)
9、用生成器完成自定义的my_range方法,可以实现和range类似的功能:
my_range(5) => 能迭代出0,1,2,3,4
my_range(5, 10) => 能迭代出5,6,7,8,9
my_range(5, 10,2) => 能迭代出5,7,9
my_range(10, 5, -2) => 能迭代出10, 8, 6
my_range(10, 5) => 没结果
my_range(5, 10, -1) => 没结果
代码:
def my_range(start,end=,step=):
count=
if end == and step == :
while count < start:
yield count
count +=
elif (end > and end > start) and step == :
while start < end:
yield start
start +=
elif (end > and end > start) and step > :
while start < end:
yield start
start += step
elif (end > and end < start) and step < :
while end < start:
yield start
start += step
elif (end > and end < start) and step > :
pass
elif (end > and end > start) and step < :
pass for i in my_range(,,-):
print(i)
Python课程第五天作业的更多相关文章
- Python课程笔记 (五)
今天主要学习图形用户界面,更多的还是要我们自己去实际操作,课仿佛上了一半就完了,分享一下课程(这里在SixthClass)的源码: https://gitee.com/wang_ming_er/pyt ...
- Python课程第三天作业
一.统计⽂件数据中出现的的所有字符与该字符出现的个数(不区分⼤⼩写,标点与空格也算) ⽂件内容: hello friend, can you speak English! # 结果: { 'h': 1 ...
- Python课程第四天作业
1.定义一个函数,该函数可以实现控制台输入,最终返回一个int类型的正整数 def chr_to_int(): user_input = input('请输您要转换的字符串:') if user_in ...
- 第五次作业——python效能分析与几个问题(个人作业)
第五次作业--效能分析与几个问题(个人作业) 前言 阅读了大家对于本课程的目标和规划之后,想必很多同学都跃跃欲试,迫不及待想要提高自身实践能力,那么就从第一个个人项目开始吧,题目要求见下. 阅读 阅读 ...
- 17秋 SDN课程 第五次上机作业
17秋 SDN课程 第五次上机作业 Project:https://github.com/Wasdns/new_balance Slide is available at https://github ...
- Java课程设计——博客作业教学数据分析系统(201521123082 黄华林)
Java课程设计--博客作业教学数据分析系统(201521123082 黄华林) 一.团队课程设计博客链接 博客作业教学数据分析系统(From:网络五条狗) 二.个人负责模块或任务说明 1.网络爬虫 ...
- Python学习第五堂课
Python学习第五堂课推荐电影:华尔街之狼 被拯救的姜哥 阿甘正传 辛德勒的名单 肖申克的救赎 上帝之城 焦土之城 绝美之城 #上节内容: 变量 if else 注释 # ""& ...
- C语言基础课第五次作业
PTA第五次作业 7-2 统计一行文本中的单词个数 一.程序代码 #include<stdio.h> int main(void) { ]; ,word=; char c; gets(st ...
- 17秋 软件工程 团队第五次作业 Alpha Scrum1
题目:团队作业--Alpha冲刺 17秋 软件工程 团队第五次作业 Alpha Scrum1 各个成员在 Alpha 阶段认领的任务 伟航:督促和监督团队进度,协调组内合作 港晨:APP前端页面编写: ...
随机推荐
- java的基础语法(标识符 修饰符 关键字)
Java 基础语法 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如 ...
- Map的嵌套 练习
Map的嵌套 练习 利用迭代和增强for循环的两种方式实现如下效果 package cn.ccc; import java.util.HashMap;import java.util.Iterat ...
- CF D.Mister B and Astronomers
题意概括好麻烦, 好吧既然是英文题面那放一下题意. 题意:有 n 个观察员,第一个观察员在 0 秒开始观察星空,随后第i 个观察员会在第 i − 1 个观察员之后 ai 秒观察,第一个观察员也会在第 ...
- PL/SQL连接远程服务器数据库,出现ORA-12154: TNS: 无法解析指定的连接标识符。
故障环境:上礼拜新装了一台服务器(win server2008r2),并在服务器上安装了ORACLE 11g database.且已经做好监听配置,开通了1521端口. 我又在局域网内另一台pc端装了 ...
- 高性能mysql的事物隔离级别
数据库事务的隔离级别有4种,由低到高分别为Read uncommitted .Read committed .Repeatable read .Serializable .而且,在事务的并发操作中可能 ...
- C++ Boost库分类总结
c# 程序员写c++,各种不适应.尤其是被内存操作和几十种字符串类型的转换,简直疯了,大小写转换竟然要手动写代码实现. Boost看介绍不错,也不知道能不能跨平台.过几天要上linux写c++, 也不 ...
- Django之 静态模板渲染
既可以简单的 django.http.HttpResponse 来把内容显示到网页上,也可以使用渲染模板的方法来显示内容. 说明:代码是基于 Django 1.8,但 Django 1.4 - Dja ...
- 纪念使用FTPClient工具所遇到的
我所使用的是org.apache.commons.net.ftp.FTPClient. 查了资料还有其余几个FTPClient,其余的先不展开. 1.ftpClient.changeWorkingD ...
- C#中Dispose,finalize,GC,析构函数区别
释放类所使用的未托管资源的两种方式: 1.利用运行库强制执行的析构函数,但析构函数的执行是不确定的,而且,由于垃圾收集器的工作方式,它会给运行库增加不可接受的系统开销. 2.IDisposable接 ...
- java Servlet生成随机验证码
import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; i ...