Python与数据科学实验(Exp1)

摘要:终端执行py、素数、统计lnbo个数、水仙花数、回文串、矩阵对角线、阶乘之和、猜数字游戏

在终端中执行python文件

#exp1 终端执行python文件
##!/usr/bin/env python3
#cd /Users/left/Documents   /t1.py
#chmod a+x t1.py
#.t1.py
print("Hi, Python!")
print("Welcome ...")
print("Happy You!")

打印 [m,n] 的所有素数及个数

def isPrime(n):
    if(n<=1):
        return False
    for i in range(2,n):
        if n%i == 0 :
             return 0
    return n
        
def main():
    #一次输入多个参数:map(类型,input().split(分隔符))
    m,n = map(int,input().split(',')) 
    print("m=%d,n=%d" % (m,n))
    count=0; #计算素数的个数   
    for i in range (m,n+1): #区间[m,n+1)
        if(isPrime(i)):
            print(isPrime(i))
            count +=1
    print("素数的个数是:",count)


if __name__=="__main__":
    main()

统计lnbo个数(letter/number/blank/other)

def lnbo(s):
    #s="helllo12345aa*&@*"
    letter = number = blank = other = 0
    for i in range(0,len(s)):
        if s[i]>='A' and s[i]<='Z' or s[i]>='a' and s[i]<='z':
            letter +=1
        elif s[i]>='0' and s[i]<='9':
            number +=1
        elif s[i]==' ':
            blank+=1
        else:
            other+=1
    #py返回多个值 以元组逐个接收
    #https://jingyan.baidu.com/article/1876c852d3c2abc80a137629.html
    return letter, number, blank, other

def main():
    s="helllo12345aa*&@*"
    print("s=",s)
    l,n,b,o = lnbo(s)
    print("letter=",l)
    print("number=",n)
    print("blank=",b)
    print("other=",o)

if __name__=="__main__":
    main()

输出1000以内水仙花数

如果一个3位数等于其各位数字的立方和,这个数就是水仙花数。

def Narci():
    #水仙花数 abc=a³+b³+c³
    #153,370,371,407
    for i in range(100,1000):
        s=str(i)
        a=int(s[0])
        b=int(s[1])
        c=int(s[2])
        #print("s=%s,i=%d,a=%d,b=%d,c=%d" %(s,i,a,b,c))
        
        if (a**3 + b**3 + c**3) == i :
            print(i)
        
def main():
    print("水仙花数 Narcissus:\nabc=a³+b³+c³")
    Narci() 

if __name__=="__main__":
    main()

回文串判断

def isPalind(s):
    if s==s[::-1]: #利用步长为-1的切片进行逆序
        return True
    else:
        return False
        
def main():
    s=input("Enter a string of 5 chars:")
    print("is palindrome:",isPalind(s))

if __name__=="__main__":
    main()

矩阵主对角线之和

def matrixDiagonal(m):
    sum=0
    for i in range(0,len(m)): #行
        for j in range(0,len(m[0])):#列
            if i==j:
                sum+=m[i][j]
    return sum
        
def main():
    m=[[1,2,3],[3,4,5],[4,5,6]]
    print("m=",m)
    print("对角线之和:",matrixDiagonal(m))

if __name__=="__main__":
    main()

∑n!(n=20) 阶乘之和
def factorial(n):
    fact = 1 #初始值
    for i in range(1,n+1):
        fact *= i
    return fact
       
def main():
    sum = 0
    for i in range(1,21):
        sum += factorial(i)
    print("∑n!(n=20)",sum)

if __name__=="__main__":
    main()

猜数字游戏
def guessNum():
    import random
    K = random.randint(0,100)             #key
    print("K=%d" % K)#测试的时候用一下 不想折半查找
    A = int(input("Enter a number:"))  #answer
    t = 0 #trial
    
    while A != K:
        t+=1
        if A > K:
            print("That's too high.")
        else:
            print("That's too low.")
        A = int(input("Enter a number again:"))

    if A == K:
        print("Bingo!")
        print("You've tried %d times." % t)
        return 
      
def main():
    print("猜大小游戏:")
    guessNum()

if __name__=="__main__":
    main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值