打印一定范围内的水仙花数

题目内容:

水仙花数是指一个n位数 (n≥3),它的每个位上的数字的n次幂之和等于它本身。

例如:153是一个“水仙花数”,因为 153 是个 3位数,而1**3+5**3+3**3==153。

输入一个正整数max,输出100到max之间的所有水仙花数(包括max)。

输入格式:

共一行,为一个正整数。

输出格式:

若干行,从小到大输出水仙花数,一行为一个数。

输入样例:

2500

输出样例:

153

370

371

407

1634

时间限制:1000ms内存限制:32000kb

思路分析

1  将输入的数据的每个位上的数字分别存储(可以考虑将整数转换成字符串)

2  for循环遍历,循环可以直接从153(测试数据所知最小水仙花数)

3  将转换的字符串中的每个字符强制转换成整数型并进行n(字符串的长度)次幂求和

代码实现

num = int(input())
for i in range(153,num+1):    //遍历153~num范围内的所有整数st = str(i)               //转换成字符串 n = len(st)               //i的位数sum = 0 for j in range(n):sum += (int(st[j]))**n //每个位上的数字的n次幂之和if(i == sum):              //判断是否是水仙花数print(i)

输入两个字符串,输出两个字符串集合的并集

题目内容:

输入两个字符串,输出两个字符串集合的并集。

为保证输出结果一致,请将集合内元素排序之后再输出,

对于集合aset,可输出sorted(aset)

输入格式:

共两行,每一行为一个字符串

输出格式:

共一行,为一个集合

输入样例:

abc

bcd

输出样例:

['a', 'b', 'c', 'd']

时间限制:500ms内存限制:32000kb

思路分析

1  将第一个字符串存入集合中

2  将第二个字符串加入集合中(注意:在这里用update(),表示批量添加数据,add()添加一个数据)

3   用sorted()排序

代码实现

s = set(str(input()))
s.update(str(input()))
print(sorted(s))

与7相关数:

如果一个正整数,它能被7整除或者它的十进制表示法中某个位数上的数字为7,则称之为与7相关的数

题目内容:

现在我们给定一个正整数n(n<1000),求所有小于等于n的与7无关的正整数的平方和。

输入格式:

共一行,为一个正整数。

输出格式:

共一行,为一个正整数。

输入样例:

50

输出样例:

31469

时间限制:500ms内存限制:32000kb

思路分析

1  将整数强制转换成字符串,为判断7是否在整数的某一个位上

2  如果能够整除7(对7取余为0) ,continue跳出此循环

3  如果不能被整除7,将通过in来判断字符串'7' 是否 存在 在  整数强制转换成字符串中(注意这里要提前转换,规范if 、 elif 、else语句的语法)

代码实现

n = int(input())
sum = 0
for i in range(n+1):num = str(i)if i%7 == 0:continueelif "7" in num:continueelse:sum += i*i
print(sum)

打印完数

一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如 6 = 1+2+3。

题目内容:

输入一个正整数n(n<1000),输出1到n之间的所有完数(包括n)。

输入格式:

共一行,为一个正整数。

输出格式:

若干行,从小到大输出完数,一行为一个数。

输入样例:

30

输出样例:

6

28

时间限制:500ms内存限制:32000kb

思路分析

1  用def定义一个完数函数

2   for循环遍历,查找并输出满足条件的完数

代码实现

def wanshu(x):sum = 0for i in range(1,x):if x%i==0:sum += ireturn sum
n = int(input())
for i in range(1,n+1):if i == wanshu(i):print(i)

打印一个n层金字塔

题目内容:

打印一个n层(1<n<20)金字塔,金字塔由“+”构成,塔尖是1个“+”,下一层是3个“+”,居中排列,以此类推。

注意:每一行的+号之后均无空格,最后一行没有空格。

输入格式:

一个正整数n(1<n<20)

输出格式:

