美文网首页
这些Python基础练习题你会几个?

这些Python基础练习题你会几个?

作者: Python芸芸 | 来源:发表于2020-04-21 21:57 被阅读0次
    u=969839346,4233075521&fm=26&gp=0.jpg

    在人工智能大火的当今,Python 作为人工智能时代的首选语言已经越来越收到追捧;但是许多非科班、零基础的小伙伴常常苦于没有合适的入门 Python 的教程而感到苦恼;本人是一名资深Python开发,参与过一些 Python 项目,想和大家分享一些自学 Python 的经验和心得。学以致用,在学习基础知识的过程中,多去实践,多去找些题目做,和小的项目去练手。可以大大提升你入门Python的效率哦!还有就是要找到一个好的老师,带着你去学习,效果也是显而易见的。

    下面是一些常见的Python基础练习题,希望能帮到正在学习Python的你。

    温度转换

    说明:eval()使用

    val = input ()
    if val[0] in ['F','f']:
        C = (eval(val[1:])-32)/1.8
        print("C{:.2f}".format(C))
    elif val[0] in ['C','c']:
         F = 1.8*eval(val[1:])+32
         print("F{:.2f}".format(F))
    

    货币转换

    说明:字符串基操
    如图:

    image
    #Ratio = 6.78
    Currency = input()
    if Currency[-1] in 'D':
        R = 6.78*(eval(Currency[:-3]))
        print("{:.2f}RMB".format(R))
    elif Currency[-1] in '$':
        R = 6.78*(eval(Currency[:-1]))
        print("{:.2f}¥".format(R))
    elif Currency[-1] in 'B':
        U = (eval(Currency[:-3]))/6.78
        print("{:.2f}USD".format(U))
    elif Currency[-1] in '¥':
        U = (eval(Currency[:-1]))/6.78
        print("{:.2f}$".format(U))
    

    (我的文章底部有更全的练习题,资料,源码,视频来辅助你学习Python。想学就去看看,别错过咯。)

    输入一个正整数n,对其进行因式分解并输出。

    例如:输入18,输出18=233

    解题思路:

    最小的质数为2,每次从2开始遍历,只要 n % i == 0 , i 为当前n的最小质数,n = n / i 作为新的正整数,跳出当前循环,再次从2开始遍历

    遍历至 n = i 时表示因式分解过程已结束

    方法一:

    
    a = int(raw_input("请输入一个整数:"))
    b = ""
    d = a
    q = 1
    print "n = %d" % a
    while q:
        if a == 1:
            break
        for i in xrange(2, a+1):
            if a == i:
                q = 0
                break
     
            if a % i == 0 :
                b += '%s * ' % i
                a = a / i
                break
     
    print "%s = %s%s" % (d, b, a)
    

    方法二:

    from sys import stdout
    n = int(raw_input("请输入一个正整数:"))
    b = n
    print "n = %s" % n
    stdout.write(str(n)+ " = ")
    for i in range(2, n+1):
        while n != 1:
            if n % i == 0:
                n = n/i
                if n == 1:
                    n = n * i
                    break
                stdout.write(str(i))
                stdout.write("*")
            else:
                break
     
    print "%d" % n
    

    PS. print 和 sys.stdout的区别

    实际上我们在调用 print (对象) 时,实际上是调用了sys.stdout(对象+'\n'),print 比sys.stdout多了一个换行符,所以在不需要换行的情况下追加字符串可以使用sys.stdout

    一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,求他在第10次落地时,共经过多少米?第10次反弹多高?

    h = 100
    hsum = 100
    for i in xrange(1, 11):
        h = 0.5 * h
        hsum += h * 2
     
    print hsum, h
    

    凯撒密码

    凯撒密码是古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:

    原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

    密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

    对于原文字符P,其密文字符C满足如下条件:C=(P+3) mod 26

    上述是凯撒密码的加密方法,解密方法反之,即:P=(C-3) mod 26

    假设用户可能使用的输入仅包含小写字母a~z和空格,请编写一个程序,对输入字符串进行凯撒密码加密,直接输出结果,其中空格不用进行加密处理。使用input()获得输入。

    说明:字符串基操还不如用C/C++做……

    letter = "abcdefghijklmnopqrstuvwxyz"
    LETTER = letter.upper()
    S = letter + letter + LETTER + LETTER
    P = input("")
    C = ""
    for i in P:
        if i.isalpha():
            j = S.find(i)
            if(j>-1):
                C = C+S[j+3]
        else:
            C = C+i
    print(C)
    

    进制转换

    说明:辗转相除,反向取余

    def getSign(a):
        return('' if(a>=0) else '-')
    
    def getString(num,radix):
        ans = []
        digit = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
        idx = []
        while True:
            quotien = num//radix
            residue = num%radix
            idx = idx+[residue]
            if quotien == 0:
                break
            num = quotien
        idx.reverse()
        for i in idx:
            ans.append(digit[i])
        str_convert = ''.join(ans)
        return str_convert
    
    a = int(input())
    b = int(input())
    mark = getSign(a)
    bitString = getString(abs(a),b)
    print(mark + bitString)
    

    质数判断

    说明:直接暴力枚举吧……

    def isPrime(n):
        if n==2:
            return True
        else:
            for i in range(2,n):
                if n%i == 0:
                    return False
                elif i == n-1:
                    return True
            
    num=int(input())
    if isPrime(num):
        print('yes')
    else:
        print('no')
    

    二分法查找

    二分法查找就是通过不断对半的方法查找区间[a,b]内的数值位置

    def binarySearch(L, t):
        x=0
        low, high = 0, len(L) - 1
        while low < high:
            mid = (low + high)/2
            if L[mid] > t:
                high = mid
            elif L[mid] < t:
                low = mid +1
            else:
                return mid
     
        return mid if L[mid-1] == t else False
     
    print binarySearch([1,2,3,4,5,6,7,8,9,10], 4)
    

    在上面给大家介绍了一下常见的Python基础练习题。在这里小编整理了全套的Python零基础学习资料,一些Python常用工具的安装包,学习路线图。帮助你们快速的入门Python。资料路线图都可以找我拿,什么都不要,拿的方式是:看我的网名,也就是Python芸芸的全拼音,然后用这个名字,在(魏X)上找我就行,我还可以给大家一些比较基础的python项目视频!

    相关文章

      网友评论

          本文标题:这些Python基础练习题你会几个?

          本文链接:https://www.haomeiwen.com/subject/airjihtx.html