python基础练习25-39

26.求100之内的素数。

for i in range(2,101):
    for j in range(2,i):
        if i % j==0:
            break
    else:
        print(i)

27.对10个数进行排序。这里用的是冒泡法

if __name__ == "__main__":
    N = 10
    # input data
    print ('请输入10个数字:\n')
    l = []
    for i in range(N):
        l.append(int(input('输入一个数字:\n')))
    print()
    for i in range(N):
        print(l[i])
    print()
 
    # 排列10个数字
    for i in range(N - 1):
        min = i
        for j in range(i + 1,N):
            if l[min] > l[j]:min = j
        l[i],l[min] = l[min],l[i]
    print ('排列之后:')
    for i in range(N):
        print (l[i])

28.求一个3*3矩阵主对角线元素之和。

import numpy as np

a=np.random.randint(1,100,9).reshape(3,3)
print(a)
(m,n)=np.shape(a)
sum=0
for i in range(m):
    for j in range(n):
        if i==j:
            sum+=a[i,j]
print(sum)

29.两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵:(使用numpy更快)

x = [[12,7,3],
        [4,5,6],
        [7,8,9]]

y = [[5,8,1],
        [6,7,3],
        [4,5,9]]
z= []
for i in range(3):
    z.append([])
for i in range(3):
    for j in range(3):
        z[i].append(x[i][j]+y[i][j])
print(z)

30.求输入数字的平方,如果平方运算后小于 50 则退出。

a=1
while a:
    n=int(input('num:'))
    if n*n<50:
        a=0
        print(n*n)
    else:
        a=1
        print(n*n)

31.杨辉三角

l=[1]
for i in range(10):
   for k in l:
      print(k,end='\t')
   print('\n ')
   l1=l[:]
   l1.insert(0,0)
   l1.append(0)
   l2=[]
   for i in range(len(l1)-1):
      l2.append(l1[i]+l1[i+1])
   l=l2[:]

32.输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。(numpy中的argmax,argmin更好用)

for i in range(len(a)):
    if a[i] == max(a):
        a[0], a[i] = a[i], a[0]
for i in range(len(a)):
    if a[i] == min(a):
        a[i], a[len(a)-1]=a[len(a)-1], a[i]

33.有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

if __name__ == '__main__':
    nmax = 50
    n = int(raw_input('请输入总人数:'))
    num = []
    for i in range(n):
        num.append(i + 1)
 
    i = 0
    k = 0
    m = 0
 
    while m < n - 1:
        if num[i] != 0 : k += 1
        if k == 3:
            num[i] = 0
            k = 0
            m += 1
        i += 1
        if i == n : i = 0
 
    i = 0
    while num[i] == 0: i += 1
    print num[i]

34.海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

if __name__ == '__main__':
    i = 0
    j = 1
    x = 0
    while (i < 5) :
        x = 4 * j
        for i in range(0,5) :
            if(x%4 != 0) :
                break
            else :
                i += 1
            x = (x/4) * 5 +1
        j += 1
    print x

35.编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n

def sumfr(n):
    ls = [1/i for i in range(n,0,-2)]
    return sum(ls)

36.求0—7所能组成的奇数个数。

if __name__ == '__main__':
    sum = 4
    s = 4
    for j in range(0,7):
        print (sum)
        if j <= 0:
            s *= 7
        else:
            s *= 8
        sum += s
    print ('sum = %d' % sum)

37.输入一个奇数,然后判断最少几个 9 除于该数的结果为整数。

x=int(input('sum:'))
a=9
n=1
while 1:
    if a%x==0:
        break
    else:
        a=a*10+9
        n+=1
print(n)

38.读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*

for i in range(7):
    a=int(input('num:'))
    if a>1 and a<50:
        print(a*'*')

39某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

b=[]
a=[2,3,1,4]
a[0], a[3]=a[3], a[0]
a[2], a[1]=a[1],a[2]
for i in range(4):
    b.append([])
    for j in range(4):
        b[i]=(a[i]+5)%10
        
print(b)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值