一个由+号构成的n层金字塔

输入样例:

3

输出样例:

  ++++
+++++

时间限制:500ms内存限制:32000kb

思路分析

1  每行输出的空格数为n (总行数) - i(目前所在的行数)

2  每行输出的字符'+'数为 2*i(所在的行数) - 1

注意:上面分析的行数从1开始,代码实现是从0开始,故多加了一个1

代码实现

n = int(input())
for i in range(n):print(' '*(n-i-1)+'+'*(2*i+1))

回文数判断

题目内容:

给一个5位数,判断它是不是回文数,是则输出yes,不是则输出no。

例如12321是回文数,它的个位与万位相同,十位与千位相同。

输入格式:

共一行,为一个5位数。

输出格式:

共一行,yes或no。

输入样例:

12321

输出样例:

yes

时间限制:500ms内存限制:32000kb

思路分析

以字符串的形式输入,并通过for循环来判断左右两边数据是否相同,如果相同则继续,不相同则标记flag = 0(在这里起初想利用列表通过reverse()反转直接判断,但因为赋值语句的数据是同时改变的,因此放弃了此思路)

代码实现

s = str(input())
n = len(s)
flag = 1
for i in range(n):if s[i] == s[n-i-1]:continueelse:flag = 0
if(flag):print('yes')
else:print('no')

列表元素改写

题目内容:

输入一个列表alist,要求列表中的每个元素都为正整数且不超过10;

将列表中的奇数变为它的平方,偶数除以2后打印新的列表(新的列表中所有元素仍都为整数)。

可以使用以下实现列表alist的输入:

  1. alist=list(map(int,input().split()))

同时为保证输出结果一致,请将集合内元素排序之后再输出。

如对于列表alist,可输出sorted(alist)。

输入格式:

共一行,用来输入列表的元素值,以空格隔开。

输出格式:

共一行,以列表形式打印输出。

输入样例:

1 2 3 4

输出样例:

[1,1,2,9]

时间限制:500ms内存限制:32000kb

思路分析

遍历列表的每个数值,根据判断语句,对列表直接进行修改 ,最后对列表用sort()排序

代码实现

alist = list(map(int,input().split()))
k = 0
for i in alist:if i%2 == 0:alist[k] = i//2else:alist[k] = i*ik += 1
alist.sort()
print(alist)

打印一定范围内的素数

题目内容:

给定一个大于2的正整数n,打印出小于n(不包括n且n不大于100)的所有素数。

要求将符合条件的输出填入一个列表中,打印的结果为该列表。

输入格式:

共一行,为一个大于2的正整数

输出格式:

共一行,为一个列表

输入样例:

10

输出样例:

[2, 3, 5, 7]

时间限制:500ms内存限制:32000kb

思路分析

1 用def定义一个判断素数的函数

2 for循环遍历,将素数添加到列表中

代码实现

def prime(num):for i in range(2,num):if(num%i == 0):return 0return 1
n = int(input())
list = []
for i in range(2,n):if prime(i):list.append(i)
print(list)

猴子吃桃问题

题目内容:

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第n天(<1<n<11)早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

输入格式:

共一行,为一个大于1小于11的正整数。

输出格式:

共一行,为一个正整数

输入样例:

2

输出样例:

4

时间限制:500ms内存限制:32000kb

思路分析

逆向思考

第一天 :  一个桃子

第二天:   (第一天的桃子 + 1)  的2倍

...

第n天:         (第n-1天的桃子 + 1) 的2倍

代码实现

n = int(input())
sum = 1
for i in range(1,n):sum = (sum+1)*2
print(sum)

