python练习题4
1.将字符串“老男孩”转换成UTF-8编码的字节类型
s = "老男孩"
bytes(s,'utf8')
s.encode('utf8')
2.简述globals(),locals()的作用
答:globals()获取所有的全局变量
locals()获取所有局部变量
3.利用内置函数zip(),实现功能
l1 = ["alex",22,33,44,55] l2 = ["is",22,33,44,55]
l3 = ["good",22,33,44,55] l4 = ["guy",22,33,44,55]
请获取字符串 s = "alex_is_good_guy"
l1 = ["alex",22,33,44,55]
l2 = ["is",22,33,44,55]
l3 = ["good",22,33,44,55]
l4 = ["guy",22,33,44,55]
print("_".join(list(zip(l1,l2,l3,l4))[0]))
4.书写执行结果
a.
name = "苍老师"
def outer(func):
name = 'alex'
func()
def show():
print(name)
outer(show)
输出结果为:苍老师
b.
name = "苍老师"
def outer():
name = "波多"
def inner():
print(name)
return inner()
ret = outer()
print(ret)
输出结果为:波多 None
c.
name = "苍老师"
def outer():
name = "波多"
def inner():
print(name)
return inner
ret = outer()
ret()
print(ret)
result = ret()
print(result)
输出结果为:波多 <function outer.<locals>.inner at 0x000002383F865598> 波多 None
d.
def outer(func,z,y)
return func(z) #若无return 则输出None
def show(x)
return x*x
ret = outer(show,9,23)
print(ret)
输出结果为:81
e.
def outer(func,z,y):
return func(z,y) #若无return 则输出None
f1 = lambda x,y:x+y
ret = outer(f1,11,22)
print(ret)
输出结果为:33
5.利用递归实现1*2*3*4*5*6*7=5040
def num(n,a = 1):
if n == 1:
return a
a *= n
res = num(n-1,a)
return res
print(num(7))
from functools import reduce
print(reduce(lambda x,y:x*y,range(1,8)))
print(reduce(lambda x,y:x*y,[i for i in range(1,8)])) #列表解析
def f(n):
if n == 1:
return 1
return n*f(n-1)
a = f(7)
print(a)
6.利用with实现同时打开两个文件(一读,一写,并将读取到的内容写入到写入模式的文件中)
with open('a.txt','r',encoding='utf8') as x,\
open('b.txt','w',encoding='utf8') as y:
y.write(x.read())
7.有一筐桃子,猴子每天吃一半加一个,吃到第十天只剩一个,问一筐桃子原来有多少个?
1.递归法:
def f(day,a):
if day == 1:
return a
a = (a+1)*2
day -= 1
res = f(day,a)
return res
sum = f(10,1)
print(sum)
2.函数法:
sum = 1
func = lambda x:(x+1)*2
for i in range(9):
sum = func(sum)
print(sum)
输出结果为:1534
python练习题4的更多相关文章
- Python练习题 028:求3*3矩阵对角线数字之和
[Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得 ...
- Python练习题 027:对10个数字进行排序
[Python练习题 027] 对10个数字进行排序 --------------------------------------------- 这题没什么好说的,用 str.split(' ') 获 ...
- Python练习题 026:求100以内的素数
[Python练习题 026] 求100以内的素数. ------------------------------------------------- 奇怪,求解素数的题,之前不是做过了吗?难道是想 ...
- Python练习题 025:判断回文数
[Python练习题 025] 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. ---------------------------------------- ...
- Python练习题 024:求位数及逆序打印
[Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- ...
- Python练习题 004:判断某日期是该年的第几天
[Python练习题 004]输入某年某月某日,判断这一天是这一年的第几天? ---------------------------------------------- 这题竟然写了 28 行代码! ...
- Python练习题-1.使用匿名函数对1~1000求和,代码力求简洁。
Python 练习 标签(空格分隔): Python Python练习题 Python知识点 一.使用匿名函数对1~1000求和,代码力求简洁. 答案: In [1]: from functools ...
- PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。
Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...
- python 基础 2.8 python练习题
python 练习题: #/usr/bin/python #coding=utf-8 #@Time :2017/10/26 9:38 #@Auther :liuzhenchuan #@File ...
- Python练习题2
如果真的想学精,学什么都不是好学的,如果真的想把Python学的出神入化,几乎自己想做什么都可以,就要下定恒心,坚持下去. 接下来继续更新Python练习题2,通过更新前一部的练习题让自己也学到了不少 ...
随机推荐
- 笔记-python-lib—data types-enum
笔记-python-lib—data types-enum 1. enum Source code: Lib/enum.py 文档:https://docs.python.org/3/lib ...
- docker 的实践操作
查看版本信息 [root@k8s-1 ~]# docker version Client: Version: 18.09.6 API version: 1.39 Go version: go1.10. ...
- 吴裕雄--天生自然 JAVA开发学习:java使用Eclipel连接数据库
1:jar可到Mysql官网下载:地址Mysql 连接jar包.:https://dev.mysql.com/downloads/connector/j/如图,在下拉列表框中选择Platform In ...
- centos7中redis安装
官网地址:http://redis.io/ 官网下载地址:http://redis.io/download 1. 下载Redis源码(tar.gz),并上传到Linux:或 wget http://d ...
- 「Luogu P1383 高级打字机」
一道非常基础的可持久化数据结构题. 前置芝士 可持久化线段树:实现的方法主要是主席树. 具体做法 这个基本就是一个模板题了,记录一下每一个版本的字符串的长度,在修改的时候就只要在上一个版本后面加上一个 ...
- Java连载80-数字类格式、随机数、BigDecimal
一.数字类 1.关于数字格式化:java.text.DecimalFormat; 2.数字格式元素: # 任意数字 , 千分位 . 小数点 0 不够补零 package com.bjpowernode ...
- C++11并发编程3------线程传参
/* 基本类型传值 */ #include <iostream> #include <thread> void func(int num) { num = ; std::cou ...
- 2016 年 31 款轻量高效的开源 JavaScript 插件和库
目前有很多网站设计师和开发者喜欢使用由JavaScript开发的插件和库,但同时面临一个苦恼的问题:它们中的大多数实在是太累赘而且常常降低网站的性能.其实,其中也有不少轻量级的插件和库,它们不仅轻巧有 ...
- IntelliJ IDEA Debug模式启动项目
导入项目,没有看到debug模式 点击 next next next next
- VS2010如何在同一个解决方案下建立多个项目以及切换运行不同项目
前言: 在编一些小程序时,往往我们不需要一个问题就建立一个解决方案,我们完全可以让多个项目放在同一个解决方案下,切换启动项运行即可.接下来介绍具体的步骤 一.建立空白解决方案以及添加新项目 1.先建立 ...