python题目

求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,"个")
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值