python 随堂练2相关推荐

  1. python随堂练1

    最后一个单词 题目内容: 计算字符串最后一个单词的长度,单词以空格隔开. 可以使用以下语句实现字符串s的输入: 输入格式: s = str(inpput()) 一行字符串,非空,长度小于5000. 输 ...

  2. Python每日一练0023

    问题 如何判断一个文件是否存在 解决方案 这个问题可以分成几类问题 如果这里的文件指的是文件或目录,我们可以用os.path.exists()方法 >>> import os > ...

  3. Python每日一练0004

    问题 如何保存迭代对象的最后N个元素 例如保存列表['a', 'b', 'c', 'd']的最后2个元素 或者保存某个迭代器对象的最后5个元素 解决方案 对于列表.元组这样的数据结构,可以使用切片来很 ...

  4. python 编程一日一练-python每日一练

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 过滤掉列表中的负数 筛选出字典{lilei: 79,jim: 88,lu ...

  5. python 编程一日一练-Python每日一练0022

    问题 你想在一个文件里每次读入固定大小的字节,比如每次读入4个字节并转成int,或者每次读入x个字节并进行结构化,例如: l = [5, 2, 4, 1, 2, 4, 5, 6, 8] with op ...

  6. python 编程一日一练-Python每日一练0013

    问题 现在有多个字典或者映射,你想将它们从逻辑上合并为一个单一的映射后执行某些操作, 比如查找值或者检查某些键是否存在. 解决方案 使用collections库的ChainMap类,可以快速的将多个d ...

  7. Python每日一练0018

    问题 你需要对浮点数执行精确的计算操作,并且不希望有任何小误差的出现. Python的float类型是存在误差的 >>> a = 1.1 >>> b = 2.2 & ...

  8. python每日一练名片管理程序_Python每日一练0022

    问题 你想在一个文件里每次读入固定大小的字节,比如每次读入4个字节并转成int,或者每次读入x个字节并进行结构化,例如: l = [5, 2, 4, 1, 2, 4, 5, 6, 8] with op ...

  9. Python处理txt文件:多句分行+行首尾添加字符+for循环--Python新手自练系列

    Python处理txt文件:多句分行+行首尾添加字符+for循环--Python新手自练系列 总体操作提示: 操作流程图: 准备工作 第一步先对luo.txt进行操作 第二步对yes.txt进行操作 ...

最新文章

  1. python使用lassocv生成影像组学(radiomic)模型的系数表
  2. SingleR包注释单细胞数据
  3. SAP RETAIL 如何根据分配表查到根据它创建的采购订单?
  4. 【记录】用Javascript实现文本框textarea高度随内容自动适应增长收缩
  5. iOS 查询数组中的对象
  6. properties文件不能输入中文
  7. 配置aconda_centos 安装aconda
  8. Mysql是否开启binlog日志开启方法
  9. 网易实战分享|Docker文件系统实战
  10. EasyHook远程代码注入
  11. tcl/tk demo
  12. lex和yacc环境配置
  13. python创建单例模式_Python单例模式的四种创建方式实例解析
  14. vue中axios设置表单头_VUE项目axios请求头更改Content-Type操作
  15. 服务器对操作系统有什么要求,服务器对操作系统有什么要求
  16. linux下添加用户并且让用户获得root权限
  17. Java loadlibrary分析及如何unload
  18. linux自定义服务
  19. python数学建模|综合评价方法
  20. 一文读懂参考基因组和基因组注释+最全下载方法

热门文章

  1. oracle11g的alert日志路径,oracle11g下alert文件位置
  2. 2018TOP100峰会案例征集启动| 共同见证100+精选技术案例的诞生
  3. python爬虫如何实现每天爬取微信公众号的推送文章
  4. 破解软件推荐以及zip软件
  5. 修改whmcs首页模板
  6. 蓝湖某个项目上传过多图片,导致特别卡
  7. 网络斗地主游戏的完整设计与实现(三)入口存储过程详解,理解动态调用存储过程的原理
  8. 简单图片识字工具v1.0绿色版
  9. 编写一个能将给定非负整数列表中的数字排列成最大数字的函数
  10. P3084 黑白棋游戏