1. 程式人生 > 其它 >Python 第三次實驗

Python 第三次實驗

一如既往地簡單,不到半個小時即可完成

【1】 (程式設計)輸入一個正整數,輸出它的因子分解式。如輸入132,則輸出132=122311

n=int(input())
print(1,end='')
for i in range(2,n+1):
    while(n%i==0):
        n=n/i
        print('*',i,sep='',end='')

【2】 (程式設計)使用者輸入一行字串,統計並輸出其中空格、數字、英文字母、其他字元的個數,輸入輸出格式如下:
例如:
請輸入字串:Version 3.1415
輸入的字串有1個空格,5個數字,7個英文字母,1個其它字元

str=input()
ans_space=0
ans_num=0
ans_other=0
ans_alphabet=0
for s in str:
    if('0'<=s<='9'):
        ans_num=ans_num+1
    elif('a'<=s<='z' or 'A'<=s<='Z'):
        ans_alphabet=ans_alphabet+1
    elif(s==' '):
        ans_space=ans_space+1
    else:
        ans_other=ans_other+1

print('輸入的字串有{}個空格,{}個數字,{}個英文字母,{}個其它字元'.format(ans_space,ans_num,ans_alphabet,ans_other))

【3】 (程式設計)輸入兩個正整數,輸出這兩個數之間有多少個數含有數字8。比如輸入170和200,則在170和200之間有12個數含有8,則輸出12。

def check(x):
    if x%10==8:
        return 1
    if x==0:
        return 0
    return check(x//10)

l=int(input('請輸入第一個正整數:'))
r=int(input('請輸入第二個正整數:'))
ans=0
for i in range(l,r+1):
    ans=ans+check(i)
print('{}和{}之間有{}個數含有數字8'.format(l,r,ans))

【4】 (程式設計)編寫程式,輸入正整數a和b,產生a個範圍在[100,999]的隨機整數。輸出這a個隨機數(每行5個,資料之間用一個空格隔開),找出能被b整除的資料個數。注意:不能使用列表、元組、集合、字典等組合資料型別。

import random

a=int(input('請輸入整數a:'))
b=int(input('請輸入整數b:'))
ans=0
for i in range(a):
    x=random.randint(100,999)
    print(x,end=' ')
    if(i%5==4):
        print('')
    if(x%b==0):
        ans=ans+1
print('總共{}個數能被{}整除'.format(ans,b))

【5】 (程式設計)設計一個函式 func(a),它接受一個正整數a,函式返回這個數字每個位上數字的和(函式內不能有input,print語句,不能使用global語句),例如,func(123),返回6,因為1+2+3=6。

def func(x):
    if(x==0):
        return 0
    return x%10+func(x//10)

n=int(input('請輸入一個整數:'))
print('它的各位數字之和為',func(n),sep='')

【6】 (程式設計)設計一個函式func(s),它接受一個字串變數s,返回其中大寫字母的個數。

def func(str):
    ans=0
    for s in str:
        if('A'<=s<='Z'):
            ans=ans+1
    return ans


str=input()
print(func(str))

【7】 (程式設計)定義一個函式,該函式返回引數字串中包含多少個數字、多少個英文字母。

def get(str):
    ans_num=0
    ans_alphabet=0
    for s in str:
        if '0'<=s<='9':
            ans_num=ans_num+1
        if 'a'<=s<='z' or 'A'<=s<='Z':
            ans_alphabet=ans_alphabet+1
    return [ans_num,ans_alphabet]

str=input()
ret=get(str)
print('字串裡有{}個數字,{}個字母'.format(ret[0],ret[1]))

【8】 (程式設計)區間素數和。輸入兩個正整數m,n ( m < n),編寫程式求[m,n]之間的所有素數的和。要求定義函式def IsPrime(m)判斷整數m是否是素數,如果是素數返回True否則返回False。

def IsPrime(m):
    i=2
    while i*i<=m:
        if(m%i==0):
            return 0
        i=i+1
    return 1

m=int(input('請輸入整數m:'))
n=int(input('請輸入整數n:'))
ans=0
for i in range(m,n+1):
    if(IsPrime(i)):
        ans=ans+i
print('範圍在[{},{}]的素數和為{}'.format(m,n,ans))