Python题目练习(二)

1.

要求:在不增加或修改任何print语句,且函数内只能增加一条语句的情况下,输出:"eric"。

1)只能修改f1()函数情况下,完成上述要求

name = 'lzl'
def f1():name = 'eric'print(name)
def f2():name = 'eric'f1()
f2()

2)只能修改f2()函数情况下,完成上述要求

name = 'lzl'
def f1():print(name)
def f2():global namename = 'eric'f1()
f2()

2.验证哥德巴赫猜想:(输入任意大于2的偶数,找出两个素数,其和等于输入的偶数。若找到输出这两个素数,否则输出找不到)这个问题可分解成两个步骤:1)判断正整数是否为素数,2)任意偶数是否能分解为两个素数之和。

def isPrime(q):if q <=1 :return Falsefor i in range(2,q//2 + 1):if q % i == 0:return Falsereturn True
def createPrime(n):result = []for i in range(2,n+1):if isPrime(i):result.append(i)return result
n = 10
result = createPrime(n)
for i in result:for j in result:if i + j == n:print(i,j)

3.递归、递推、lambda函数。题目:计算表达式 ,x由用户通过键盘输入,要求精确到10-7,即数列和的最后一项的绝对值小于等于10-7为止。

递归i = -1
n = 1
def power(n,x):global iprint(i)i += 1if 1/(n ** x) > 1e-7 and i %2 == 0:return power(n+1,x) + 1/(n ** x)elif 1/(n ** x) > 1e-7 and i %2 != 0:return power(n+1, x) - 1/(n ** x)else:return 1/(n ** x)
x = int(input('输入x:'))
result = power(n,x)
print(result)递推
def power(n,x):result = 0i = 0while 1/(n ** x) > 1e-7:if i %2 == 0:i+= 1result += 1/(n ** x)else:i+=1result -= 1/(n ** x)n += 1return result
n = 1
x = int(input('输入x:'))
result = power(n,x)
print(result)# Lambda
x = int(input('输入x:'))
n = 1
result = map(lambda n,y=0: y +((-1) ** (n+1)) * (1 / (n ** x)) if float(1/(n ** x)) > 1e-7 else 0, range(1,10000))
print(sum(result))

4.题目:输入字符串26个英文字母,围成一圈,以字母a为1,依顺时针方向计数数到5的倍数时,将对应的字母划去,直到所有字母都被划去时为止。思路:可用列表实现或直接用字符串切片实现

s = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
point =0
number = 1
while len(s) > 1:if(number % 5 == 0):print(s[point])s.remove(s[point])point -=1number = 0point +=1number +=1if point > len(s) - 1:point = 0
print(s[0])

5.杨辉三角形

trangle = []
for i in range(1,9):if i == 1:list0 = [1]elif i == 2:list0 = [1,1]else:list0 = [1] * ifor j in range(1,i-1):list0[j] = trangle[-1][j-1] + trangle[-1][j]trangle.append(list0)
for  i in  trangle:print(i)

6.题目:分类统计字符出现的次数(用字典统计)要求:

1)输入一串字符,统计并输出字符串中各字符出现的次数。

2)分类:字母letter,空格space,数字digit,其它字符other(用字典输出)。

# 频数统计
s = 'dgfrevgfdkgdsjgringvckghiregkjfdhgierghjkdfng'
count_dict = {}
for i in s:if i  not in count_dict.keys():count_dict[i] = 1else:count_dict[i] += 1
print(count_dict.items())# 分类统计
s = 'sdfg343dgfd  345fg 6sdf4!$ @#$!'
count_dict = {'字母': 0, '空格': 0, '数字': 0, '其他字符': 0, }
for i in s:if i.isalpha():count_dict['字母'] += 1elif i.isspace():count_dict['空格'] += 1elif i.isdigit():count_dict['数字'] += 1else:count_dict['其他字符'] += 1
print(count_dict.items())

7.凯撒密码

import random
#生成10位随机字符串
def createStr():STR = [chr(i) for i in range(65,91)] #对应字符A-Zsa = ''for i in range (10):sa+=random.choice(STR)print(sa)return sa
#对字符串进行加密
def enCaesar(sa):sa_enCaesar = ''for i in sa:if ord(i) < 91 - k:sa_enCaesar += chr(ord(i) + k)else:sa_enCaesar += chr(ord(i) + k -26)return sa_enCaesar
#写入txt
def writeFile(sa_enCaesar):with open('加密.txt','w',encoding='utf-8') as f:f.write(sa_enCaesar)
#读取txt
def readFile():with open('加密.txt','r',encoding='utf-8') as e:sa = e.readline()return sa
#解密
def deCaesar(sa):sa_deCaesar = ''for i in sa:if ord(i) >= 65+k:sa_deCaesar += chr(ord(i) - k)else:sa_deCaesar += chr(ord(i) + 26 -k)return sa_deCaesarsa = createStr()
k = int(input('请输入位移值:'))
sa_enCaesar = enCaesar(sa)
print('加密后:')
print(sa_enCaesar)
writeFile(sa_enCaesar)
sa = readFile()
sa_deCaesar = deCaesar(sa)
print('解密后:')
print(sa_deCaesar)

