返回顶部
首页 > 资讯 > 后端开发 > Python >python简单实例训练(21~30)
  • 936
分享到

python简单实例训练(21~30)

实例简单python 2022-06-04 19:06:33 936人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

注意:我用的python2.7,大家如果用python3.0以上的版本,请记得在print()函数哦!如果因为版本问题评论的,不做回复哦!! 21.题目:将一个正整数分解质因数。例如:输入90,打印出90=

注意:我用的python2.7,大家如果用python3.0以上的版本,请记得在print()函数哦!如果因为版本问题评论的,不做回复哦!!

21.题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n!=k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

注意:要知道 fORMat 这个函数,其实就是格式化,与 print 差不多,具体可参考Http://www.lsjlt.com/article/63672.htm

方法一:只用循环


# -*- coding: UTF-8 -*-
while True:
 n = input("请输入一个数:")
 #这里有逗号是为了保证它输出后不自动换行,下同
 print '{} = '.format(n), 
 #判断你输入的是不是正确格式
 if not isinstance(n, int) or n <= 0 :
  print '请输入一个正确的数字 !' 
 #如果你是输入的是 1,那只输出 1
 if n in [1] : 
  print '{}'.format(n) 
 while n >= 2:
  for i in range(2,n + 1):
   if n % i == 0:
    n /= i  #n 等于 n/i
    if n == 1: 
     print i ,
    else :  # index 一定是素数
     print '{} *'.format(i),
    break
 print  #换行咯

方法二:定义函数


# -*- coding: UTF-8 -*-
def reduceNum(n):
 print '{} = '.format(n),
 if not isinstance(n, int) or n <= 0 :
  print '请输入一个正确的数字 !'
  exit(0)
 elif n in [1] :
  print '{}'.format(n)
 while n not in [1] : # 循环保证递归
  for i in range(2, n + 1) :
   if n % i == 0:
    n /= i # n 等于 n/i
    if n == 1: 
     print i 
    else : # i 一定是素数
     print '{} *'.format(i),
    break

reduceNum(100)
reduceNum(9)

输出:
100 = 2 * 2 * 5 * 5
9 = 3 * 3

方法三:用列表 append 函数,这里只是用列表的形式输出了所有x的因子


# -*- coding: UTF-8 -*-
while True:
 x = input("pls input a number:")
 ret = []
 while x > 1:
  for v in range(2,x + 1):
   if x % v == 0:
    ret.append(v)
    x /= v
    break
 print ret

 输出:
  pls input a number:9
  [3, 3]

说明:其实两种方法大同小异,没什么区别。

22.题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

程序分析:关键是计算出每一项


# -*- coding: UTF-8 -*-
Tn = 0
Sn = [] #用来存储数字个数
n = int(raw_input('输入你想要相加的数字个数 n = :')) #控制你要相加的次数
a = int(raw_input('输入数字 a = :')) #真正要加的数字
for count in range(n):
 Tn = Tn + a 
 a = a * 10
 Sn.append(Tn)#每加一个数就放在Sn列表中
 print Tn

 #lambda这个函数比较强大,具体用法可以看下资料
Sn = reduce(lambda x,y : x + y,Sn)
print Sn

输入你想要相加的数字个数 n = :5
输入数字 a = :6
6
66
666
6666
66666
74070

用到的函数:

1.Python中的reduce内建函数是一个二元操作函数,他用来将一个数据集合链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 func()(必须是一个二元操作函数)先对集合中的第1,2个数据进行操作,得到的结果再与第三个数据用func()函数运算,最后得到一个结果。

具体可参考http://www.lsjlt.com/article/128310.htm

2.lambda函数,看连接http://www.lsjlt.com/article/128311.htm

23.题目:一个数如果恰好等于它的因子之和,这个数就称为”完数”。例如6=1+2+3.编程找出1000以内的所有完数。

程序分析:请参照程序Python 练习实例14。只要在后面加上判断条件就可以了,注意,要在输出因子的时候加上1,注意看题,1是任何数的因子,所以不能漏掉


# -*- coding: UTF-8 -*-
import random
import time

