python简单代码input-Python简单程序的练习
1、Python编写一个输出小于N的所有素数的程序
编程要求
程序运行时,提示“N=”,用户输入一个正整数后(要对输入的数进行校验,不是一个大于2的正整数,则提示’error!input again:’,并重新提示输入:’N=’,直到输入了满足要求的数);
把小于N的所有素数存储在一个列表data;
输出data中的全部元素,按每行8个数,每两个数之间用1个空格隔开的格式输出。
根据列表求所有素数之和及平均值(保留小数点后面3位有效数字);
定义一个空列表存放素数
import numpy as np
data = []
while True:
s = input('N=')
if s.isdigit():
N = int(s)
if(int(s)<=2):
print('error!input again:')
continue
break
else:
print('error!input again:')
continue
for i in range(2,N+1):
for j in range(2,i):
if i % j == 0:
break
else:
data.append(i)
for a in range(len(data)):
print(data[a],end=' ')
if (a+1)%8 == 0:
print('')
print(' sum=%.0f,average=%.2f'%(sum(data), np.mean(data)))
2、Python输出小于任意给定的正整数N(N>20)的所有完美数
任务:本关任务:输出小于任意给定的正整数N(N>20)的所有完美数所谓完美数是:若大于0且小于正整数M的所有能整除M的因子的和等于M,则M为完美数,例如:6=1+2+3,因此,6是完美数
编程要求
此程序对运行时间有要求,必须尽可能减小算法时间复杂度。
本程序最佳的代码不会超过15行,如果你的代码超过15行,你得考虑是不是要优化一下(参考代码只有9行)
本题不需要像第1题那样进行合法性检查,假设你的输入都是合法的,即N>20
完美数的输出格式为:a=fact1+fact2+…,fact1,fact2,…因子按升序排序
N=int(input('N='))
for num in range(6,N):
factors=[m for m in range(2,int(num**0.5)+1) if num%m==0]
factors+=[num//n for n in factors]
factors.append(1)
if sum(factors)==num:
factors.sort()
s='+'.join(map(str,factors))
print(f'{num}={s}')
3、Python编写评委评分
任务:学校举行校园歌手大赛,请了N个评委给选手打分,你负责设计一个程序:依次输入N个评委的评分,去掉1个最高分和1个最低分,以其余平均分作为选手最终得分。
编程要求
编程要求
分数为连续输入的方式,相邻两个数之间用逗号(中文,英文逗号均可)或空格作为分隔符都可以识别。只要输入不合法,就提示重新输入。
输入合法的条件是:(A)输入的数据都是数值(B)位于区间(0,10]上的数值个数大于或等于5。
将最终输入的有效数值显示出来,基于最终的有效评分进行计算:去掉1个最高、1个最低分,求剩下的平均分作为最终得分。
最终得分保留小数点后3位有效数字。
尽量以最简洁的代码完成任务。
while True:
s=input('input score:')
seps=',锛 '
for sep in seps:
s=s.replace(sep,' ')
s=s.split()
try:
data=list(map(float,s))
data=[num for num in data if 0
if len(data)>=5:
break
except:
continue
print('valid scores:'+str(data))
max_score=max(data)
min_score=min(data)
avg_score=(sum(data)-max_score-min_score)/(len(data)-2)
print('max={0},min={1},score={2:.3f}'.format(max_score,min_score,avg_score))
4、Python函数的应用: 输出斐波那契数列
任务:给定一个整数N(N>=10),从1开始,输出元素个数为N的斐波那契数列
编程要求
(1)本程序的主程序代码已经给出,如下:
data=fibdata()
outputdata(data)
N = getint()
M = getint()
data = fibdata(N)
outputdata(data,M)
上面的fibdata用于生成一个斐波那契数列,getint用于获取用户从键盘输入的整数(必须为正整数,内部要进行校验,不合法就要求重新输入),outputdata用于根据每行多少个数据输出该数列
(2)请在读懂上述主程序代码的基础上,完成各个函数的定义(你只需要完成定义的代码,上面的调用代码不要求你输入(不过你可以把这段代码复制到你的本机开发环境进行测试)
#-*- coding: utf-8 -*-
def fibdata(n=10):
a, b = 0, 1
data=[1]
while n > 1:
a, b = b, a + b
n -= 1
data.append(b)
return data
def getint():
while True:
a=input('input a positive int:')
if a.isdigit():
break
else:
continue
return int(a)
def outputdata(data,M=5):
for i in range(len(data)):
print(data[i],end=' ')
if (i+1)%M == 0:
print('')
5、Python类的定义与使用:一元二次方程求解
编程要求
(1)以下是主程序文件(test.py)中的完整代码:
from myclass import *
if __name__=='__main__':
while True:
try:
a,b,c=eval(input('please input three float number:'))
equation=QuadraticEquation(a,b,c)
except:
equation=QuadraticEquation() #使用默认参数a=1,b=1,c=1初始化
#注意,这个返回结果必须是一个字典对象{'x1':1,'x2':2,'state':1},其项目依次对应根
#x1,x2,根的状态(0表示相等实根,1表示不等实根,2表示复数根
result=equation.getroot()
equation.outputresult(result) #调用对象的方法更友好地显示结果
print(result.keys(),',state={}'.format(result['state'])) #显示字典对象的键和根的状态
if input('continue(y/n)?').lower()!='y':
break
(2)在读懂主程序的基础上,在右侧代码区中完成myclass.py文件中的代码,从而使主程序文件能够执行,并输出期望的结果。
#-*- coding:utf-8 -
class QuadraticEquation():
def __init__(self,a=1,b=1,c=1):
self.a=a
self.b=b
self.c=c
def getroot(self):
dirt={}
x1=(-self.b+(self.b*self.b-4*self.a*self.c)**0.5)/(2*self.a)
x2=(-self.b-(self.b*self.b-4*self.a*self.c)**0.5)/(2*self.a)
dirt['x1']=x1
dirt['x2']=x2
if isinstance(x1,complex):
state=2
elif x1==x2:
state=0
else:
state=1
dirt['state']=state
return dirt
def outputresult(self , result):
if(result['state']==2):
print("{0}x+{1}x**2+{2}=0 has two complex roots x1={3:.3f},x2={4:.3f}"
.format(self.a,self.b,self.c,result['x1'],result['x2']))
elif result['state']==1:
print("{0}x+{1}x**2+{2}=0 has two inequal real roots:x1={3:.3f},x2={4:.3f}"
.format(self.a,self.b,self.c,result['x1'],result['x2']))
else:
print("{0}x+{1}x**2+{2}=0 has two equal roots x1=x2={3:.3f}"
.format(self.a,self.b,self.c,result['x1']))
6、字符串、正则表达式与文件操作:字符串加密与解密
任务描述
加密:给定一串原始的文本和一个编码字符串(例如utf-8),加密算法为:把原始内容转换为字节串,然后把字节串中的每一个元素对应的10进制整数转换为对应的字符串,各个字符串用1个小写字母作为分隔符连接起来,最终构成的字符串为加密后的字符串。分隔符的确定规则如下:
当前的分割字母在字母表中的顺序与它前面的那个数字对应,若那个数字为0,则为字母a,为1,则为字母b,…,。
例如,“china 中国”用编码’utf-8’加密后为“99j104e105f110a97h32c228i184e173d229j155f189j”
解密:给定上述加密后的字符串,反向解码为原始的字符串。
编程要求
(1)编写一个可复用的类Encryptionlock,实现上述功能。
(2)主程序通过使用Encryptionlock,实现对一个输入的字符串进行加密,及对一个输入的加密后的字符串进行解密,代码如下:
if name == "main":
s=input("输入待加密的字符串:’)
coding=input("输入编码字符串:’)
s_encrpt=Encryptionlock.encrypt(s,coding)
print("加密后为:’+s_encrpt)
s_decrpt=Encryptionlock.decrypt(s_encrpt,coding)
print("解密后为:’+s_decrpt)
#-*- coding: utf-8 -*-
import string
class Encryptionlock():
'''使用常用编码进行文本的加密和解密
'''
@staticmethod
def encrypt(originstr: str, coding: str = 'utf-8'):
'''对一个字符串进行加密,返回加密后的字符串
'''
result = originstr.encode(coding)
result = bytearray(result)
seq = string.ascii_lowercase
result = ''.join([str(s) + seq[s%10] for s in result])
return result
@staticmethod
def decrypt(encrypedstr: str, coding: str = 'utf-8'):
'''对一个字符串进行解密,返回解密后的字符串
'''
result= encrypedstr
seq = string.ascii_letters
for s in seq:
result = result.replace(s, ' ')
result = result.split(' ')
result.pop()
result = bytes(map(int,result))
return result.decode(coding)
7、数学库numpy的使用
任务描述
编写一个程序:输入任意一个矩阵,求它的转置矩阵,并判断其是否为奇异矩阵,若不是,则输出其行列式和逆矩阵。
相关知识
程序的运行结果画面类似如下:
请输入一个N×N矩阵:[[1,6],[3,9]]
该矩阵的转置矩阵为:
[[1 3]
[6 9]]
该矩阵的行列式为:-9.00
该矩阵的逆矩阵为:
[[-1. 0.66666667]
[ 0.33333333 -0.11111111]]
import numpy as np
c=eval(input("请输入一个N×N矩阵:"))
a=np.asarray(c)
print("该矩阵的转置矩阵为:")
print(a.T)
if(a.shape[0]==a.shape[1] and abs(np.linalg.det(a))!=0):
print("该矩阵的行列式为:{0:.2f}".format(np.linalg.det(a)))
print("该矩阵的逆矩阵为: {0}".format(np.linalg.inv(a)))
else:
print("这是奇异矩阵")
python简单代码input-Python简单程序的练习相关推荐
- python简单代码编写-Python | 编写一个简单的Excel处理脚本
前段时间,温老师找我说财务处的某老师平日处理大量的Excel,很多都是机械的重复劳动,不胜其烦.和我简单说了下需求,看我能不能写个程序帮一下忙. 需求简述如下: 一个多行多列的Excel文档有一列为& ...
- python画图简单代码-用python进行简单的画图操作
我用python的matplotlib模块进行简单的画图操作,作为入门参考,下面直接上代码:#coding:utf-8 import numpy as np import matplotlib.pyp ...
- python基础代码事例-python基础代码大全
[实例简介] python代码大全,适用于基础python学习者,里面的代码基本上是基础学习者必经过程. Python学习入门很快,但学习之路任重道远 [实例截图] [核心代码] python代码大全 ...
- python常用代码大全-Python常用库大全,看看有没有你需要的
环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. v ...
- python常用代码大全-Python常用库大全及简要说明
环境管理 管理 Python 版本和环境的工具 p:非常简单的交互式 python 版本管理工具.官网 pyenv:简单的 Python 版本管理工具.官网 Vex:可以在虚拟环境中执行命令.官网 v ...
- python基础代码大全-Python字典及基本操作(超级详细)
字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据. 比如有份成绩表数据,语文:79,数学:80,英语:92,这组数据看上去像两个列表,但这两个列表的元素之间有一定的关联关 ...
- python基础代码大全-python基础代码大全
[实例简介] python代码大全,适用于基础python学习者,里面的代码基本上是基础学习者必经过程. Python学习入门很快,但学习之路任重道远 [实例截图] [核心代码] python代码大全 ...
- python基础代码大全-python基础语法,python 代码命令大全
python: 1.语法强制缩进 2.区分大小写:iLoop与iloop是两个变量 3.变量无需申明,但是变量赋值前无法使用:a=3合法,b=a+3合法,b=a+c不合法,因为c未赋值前不能使用 4. ...
- python入门代码大全-python入门代码指南教程书籍推荐2020总结全集汇总
python入门代码指南教程书籍推荐2020总结全集汇总 记住,如果您想学习Python,市场上有很多可用的资源.这些可以包括书籍,甚至在线课程..在这篇文章中,我们为Python编写了最好的书籍,无 ...
- python常用代码大全-Python常用库大全
Python常用库大全,看看有没有你需要的. 环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具 ...
最新文章
- python怎么打日志_怎样调试 日志 python 代码
- 美团点评资深产品专家刘远飞:了解业务要弄清楚这三个问题
- 以太坊是什么 - 以太坊开发入门指南
- Github 王炸功能!Copilot 替代打工人编程?
- CSS清除默认样式,经典好文
- 动力环境监控系统论文_浅谈动力环境监控系统技术标准
- nginx中的nginx.conf.default配置
- 支付宝开放新玩法:搜商家可领消费券
- 选择要素选择集中的某个图层的要素
- 吴恩达机器学习笔记23-神经网络:表述--非线性假设(Non-linear Hypotheses)
- html表格之个人简历
- 谷歌SEO入门的基础知识
- lisp 定距等分_CAD点命令快捷键(定数等分及定距等分)
- python为什么叫胶水语言 举例_python为什么叫胶水语言 python为什么是系统脚本
- Codeforces Round #439 (Div. 2)C - The Intriguing Obsession(简单dp)
- 如何使用Python生成数据分析报告
- 第十二届Revit开发训练营4月4日~9日在武汉举办
- (7)无参构造方法 有参构造方法
- 单片机只会调库和复制别人的代码是什么水平?
- 第19节 HSRP-热备份路由协议原理及实验演示—基于Cisco Packet Tracer