Python练习(二)相关推荐

  1. 看例子,学 Python(二)

    看例子,学 Python(二) 看例子,学 Python(一) 看例子,学 Python(三) 模块 文件 mymath.py 定义了函数 fib 和 fac,mymath.py 就是一个模块. A ...

  2. python生成二维码、动态二维码 和 而二维码解析

    python生成二维码.动态二维码 和 而二维码解析(8-20190129) 文章目录: 一.二维码介绍 二. 就是为了好玩所以想搞一下二维码,"好玩",少年醒醒,不要骗自己啦,起 ...

  3. 初学Python(二)——数组

    初学Python(二)--数组 初学Python,主要整理一些学习到的知识点,这次是数组. # -*- coding:utf-8 -*- list = [2.0,3.0,4.0] #计算list长度 ...

  4. python可以使用二维元组吗_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)...

    怎么去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...

  5. 互联网 4 大发明之二维码,你如何使用 Python 生成二维码?

    阅读文本大概需要 8 分钟. 新时代,人们有人信新的追求,自然而然会有新发明的诞生.去年,在"一带一路"国际合作高峰论坛举行期间, 20 国青年投票选出中国的"新四大发明 ...

  6. [Python图像处理] 二十八.OpenCV快速实现人脸检测及视频中的人脸

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  7. [Python图像处理] 二十七.OpenGL入门及绘制基本图形(一)

    八年前,我正是通过学习OpenGL和C++,通过做"采蘑菇的小矮人"游戏,慢慢走上并爱上了编程.回过头来,我希望通过Python和OpenGL分享一些有趣的知识,提升您的编程兴趣, ...

  8. 据说这是熟练掌握python的爷们_dongbei 是一门基于 Python 3 二次开发的东北方言编程语言...

    dongbei - 东北方言编程语言 学编程,就整东北浪! 体格咋地 扫码关注原作者微信公众号"老万故事会": 引言 dongbei是啥?它是一门以东北方言词汇为基本关键字的以人为 ...

  9. Python实现二叉搜索树的删除功能

    Python实现二叉搜索树的删除功能 二叉搜索树(二叉查找树,Binary Search Tree)又称为排序二叉树.有序二叉树. 二叉搜索树的实现可以参考:https://blog.csdn.net ...

  10. Python实现二叉搜索树

    Python实现二叉搜索树 二叉搜索树(二叉查找树,Binary Search Tree)是一种特殊的二叉树,又称为排序二叉树.有序二叉树. 二叉搜索树具有如下特性: 1. 如果二叉树的左子树不为空, ...

最新文章

  1. 爱了!安利一个相见恨晚的可视化学习网站
  2. 使用正则把数字前面的符号替换_正则表达式(一) 基本表达式
  3. SCI论文写作训练营笔记汇总02_英文科技论文阅读与解析
  4. ajax 输入不为空,ajax POST响应为空
  5. fastai学习:05_pet_breeds Questionnaire
  6. 通用时区:你应该知道的数据库时区知识
  7. 谁与争锋-七款杀毒软件比较分析
  8. axis2 调用.net基于https的WebService接口
  9. 在国外用什么app软件听歌 解除网易云音乐地区限制
  10. 微波工程学习1-电磁理论
  11. EPUB、CAJ 、PDF 格式的区别,有什么好用的安卓epub阅读器
  12. 开启并定制 Apache 显示目录索引样式
  13. 万字干货!《增长黑客》背后的逻辑
  14. Android面试你必须要知道的那些知识,已拿offer附真题解析
  15. matlab m序列扩频,基于matlab的移位寄存器法m序列的产生
  16. matlab——红绿灯颜色及数字识别(一)
  17. 【小白练习】一元二次方程计算器
  18. 公理设计:由奇怪海战引发的软件设计思考
  19. jsp新webshell的探索之旅
  20. 11 阶段总结一:详解OS的引导启动过程(含Bochs模拟软件的使用)

热门文章

  1. OSChina 周五乱弹 —— 想找类似的女孩就要调用同一个父类
  2. 决定显卡性能的比较重要的几个参数是什么?
  3. linux定时备份到邮箱,RouteOS之每日定时备份且发送到邮箱
  4. 【ASDL宽带常见错误代码解决办法】
  5. saltstack编写系统初始化状态
  6. 80后员工的12大缺点,管理他们需要18般兵器
  7. markdown常用数学符号小结⌈ ⌉⌊ ⌋
  8. 进口FT232RL如何被GP232兼容资料
  9. D. Magical Array(思维)
  10. GPS导航电文——第一子帧数据解析