while True:
 x = random.randint(1,1000)
 #因为后面求质数要修改x的值,所以先把x保存起来备用
 s = x 
 factors = [1] #1是任何数的因子
 while x > 1:
  #上限取值可以是x,即因子也可以是x本身,这个大家都懂得
  for v in range(2,x + 1):
   if x % v == 0:
    factors.append(v) 
    #找到了当前的最小因子,重置继续找下一符合条件的最小因子
    x /= v
    #由于break是跳出当前的循环,所以这里的break是跳出for循环
    break
 print "所有因子是 %s,所以"%(factors),
 if sum(factors) == s: #这里就是判断函数了
  print "%d 是完数"%(s)
 else:
  print "%d 不是完数"%(s)
time.sleep(1) #为防止程序卡顿,我睡一秒输出一个

输出:
所有因子是 [1, 2, 2, 2, 31],所以: 248 不是完数
所有因子是 [1, 2, 2, 2, 73],所以: 584 不是完数
所有因子是 [1, 823],所以: 823 不是完数
所有因子是 [1, 281],所以: 281 不是完数
所有因子是 [1, 467],所以: 467 不是完数
所有因子是 [1, 2, 359],所以: 718 不是完数
所有因子是 [1, 2, 7, 47],所以: 658 不是完数
所有因子是 [1, 751],所以: 751 不是完数
所有因子是 [1, 3, 71],所以: 213 不是完数

24.题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

程序分析:用数学的角度很好理解是吧,但是这里要把字母转化成ASCII码来做哦!


# -*- coding: UTF-8 -*-

for i in range(ord('x'),ord('z') + 1):
 for j in range(ord('x'),ord('z') + 1):
  if i != j:
   for k in range(ord('x'),ord('z') + 1):
    if (i != k) and (j != k):
     if (i != ord('x')) and (k != ord('x')) and (k != ord('z')):
      print 'order is a -- %st b -- %stc--%s' % (chr(i),chr(j),chr(k))

25.题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。

程序分析:请抓住分子与分母的变化规律。可以看出,分母是斐波那契数列哦~

方法一:第一个分数的分子分母之和是第二个数的分子。


# -*- coding: UTF-8 -*-

a = 2.0  #第一个数的分母
b = 1.0  #第一个数的分子
s = 0   #前20项的和
for n in range(1,21):
 s += a / b
 t = a  #先把分子保存到t
 a = a + b #分子是前一个分数的分子分母之和
 b = t  #分子分母交换
print s

方法二:


# -*- coding: UTF-8 -*-

a = 2.0
b = 1.0
s = 0.0
for n in range(1,21):
 s += a / b
 b,a = a , a + b
print s

方法三:


# -*- coding: UTF-8 -*-

a = 2.0
b = 1.0
l = []
for n in range(1,21):
 b,a = a,a + b
 l.append(a / b)
print reduce(lambda x,y: x + y,l)

26.题目:求1+2!+3!+…+20!的和。

程序分析:此程序只是把累加变成了累乘。想一想阶乘怎么算的?n!=n×(n-1)×(n-2)×(n-3)×…×1,所以只需要一个遍历,把n以内的数字相乘后,再加起来即可。

方法一:


 # -*- coding: UTF-8 -*-

n = 0
s = 0
t = 1
for n in range(1,21):
 t *= n #这里t就是20以内每个数的阶乘
 s += t #把每次得到的阶乘值加到s
print '1! + 2! + 3! + ... + 20! = %d' % s

方法三:这里用定义函数的方法,使用sum函数。


# -*- coding: UTF-8 -*-

s = 0
l = range(1,21)
def op(x):
 r = 1
 for i in range(1,x + 1):
  r *= i
 return r

s = sum(map(op,l)) 
print '1! + 2! + 3! + ... + 20! = %d' % s

输出:1! + 2! + 3! + ... + 20! = 2561327494111820313

这里补充一下map()函数的用法:

很简单,第一个参数接收一个函数名,第二个参数接收一个可迭代对象


# -*- coding: UTF-8 -*-
ls = [1,2,3]
rs = map(str, ls)
#打印结果 ['1', '2', '3']

lt = [1, 2, 3, 4, 5, 6]
def add(num):
 return num + 1

rs = map(add, lt)
print rs 
#打印结果[2,3,4,5,6,7]

27.题目:利用递归方法求5!。

程序分析:递归公式:fn=fn_1*4!递归的方法就是自己调用自己。


# -*- coding: UTF-8 -*-
def jiecheng(n):
 if n <= 1:
  return 1
 else:
  return n * jiecheng(n-1)
print jiecheng(5)

输出:120

