Python代码案例练习题!测测你有这样的代码思维吗?

这篇博客包含了15个Python编程挑战,包括数组操作、循环问题、数学计算、字符串加密、文件处理等,旨在提升你的编程思维和实战能力。通过解决这些题目,你可以深入理解Python核心概念并提升编程技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Time will tell.

1、自定义 n 个整数,使其前面的数按顺序向后移 m(自定义) 个位置,而后面 m 个数则在最前面的 m 个数的位置上。


代码:


def move_backward(m):
    a = [2, 8, 6, 1, 78, 45, 34, 2]
    for i in range(len(a) - m):
        a.append(a[0])
        a.pop(0)
    return a


if __name__ == '__main__':
    print(move_backward(5))

2、有n个人围成了一圈,序号排列。从第一个人开始报数,凡报到 3 的人退出圈子,那么最后留下的人是原来一整个圈子里的几号?


代码:


def report(num):
    lst = []
    for i in range(num):
        lst.append(i + 1)

    t = 0
    while len(lst) > 1:
        for x in range(3):
            t += 1
            if x == 2:
                t -= 1
                lst.pop(t)
            if t == len(lst):
                t = 0
    return lst[0]


if __name__ == '__main__':
    print(report(34))

打印结果:

10

3、编写函数,随机输入一个 n,当它为偶数时调用函数求 1/2+1/4+…+1/n 的值,当它为奇数时,调用函数求 1/1+1/3+…+1/n 的值。


代码:


def peven(n):
    i = 0
    s = 0.0
    for i in range(2,n + 1,2):
        s += 1.0 / i   # Python里,整数除整数,只能得出整数,所以需要使用 浮点数 1.0
    return s
 
def podd(n):
    s = 0.0
    for i in range(1, n + 1,2):
        s += 1.0 / i    # Python里,整数除整数,只能得出整数,所以需要使用 浮点数 1.0
    return s
 
def dcall(fp,n):
    s = fp(n)
    return s
 
if __name__ == '__main__':
    n = int(raw_input('input a number:\n'))
    if n % 2 == 0:
        sum = dcall(peven,n)
    else:
        sum = dcall(podd,n)
    print sum

4、有一堆桃子,5只猴子来分。第一只猴子把这堆桃子平均分为5份,多出的一个桃子被这只猴子扔了,并拿走其中一份。第二只猴子把剩下的桃子平均分成5份,又多了一个,它同样把多的一个扔了,并拿走了其中一份。第三、四、五只猴子同样这么做,那么原来一共有多少个桃子?


代码1:


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

代码2:


def divide_peach():
    for num in range(1000):
        for x in range(5):
            num = num * 5 + 1
            if not num % 4:
                num = num // 4
                continue
            else:
                break

        if x == 4:
            return num
    return None


if __name__ == '__main__':
    print(divide_peach())

5、?? 代表一个两位数,809*?? = 800*??+9*?? , 809*?? 结果为四位数,8*?? 结果为两位数,9*??结果为三位数。求?? 是多少,及809*?? 的结果。


代码:


a = 809
for i in range(10,100):
    b = i * a
    if b >= 1000 and b <= 10000 and 8 * i < 100 and 9 * i >= 100:
        print b,' = 800 * ', i, ' + 9 * ', i

6、将一个八进制转换为十进制。


代码:


if __name__ == '__main__':
    n = 0
    p = raw_input('input a octal number: ')
    for i in range(len(p)):
        n = n * 8 + ord(p[i]) - ord('0')
    print n

7.求 0 到 7 当中所能组成的奇数的个数。


代码:


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

8、随机输入一个奇数,然后判断该数最少除以几个 9后,结果为整数。


代码:


if __name__ == '__main__':
    zi = int(raw_input('输入一个数字:\n'))
    n1 = 1
    c9 = 1
    m9 = 9
    sum = 9
    while n1 != 0:
        if sum % zi == 0:
            n1 = 0
        else:
            m9 *= 10
            sum += m9
            c9 += 1
    print '%d 个 9 可以被 %d 整除 : %d' % (c9,zi,sum)
    r = sum / zi
    print '%d / %d = %d' % (sum,zi,r)


9、在 1—50当中输入其中7个整数值,每输入一个数,程序在打印行打印出相对应个数的*号。


