求1-5阶乘之和
num=1
sum=0
for x in range(1,6):
num*=x
sum+=num
print("1-5阶乘之和是:", sum)
求一个3*3矩阵主对角线元素之和。
考查点:矩阵对角线之和
mat=[
[1,2,3],
[4,5,6],
[7,8,9]
]
res=0
for i in range(len(mat)):
res+=mat[i][i]
print(res)#15==1+5+9
已知字符串a=“go_to_school”,如何得到 [“go”,“to”,“school”]?
a="go_to_school"
print( a.split("_") )
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
考查点:递归求等差数列
def age(n):
if n==1:
return 10
return 2+age(n-1)
print(age(5))#18
找单词 "welcom"在字符串 a="hello,welcom to my home"中出现的位置,找不到返回-1
a="hello,welcom to my home"
b="welcom"
print(a.find(b))
统计字符串a="hello,welcom to my home"中字母m出现的次数?
a="hello,welcom to my home w"
total=0
for i in a:
if 'm' in i:
total+=1
print(total)
输出结果:3
将字符串a=" hello,welcom to my home "首尾空格去掉
方法1:直接调用字符串的 strip() 方法
方法2:递归实现:
def trim(st):
flag=0
if st[:1]==" ":
st=st[1:]
flag=1
if st[-1:]==" ":
st=st[:-1]
flag=1
if flag==1:
return trim(st)
else:
return st
a=" hello,welcom to my home "
print(trim(a))
方法3:while循环实现
def trim(st):
while True:
flag=0
if st[:1]==" ":
st=st[1:]
flag=1
if st[-1:]==" ":
st=st[:-1]
flag=1
if flag==0:
break
return st
a=" hello,welcom to my home "
print(trim(a))
将字符串 a = “adfjbedlfcdkgfdih” 去重并从小到大排序输出
def test(st):
str_list=[]
for i in st:
#如果数组中已经存在这个字母了,则将字母移除,加入新的字母
if i in str_list:
str_list.remove(i)
str_list.append(i)
st=sorted(str_list)#对字母进行排序,返回列表
return "".join(st)
a = "adfjbedlfcdkgfdih"
print(test(a))
输出结果:abcdefghijkl
输入一个正整数,求1到这个正整数(包含)的所有偶数和?
num=int(input("输入一个正整数:"))
res=0
for i in range(1, num+1):
if i%2==0:
res+=i
print("1-%d所有偶数和:"%num,res)
2 4 6 ...
延伸知识:等差数列,公差d=2,前n项和公式:Sn=((A1+An)*n)/2 Sn=((2+40)*20)/2
打印图案(菱形):
n=8
for i in range(-int(n/2),int(n/2)+1):
print(" "*abs(i),"*"*abs(n-abs(i)*2),sep="")
输出结果:
**
****
******
********
******
****
**
计算 1-2+3-4+5-…-100的值:
sum=0
for i in range(1,100+1):
sum+=i*(-1)**(1+i)
print(sum)
输出结果:-50
现在 13+23+33+43+…+n3,如何实现 当输入n=5时,输出165(13+23+33+43+53=165)
sum=0
n=5
for i in range(1,n+1):
sum+=i*10+3
print(sum)
输出结果:165
判断闰年:
year=2019
if year%400==0 or year%100!=0 and year%4==0:
print(year,"是闰年")
else:
print(year,"不是闰年")
如何判断一个数组是对称数组?
如:[1,2,0,2,1] , [1,2,3,3,2,1] 这样的数组都是对称数组
x=[1,2,3,3,2,1]
if x==x[::-1]:#逆序进行对比
print("对称数组")
else:
print("非对称数组")
输出结果:对称数组
输入三个数,求最大值:
a=60
b=15
c=1
方式一:
if a>b and a>c:
print("最大a:", a)
elif b > c:
print("最大b:", b)
else:
print("最大c:",c)
方式二:
if a>b:
if a>c:
print("最大a:", a)
else:
print("最大c:", c)
else:
if b > c:
print("最大b:", b)
else:
print("最大c:",c)
方式三:
maxval=0
if a>maxval:
maxval=a
if b>maxval:
maxval=b
if c>maxval:
maxval=c
print("最大:",maxval)
找了列表a=[“hello”,“world”,“welcome”,“to”]中单词最长的一个?
a=["hello","world","welcome","to"]
length=a[0]
for i in a:
if len(i)>len(length):
length=i
print(length)
输出结果:welcome
找出列表a=[2,4,5,80,9,3,12,44,7]中最大的三个值?
a=[2,4,5,80,9,3,12,44,7]
a=sorted(a)[:-4:-1] #截取最后3个
print(a)
输出结果:[80, 44, 12]
输入三个数,从大到小输出:
a=1
b=2
c=3
tmp=0
if a < b: # 如果a小于b,交换位置
tmp = b
b = a
a = tmp
if a < c: # 如果a小于c,交换位置
tmp = c
c = a
a = tmp
if b < c: # 如果b小于c,交换位置
tmp = c
c = b
b = tmp
print(a, b, c)
打印9*9乘法表
i=1
while i<=9:
j=1
while j<=i:
print("%d*%d=%d"%(j,i,j*i),end="\t")
j+=1
print()
i+=1
有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
for a in range(1, 5):#3位数,所以3个循环
for b in range(1, 5):
for c in range(1, 5):
if a != b and a != c and b != c:
print(a*100+b*10+c,end=" ")
total += 1
print()
print("总共",total,"个")