28.题目:将所输入的5个字符,以相反顺序打印出来。

方法一:利用递归函数调用方式


# -*- coding: UTF-8 -*-

def output(s,l):
 if l==0:
  return
 print (s[l-1])
 output(s,l-1)

s = raw_input('Input a string:')
l = len(s)
output(s,l)

输出:Input a string:1234
4
3
2
1

方法二:用reverse函数


# -*- coding: UTF-8 -*-
a = [1,2,3,4,5]
a.reverse()
print a

 或者:

# -*- coding: UTF-8 -*-
s = list(raw_input('Input a string:'))
s.reverse()
print s

28.题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。

方法一:这个很简单吧,就是每次循环都加2,循环4次就好了啊!


# -*- coding: UTF-8 -*-
x = 10
for i in range(1,5):
 x = x + 2
print x

方法二:定义函数的方法


# -*- coding: UTF-8 -*-
def age(n):
 if n == 1: 
  x = 10
 else: 
  x = age(n - 1) + 2
 return x
print age(5)

29.题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

程序分析:将这个五位数从中间分开,根据对称性去切,然后比较是否相等。


# -*- coding: UTF-8 -*-
a = int(raw_input("请输入一个数字:"))
x = str(a)
flag = True

for i in range(len(x)/2):
 if x[i] != x[-i - 1]: #如果不相等,直接跳出循环,直接判断不是回文数
 flag = False
 break
if flag:
 print "%d 是一个回文数!" % a
else:
 print "%d 不是一个回文数!" % a

输出:
请输入一个数字:
15651
15651 是一个回文数!

30.题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。。哇,这个题应该好简单啊~~先看一下星期的单词都有哪些“Monday Tuesday Wednesday Thursday Friday Saturday Sunday”,所有只有“T”和“S”要判断第二个字母。


# -*- coding: UTF-8 -*-

 letter = raw_input("please input:")
 #while letter != 'Y':
 if letter == 'S':
  print ('please input second letter:')
  letter = raw_input("please input:")
  if letter == 'a':
   print ('Saturday')
  elif letter == 'u':
   print ('Sunday')
  else:
   print ('data error')

 elif letter == 'F':
  print ('Friday')

 elif letter == 'M':
  print ('Monday')

 elif letter == 'T':
  print ('please input second letter')
  letter = raw_input("please input:")

  if letter == 'u':
   print ('Tuesday')
  elif letter == 'h':
   print ('Thursday')
  else:
   print ('data error')

 elif letter == 'W':
  print ('Wednesday')
 else:
  print ('data error')

这篇文章就介绍到这了,后面编程网小编将继续为大家分享更多的关于python的一些实例资料。

--结束END--

本文标题: python简单实例训练(21~30)