代码:


if __name__ == '__main__':
    n = 1
    while n <= 7:
        a = int(raw_input('input a number:\n'))
        while a < 1 or a > 50:
            a = int(raw_input('input a number:\n'))
        print a * '*'
        n += 1

10、公司采用公用电话传递数据,数据是一个四位整数,在传递过程中加密。每位数字都加上5,然后用和 除以10的余数来代替该数字。再将第一位与第四位交换,第二位与第三位交换。求数据加密后的数(自定义一个加密钱的四位数)。


代码:


from sys import stdout
if __name__ == '__main__':
    a = int(raw_input('输入四个数字:\n'))
    aa = []
    aa.append(a % 10)
    aa.append(a % 100 / 10)
    aa.append(a % 1000 / 100)
    aa.append(a / 1000)
 
    for i in range(4):
        aa[i] += 5
        aa[i] %= 10
    for i in range(2):
        aa[i],aa[3 - i] = aa[3 - i],aa[i]
    for i in range(3,-1,-1):
        stdout.write(str(aa[i]))

11、在打印行当中随机输入一些字符,逐个把它们写到磁盘文件上,直到输入一个 # 为止。


代码:


if __name__ == '__main__':
    from sys import stdout
    filename = raw_input('输入文件名:\n')
    fp = open(filename,"w")
    ch = raw_input('输入字符串:\n')
    while ch != '#':
        fp.write(ch)
        stdout.write(ch)
        ch = raw_input('')
    fp.close()

12、在打印行当中随机输入一些字符,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存。


代码:


if __name__ == '__main__':
    fp = open('test.txt','w')
    string = raw_input('please input a string:\n')
    string = string.upper()
    fp.write(string)
    fp = open('test.txt','r')
    print fp.read()
    fp.close()

13、时间函数模仿,一个猜数游戏,判断一个人反应快慢


代码:


if __name__ == '__main__':
    import time
    import random

    play_it = input('do you want to play it.(\'y\' or \'n\')')
    while play_it == 'y':
        c = input('input a character:\n')
        i = random.randint(0, 2 ** 32) % 100
        print('please input number you guess!')

        start = time.process_time()
        a = time.time()
        guess = int(input('input your guess:\n'))
        while guess != i:
            if guess > i:
                print('please input a little smaller')

                guess = int(input('input your guess:\n'))
            else:
                print('please input a little bigger')
                guess = int(input('input your guess:\n'))
        end = time.process_time()
        b = time.time()
        var = (end - start) / 18.2
        print(var)
        print(f'It took you {b - a} seconds')
        if var < 15:
            print('you are very clever!')
        elif var < 25:
            print('you are normal!')
        else:
            print('you are stupid!')
        print('Congradulations')
        print('The number you guess is %d' % i)
        play_it = input('do you want to play it.(\'y\' or \'n\')')

14、有A、B两个磁盘文件,各存放一行字母。用代码把这两个文件中的信息合并,并输出到一个新文件C中。


代码:


# 在脚本执行的目录下创建 test1.txt、test2.txt 文件。

if __name__ == '__main__':
    import string
    fp = open('test1.txt')
    a = fp.read()
    fp.close()
 
    fp = open('test2.txt')
    b = fp.read()
    fp.close()
 
    fp = open('test3.txt','w')
    l = list(a + b)
    l.sort()
    s = ''
    s = s.join(l)
    fp.write(s)
    fp.close()

15、一个整数,加上100后是一个完全平方数,再加上168又是一个完全平方数,用代码求出该数的值。


代码:


main() 
{ 
long int i,x,y,z; 
for (i=1;i<100000;i++) 
 { x=sqrt(i+100);   /*x为加上100后开方后的结果*/ 
  y=sqrt(i+268);   /*y为再加上168后开方后的结果*/ 
   if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/ 
    printf("\n%ld\n",i); 
  } 
}  

絮叨

如果你对Python自动化测试、Python面试题、Python练习题感兴趣的话可以加入我们175317069一起学习喔。群里会有各项资料发放,也有行业深潜多年的测试人技术分析讲解。

欢迎【评论】、【点赞】、【关注】礼貌三连~

Time will tell.(时间会证明一切)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值