入门经典100题

1. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

_=0
for i in range(1,5):for j in range(1,5):for k in range(1,5):if i ==j or i == k or j == k:continueelse:print(100*i+10*j+k)_ += 1
print(_)

2.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

for i in range(100):for j in range(100):if i**2-j**2==168:x=j**2-100print(x)

3.判断101-200之间有多少个素数,并输出所有素数。

素数就是在大于1的自然数中,除了1和它本身不再有其他因数的数。

num = []
for i in range(101,200):for j in range(2,i):if i%j == 0:breakelse:num.append(i)
print(num)

4.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153 是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

方法一

for i in range(1,10):
#三位数的百位for j in range(0,10):#三位数的十位for k in range(0,10):#三位数的个数if i*100+j*10+k == i**3+j**3+k**3:print(i*100+j*10+k)

方法二

敲黑板 !!! 如何取一个数字的个位十位和百位呢

for i in range(100,1000):gewei  = i%10shiwei = i//10%10baiwei = i//100if i == gewei **3 +shiwei **3 +baiwei **3:print(i)

5.将一个正整数分解质因数。

#join()函数
#语法:
‘sep’.join(seq)
#参数说明
#sep:分隔符。可以为空
#seq:要连接的元素列表、字符串、元组、字典
# 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。m =int(input("请输入一个正整数:"))
n = m
a = []
while m >1:for i in range(2,m+1):if m%i == 0:m = m // i#除法结果向下取整a.append(str(i))#把i转换为字符串类型,并放入列表a中break
if len(a) == 1:print(n,'=','1*',n)
else:b = '*'.join(a)print(n,'=',b)

封装 try try鸭~~

# 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
def zhiyin():m =int(input("请输入一个正整数:"))n = ma = []while m >1:for i in range(2,m+1):if m%i == 0:m = m // i#除法结果向下取整a.append(str(i))breakif len(a) == 1:print(n,'=','1*',n)else:b = '*'.join(a)print(n,'=',b)
if __name__  == "__main__":zhiyin()

6.利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下 的用C表示。

封装下哈

def main():score =int(input("请输入学习成绩:"))if score >= 90:grade = 'A'elif score >=60:grade = 'B'else:grade = 'C'print  (grade)
if __name__ =="__main__":#调用呀main()

7.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

import string
def main():a = input("请输入一行字符:")zimu = 0kongge = 0shuzi = 0qita = 0for i in a:if i.isalpha():zimu +=1elif i.isspace():kongge +=1elif i.isdigit():shuzi +=1else:qita +=1print("这一行字符中有"+str(zimu)+"个字母"+','+str(kongge)+"个空格"+','+str(shuzi)+"个数字"+','+str(qita)+"个其他")
if __name__ == "__main__":main()

print()也可以这样写。

%s 格式化字符串

%d 整型

%f 浮点型

print('这一行字符中有 %d 个字母,%d个空格,''%d个数字,%d个其他' % (zimu,kongge,shuzi,qita))

8.求s=a+aa+aaa+aaaa+aa…a的值

例如2+22+222+2222+22222(此时共有5个数相加)

主要思想:后一项等于前一项乘10加a(第一项)的结果

for循环和自加实现

def main():a = 0sum = 0a = int(input("请输入数字:"))b = int(input("请输入位数:"))c = []e = afor i in range(b):if b == 1:print(str(a)+'='+str(a))else:c.append(str(a))a = a*10 +esum += ad ='+'.join(c)print(str(sum) +'='+d)
if __name__ =='__main__':main()

9.一个数如果恰好等于它的因子之和,这个数就称为“完数”。

题目分析