本文链接: https://lsjlt.com/news/16031.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python简单实例训练(21~30)
    注意:我用的python2.7,大家如果用Python3.0以上的版本,请记得在print()函数哦!如果因为版本问题评论的,不做回复哦!! 21.题目:将一个正整数分解质因数。例如:输入90,打印出90=...
    99+
    2022-06-04
    实例 简单 python
  • PytorchMacGPU训练与测评实例
    目录正文加速原理环境配置跑一个MNIST跑一下VAE模型一个愿景正文 Pytorch的官方博客发了Apple M1 芯片 GPU加速的文章,这是我期待了很久的功能,因此很兴奋,立马...
    99+
    2023-01-11
    Pytorch Mac GPU训练测评 Pytorch Mac GPU
  • Python 之 SSH简单实例
    服务器端代码 #Author Kang import os import subprocess import socket server = socket.socket() server.bind(('localhost',9999))...
    99+
    2023-01-31
    实例 简单 Python
  • 实现的简单python例子
    尊重作者,本文转载自:http://blog.csdn.net/oMuYeJingFeng1/article/details/23822279 1、输入3个数字,从小到大输出:x = int(input('please input x:')...
    99+
    2023-01-31
    例子 简单 python
  • Python实现自动驾驶训练模型
    目录一、安装环境二、配置环境三、训练模型1、数据处理2、搭建模型3、运行结果四、总结 一、安装环境 gym是用于开发和比较强化学习算法的工具包,在python中安装gym库和其中子场...
    99+
    2024-04-02
  • python入门-简单基础题练习
    '''1.简述变量名称规范    (1)变量必须由字母,数字,下划线组成。    (2)变量不能是数字开头,更不可以是纯数字组成。    (3)变量不能是python的关键词。    (4)变量名称要有意义,不能随便瞎起。    (5)变量...
    99+
    2023-01-31
    入门 简单 基础
  • Python基于keras训练实现微笑识别的示例详解
    目录一、数据预处理二、训练模型创建模型训练模型训练结果三、预测效果四、源代码pretreatment.pytrain.pypredict.py一、数据预处理 实验数据来自genki4...
    99+
    2024-04-02
  • 如何在TensorFlow中训练一个简单的神经网络模型
    在TensorFlow中训练一个简单的神经网络模型通常需要以下步骤: 数据准备:准备好训练数据和测试数据,并对数据进行预处理和标...
    99+
    2024-03-01
    TensorFlow
  • PyTorch使用GPU训练的两种方法实例
    目录Pytorch 使用GPU训练方法一 .cuda()方法二 .to(device)附:一些和GPU有关的基本操作汇总总结Pytorch 使用GPU训练 使用 GPU 训练只需要在...
    99+
    2024-04-02
  • python getopt详解及简单实例
    python getopt详解 函数原型: getopt.getopt(args, shortopts, longopts=[]) 参数解释: args:args为需要解析的参数列表。一般使用...
    99+
    2022-06-04
    详解 实例 简单
  • python 调用HBase的简单实例
    新来的一个工程师不懂HBase,java不熟,python还行,我建议他那可以考虑用HBase的thrift调用,完成目前的工作。 首先,安装thrift 下载thrift,这里,我用的是thrift-0....
    99+
    2022-06-04
    实例 简单 python
  • python 类详解及简单实例
    python 类详解 类 1.类是一种数据结构,可用于创建实例。(一般情况下,类封装了数据和可用于该数据的方法) 2.Python类是可调用的对象,即类对象 3.类通常在模块的顶层进行定义,以便类实例能...
    99+
    2022-06-04
    详解 实例 简单
  • Python正则简单实例分析
    本文实例讲述了Python正则简单用法。分享给大家供大家参考,具体如下: 悄悄打入公司内部UED的一个Python爱好者小众群,前两天一位牛人发了条消息: 小的测试题: re.split('(W+)',...
    99+
    2022-06-04
    正则 实例 简单
  • python 进程池pool简单实例
    进程池:      在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间。当被操作对象数目不大时,可以直接利用multiprocessing中的Process动态成生多个进程,十...
    99+
    2023-01-31
    实例 进程 简单
  • 简单的python画图小实例
    import turtle as t t.goto(100,0) for i in range(100): t.left(80) t.fd(100) t.left(135) t....
    99+
    2023-01-31
    画图 实例 简单
  • Python如何实现自动驾驶训练模型
    本篇内容主要讲解“Python如何实现自动驾驶训练模型”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python如何实现自动驾驶训练模型”吧!一、安装环境gym是用于开发和比较强化学习算法的工具...
    99+
    2023-07-02
  • python下10个简单实例代码
    注意:我用的python2.7,大家如果用Python3.0以上的版本,请记得在print()函数哦!如果因为版本问题评论的,不做回复哦!!! 1.题目:有1、2、3、4个数字,能组成多少个互不相同且无重复...
    99+
    2022-06-04
    实例 代码 简单
  • python---简单的接口测试实例
    我们可以用Jmeter做接口测试,但是呢个人觉得那个有点局限性,用python就灵活很多,   可以按自己的思路来构建比较灵活,下面给大家介绍一个简单的接口测试实例。   一、我们的思路如下:   首先我们要弄清楚我们的整个思路: 1.先...
    99+
    2023-01-31
    实例 接口 简单
  • 学习python:练习5.简单红包程序
    快过年了,最近不少群里都发红包,晚上突然想用这个红包做个练习,简单实现了一下,效果不错哦觉得稍微有点困难的地方是红包的算法,想了久了点,也不知道微信的算法是咋样的...效果:代码:# 简单的拼手气红包 import random from...
    99+
    2023-01-31
    红包 简单 程序
  • 关于yolov5的一些简单说明(txt文件、训练结果分析等)
    目录一、yolo中txt文件的说明:二、yolo跑视频、图片文件的格式:三、yolov5训练结果不好的原因:四、yolov5训练结果(train文件)分析总结一、yolo中txt文件...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作