python⼊门经典100题
⼊门经典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:
continue
else:
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-100
print(x)
3.判断101-200之间有多少个素数,并输出所有素数。
素数就是在⼤于1的⾃然数中,除了1和它本⾝不再有其他因数的数。
num = []
for i in range(101,200):
for j in range(2,i):
if i%j == 0:
break
else:
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%10
shiwei = i//10%10
baiwei = i//100
if i == gewei **3 +shiwei **3 +baiwei **3:
print(i)
5.将⼀个正整数分解质因数。
#join()函数
铁蛋白array是什么意思#语法:
‘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:
学python编程入门print(n,'=','1*',n)
else:
b ='*'.join(a)
print(n,'=',b)
封装 try try鸭~~
# 将⼀个正整数分解质因数。例如:输⼊90,打印出90=2*3*3*5。git教程 下载
def zhiyin():
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))
break
if 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表⽰。封装下哈
score =int(input("请输⼊学习成绩:"))
if score >=90:
grade ='A'
elif score >=60:
grade ='B'
else:
grade ='C'
bootstrap table获取表格数据print(grade)
if __name__ =="__main__":
#调⽤呀
main()
7.输⼊⼀⾏字符,分别统计出其中英⽂字母、空格、数字和其它字符的个数。
import string
def main():
a =input("请输⼊⼀⾏字符:")
zimu =0
kongge =0
shuzi =0
qita =0
for i in a:
if i.isalpha():
zimu +=1
elif i.isspace():
kongge +=1
elif i.isdigit():
shuzi +=1
else:
qita +=1
print("这⼀⾏字符中有"+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循环和⾃加实现
a =0
sum=0
a =int(input("请输⼊数字:"))
b =int(input("请输⼊位数:"))
c =[]
e = a
for i in range(b):
if b ==1:
print(str(a)+'='+str(a))
else:
c.append(str(a))
a = a*10+e
sum+= a
d ='+'.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+= j
if sum== a :
print(str(a)+'是个完数')
else:
print(str(a)+'不是个完数')
#试着封装下呗
a =int(input("请输⼊:"))
for i in range(1,a+1):
sum=0
for j in range(1,i):
if i % j ==0:
sum+= j
if 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):
java中append的用法print(('*'* i).center(7))
#使⽤center函数将其居中显⽰
for i in range(-3,4):
if i <0:
excel的mid函数怎么用j =-i
else:
j = i
print(' '* 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 =2
b =1
s =0
for i in range(20):
s += a/b
a += b
b = a-b
print("这个数列前20项之和为"+str(s))
if __name__ =='__main__':
main()
12.求1+2!+3!+…+20!的和
思路⼀:递归函数
以下为计算阶乘的递归函数:
def jiecheng(n):# n为形参
if n ==1:
return1
else:
return n*jiecheng(n-1)
print(jiecheng(3))
递归函数 + for 循环
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论