#例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。
#编程输入一个数字,判断它是否为完数:
sum = 0
a =int( input("请输入:"))
for j in range(1,a):if a % j == 0:sum += j
if sum == a :print(str(a)+'是个完数')
else:print(str(a)+'不是个完数')
#编程序找出N之内的所有完数,并按下面格式输出其因子:
sum = 0
for a in range(2,1000):#判断2-1000内有多少个完数for j in range(1,a):if a % j == 0:sum += jif  sum == a :print(str(a)+'是个完数')else:print(str(a)+'不是个完数')
#试着封装下呗
def main():a = int(input("请输入:"))for i in range(1,a+1):sum = 0for j in range(1,i):if i % j == 0:sum += jif  sum == i:print(str(i)+'是个完数')else:print(str(i)+'不是个完数')
if __name__ == '__main__':main()

10.打印出如下图案(菱形)

for i in range(1,8,2):print(('*' * i).center(7))
for i in range(5,0,-2):print(('*' * i).center(7))
#使用center函数将其居中显示
for i in range(-3,4):if i < 0:j = -ielse:j = iprint(' ' * j+'*' * (7-2*j))
for i in range(1,8,2):print(' ' *int( (7-i)/2)+'*' * i)
for j in range(5,0,-2):print(' ' * int((7 - j) / 2) + '*' * j)

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

def main():a = 2b = 1s = 0for i in range(20):s += a/ba += bb  = a-bprint("这个数列前20项之和为"+str(s))
if __name__ =='__main__':main()

12.求1+2!+3!+…+20!的和

思路一递归函数

以下为计算阶乘的递归函数:

def jiecheng(n):# n为形参if  n ==1:return 1else:return n*jiecheng(n-1)
print(jiecheng(3))

递归函数 + for 循环

s = 0
def chengji(j):if j >1:return  j*chengji(j-1)else:return 1for i in range(1,21):a  = chengji(i)s += aprint('1+2!+3!+...+20!'+'='+str(s))

思路二

仔细观察可以发现:比如说3!就是3本身乘以2!

4!就是4本身乘以3!

t = 1
sum = 0
for i in range(1,21):t = i*tsum = sum+t
print(sum)

思路三

函数 map() 是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

a = range(1,21)
def jiecheng(n):t = 1for i in range(1,n+1):t = i*treturn t
b = sum(map(jiecheng,a))
print(b)
a = range(1,21)
#定义函数采用递归的方式
def jiecheng(i):if i == 1:return 1else:return i*jiecheng(i-1)
b = sum(map(jiecheng,a))
print(b)

思路四

使用 列表 的方式,将每个数的阶乘放进列表,求其和。

a = []
b = 1
for i in range(1,21):b = b*ia.append(b)
print(sum(a))

思路五

使用 Lambda函数

匿名函数可以在程序中任何需要的地方使用,但是这个函数只能使用一次,即一次性的。语法如下:

语法: lambda参数:表达式

Lambda函数 + reduce函数

reduce函数会对参数列表中的元素进行累积。

from functools import *
sum = 0
for i in range(1,21):a  = reduce(lambda x,y: x*y,range(1,i+1))sum = a +sum
print(sum)

13.利用递归方法求5!。

def digui(i):if  i == 1:return 1else:return i*digui(i-1)
print(digui(5))

14.利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

def xiangfan(x):if len(x) == 1:return xelse:return x[-1] + xiangfan(x[:-1])
a = input("请输入:")
print (xiangfan(a))

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

def main(x):if x == 1:return 10else:return main(x-1) + 2
print(main(5))

16. 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

方法一

a = input("请输入:")
print(str(len(a))+'位数' )
print(a[::-1])

方法二

def nixu(x):if len(x) == 1:return xelse:return x[-1]+nixu(x[:-1])
a = input("请输入:")
print(nixu(a))
print(str(len(a))+"位数")

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

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

以下两种方法均可判断任意数是否为回文数:

def daoxu(x):if len(x) == 1:return xelse:return x[-1]+daoxu(x[:-1])#使用递归函数输出一个数的倒序数
a = input("请输入:")
b = daoxu(a)
if b == a:print(str(a)+'是回文数')#判断正序和倒序数字是否一样
else:print(str(a)+'不是回文数')
a = input("请输入:")
b =  a[::-1]
if b ==a:print(str(a)+"是个回文数")
else:print(str(a)+"不是个回文数")

题目中强调这个数字为5位数,因此进行修改如下:

a = input("请输入:")
int_a = int(a)
if int_a > 99999 or int_a < 10000:print("INPUT ERROR")
else:b =  a[::-1]if b ==a:print(str(a)+"是个回文数")else:print(str(a)+"不是个回文数")

18. 求100之内的素数

质数是指在大于1的自然数中,除了1和它本身**以外不再有其他因数的自然数。

a = []
for i in range(100):if i < 2:continuefor j in range(2,i):if i % j == 0:breakelse:a.append(i)
print("100以内的素数有",a)

19.对10个数进行排序

方法一:使用sort函数

a = []
for i in range(10):nums = input("请输入10个数字:")a.append(int(nums))print(a)
a.sort()
print(a)

方法二:定义排序函数

def paixu(a):for i in range(len(a)-1):for j in range(1+i,len(a)):if a[i] > a[j]:a[i],a[j] = a[j],a[i]return a
b = []
for k in range(3):nums = input("请输入:")b.append(int(nums))
print(paixu(b))

20. 求一个3*3矩阵对角线元素之和

sum = 0
a = [[1,6,8],[3,2,5],[6,9,8]]
for i in range(3):for j in range(3):if i == j:sum = a[i][j]+sum
print(sum)

这是给定一个矩阵,来求它的对角线之和。那么如何输入一个矩阵呢?

a = []
for i in range(0,3):tmp = []for j in range(0,3):tmp.append(j)a.append(tmp)
print(a)

21. 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

以下为冒泡排序

import timea = []
for i in range(3):b = input("请输入:")a.append(int(b))
print(a)
#采用冒泡排序法
def maopao(j):for j in range(len(a)-1):for k in range(0,len(a)-1):if a[j] > a [j+1]:a[j],a[j+1] = a[j+1],a[j]print(a)
if __name__ == "__main__":maopao(a)
time.sleep(3)
input_num = input("插入数字:")
a.append(int(input_num))
if __name__ == "__main__":maopao(a)

22.将一个数组逆序输出。

以下四种方法均可以实现

a = [1,2,3,4]
for i in range(int(len(a)/2)):a[i],a[len(a)-1-i] = a[len(a)-1-i],a[i]
print(a)
a = [1,2,3,4]
b = a[::-1]
print(b)
a = [1,2,3,4]
b = []
for i in range(len(a)):fanzhuan_a = a[len(a)-1-i]b.append(fanzhuan_a)
print(b)
a = [1,2,3,4]
b = []
for i in range(len(a)-1,-1,-1):zhengxu_a = a[i]b.append(zhengxu_a)
print(b)

23.取一个整数a从右端开始的4~7位。

大致思路:

(1)可以先使整数a向右移动4位

(2)设置一个低4位全为1,其余全为0的数。

(3)将上面二者进行&运算

首先应该将该整数转化为一个二进制数。

#写函数采用%2的方式来算
#先略过这题,不太会做

24.【Tkinter模块】

实现功能:点击一次button按钮,回调函数执行一次。

from tkinter import *
def  hellobutton():print("我是一个中国人")
root = Tk()
#根窗口
root.title("python")
Button(root,text = 'hellobutton',command = hellobutton).pack()
#装包显示
root.mainloop()
#程序持续执行

python入门经典100题相关推荐

  1. python入门经典100题-零基础学习Python开发练习100题实例(1)

    零基础学习Python开发练习100题实例(1) 2018-02-25 09:37:59 2854浏览 1.题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序 ...

  2. python入门经典100题-Python基础训练100题(带答案)[DOC][47KB]

    内容简介 本教程来自网友总结整理,这个习题包含了大部分Python入门级别的习题,还有习题答案.希望通过这100道例题,能对python3的基础代码能力有一定的掌握.需要的朋友可下载试试! 目录 实例 ...

  3. python入门经典100题-Python3基础训练经典100题(带答案)下载

    实例001:数字组合 实例002:"个税计算" 实例003:完全平方数 实例004:这天第几天 实例005:三数排序 实例006:斐波那契数列 实例007:copy 实例008:九 ...

  4. 风变编程python入门经典100题_风变编程《Python基础语法+爬虫精进》

    作为IT小白,从没想过会主动去学习这方面的知识,因为学历专业差距很大,从事职业也基本用不上这些.然而,在偶然一次机会接触了风变编程体验课后,我发现了python给我打开了一个新的视野,未知领域的探索就 ...

  5. python入门经典100例-Python3经典100例(含习题答案) DOC 清晰版

    给大家带来的一篇关于Python3入门相关的电子文档资源,介绍了关于Python3.python习题方面的内容,本书是由python学习社区出版,格式为DOC,资源大小46.6 KB,Mrs.莫建辉编 ...

  6. python入门经典100例-【python】编程语言入门经典100例--3

    1 #题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 代码:2 i = 0 3 j = 0 4 while (i >= 0): 5 m = i* ...

  7. python入门经典100例-Python3经典100例(Python3入门习题) 含答案 doc版

    本教程来自网友总结整理,这个习题包含了大部分Python入门级别的习题,还有习题答案.希望通过这100道例题,能对python3的基础代码能力有一定的掌握.需要的朋友可下载试试! 目录 实例001:数 ...

  8. python入门经典100例-【python】编程语言入门经典100例--22

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

  9. python入门经典100例-【python】编程语言入门经典100例--25

    1 #题目:求1+2!+3!+...+20!的和. 代码: 2 3 m = 0 4 for x in range(1,21): 5 s = 1 6 for y in range(1,x+1): 7 s ...

  10. python入门经典100例-【python】编程语言入门经典100例--14

    1 #题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 代码:2 import pdb 3 tmp = int(input('请输入一个正整数:')) 4 print('%d ...

最新文章

  1. 是否可以在Gradle中声明一个可用于Java的变量?
  2. 【程序员的英语】出奇制胜-那你得乖乖学英语啊!
  3. 从用户反馈的可解释性提升推荐模型
  4. Stream流中的常用方法_skip
  5. Core-java面试题第一套上篇
  6. python get post区别_大话Python, webpy教程之GET和POST区别
  7. java nginx 例子_Nginx配置日志
  8. python入职要求_Python入职面试,可能会被企业HR问到的问题,你准备好了吗
  9. linux 列出当前视频设备,如何获取Linux(ubuntu)上的视频捕获设备(网络摄像机)列表?(C / C ++)...
  10. virtualbox 中ubantu虚拟机范文win7文件夹
  11. 201621123058《java程序设计》第一周学习总结
  12. Android jdwp 自动断开,android – 安装调试器有时会导致应用程序崩溃
  13. [979]小米6X如何开启root权限
  14. JS中反射Reflect的基本使用
  15. 搭建Kangle+EasyPanel+WHMCS实时开通付费虚拟空间
  16. r语言8c多字节字符串有错,R语言答疑:txt文件无法被R正确读入
  17. vmware 静态ip上网 防止切换网络换ip
  18. mysql查询1万条数据要1秒钟_SQL查询效率:100万数据查询只需要1秒钟
  19. beta冲刺(3/7)
  20. DIY运动控制器——移植grbl(软件架构、脉冲产生)

热门文章

  1. 万能pdf阅读器卸载
  2. android nfc模拟器,NFC Emulator下载
  3. 角谱 matlab,关于角谱法实现数字全息 - 程序语言 - MATLAB/Mathematica - 小木虫论坛-学术科研互动平台...
  4. 计算机考研复试面试常问问题 软件工程篇
  5. 《Spring 揭秘》读书笔记
  6. MUSIC算法相关原理知识(物理解读+数学推导+Matlab代码实现)
  7. python 最优解 ma_python遗传算法求最优解
  8. 计算机组成原理课后答案(唐朔飞第三版) 第三章
  9. Amos实操教程|调节效应检验
  10. 大白菜u启动盘安装linux,大白菜U盘启动pe装系统教程