Python作業---內置數據類型

實驗2 內置數據類型
實驗性質:驗證性

一、實驗目的
1.掌握內置函數、列表、切片、元組的基本操作;
2.掌握字典、集合和列表表達式的基本操作。
二、實驗預備知識
1.掌握Python內置函數的基/本操作。
2.閱讀並掌握python中列表、元組、字典和集合的基本操作。
三、實驗內容
1.編寫程序,輸入任意大的自然數,輸出各位數字之和。

def get_sum(n):
	n=abs(n) # 對於負數取一下絕對值成爲正數
    sum = 0
    while n > 0:
        sum = sum + int(n % 10)
        n = int(n / 10)
    return sum

測試

if __name__ == '__main__':            
print(get_sum(367))

在這裏插入圖片描述
2.編寫程序,輸入兩個集合 setA 和 setB,分別輸出它們的交集、並集和差集 setA-setB。

def oper_set(setA, setB):
    	union = setA | setB  # 並集
    	inter = setA & setB  # 交集
    	# 差集
    	diff = setA - setB
  
    	return union, inter, diff

測試

在這裏插入圖片描述

運行結果:
在這裏插入圖片描述
3.編寫程序,輸入一個自然數,輸出它的二進制、八進制、十六進制表示形式。

def format_num(num):
    print('二進制:{}'.format(bin(num)))
    print('八進制:{}'.format(oct(num)))
    print('十六進制:{}'.format(hex(num)))
if __name__ == '__main__':
   format_num(18)
 

在這裏插入圖片描述
4.編寫程序,用戶輸入一個三位以上的整數,輸出其百位以上的數字。例如用戶輸入1234,則程序輸出12。(提示:使用整除運算。)

def get_hundreds(num):
    return int(num/100)

測試:

if __name__ == '__main__':
    print(get_hundreds(34567)) # 345

5.編寫程序,輸入一個大於 2 的自然數,然後輸出小於該數字的所有素數組成的集合。

def func_get_prime(n):
    num = [] # 用來存儲結果的集合
    for i in range(2, n):
        for j in range(2, i):
            if (i % j == 0): # 如果不是素數就跳過,接着判斷下一個數
                break
        else:
            num.append(i);
    return num

運行結果:
在這裏插入圖片描述在這裏插入圖片描述

6.首先生成包含1000個隨機字符的字符串,然後統計每個字符的出現次數。(使用字典)

import string
import random
def random_str():
    # 先取出大小寫字母
    strs = string.ascii_letters
    # 隨機生成1000個字符
    ch = [random.choice(strs) for i in range(1000)]
    # 先創建一個列表保存不重複的字符,用來當作字典的key
    new_list = []
    for i in ch:
        if i not in new_list:
            new_list.append(i)
    res = {}

    for i in new_list:
        res[i] = ch.count(i)
    print(res)

運行結果:

{‘C’: 21, ‘o’: 26, ‘T’: 23, ‘u’: 20, ‘W’: 22, ‘y’: 27, ‘p’: 18, ‘F’: 12, ‘s’: 16, ‘n’: 18, ‘f’: 17, ‘M’: 19, ‘H’: 21, ‘N’: 22, ‘l’: 32, ‘L’: 20, ‘B’: 23, ‘O’: 13, ‘h’: 16, ‘K’: 18, ‘k’: 22, ‘Z’: 20, ‘V’: 20, ‘X’: 20, ‘z’: 17, ‘E’: 23, ‘D’: 14, ‘j’: 21, ‘i’: 19, ‘g’: 17, ‘e’: 18, ‘a’: 24, ‘b’: 19, ‘c’: 17, ‘R’: 21, ‘x’: 26, ‘P’: 17, ‘Q’: 18, ‘J’: 17, ‘A’: 14, ‘Y’: 17, ‘G’: 19, ‘I’: 12, ‘U’: 19, ‘m’: 16, ‘t’: 16, ‘S’: 22, ‘r’: 25, ‘d’: 18, ‘q’: 22, ‘w’: 13, ‘v’: 13}

7.阿凡提與國王比賽下棋,國王說要是自己輸了的話阿凡提想要什麼他都可以拿得出來。阿凡提說那就要點米吧,棋盤一共64個小格子,在第一個格子裏放1粒米,第二個格子裏放2粒米,第三個格子裏放4粒米,第四個格子裏放8粒米,以此類推,後面每個格子裏的米都是前一個格子裏的2倍,一直把64個格子都放滿。需要多少粒米呢?

def archimedes(n):
    sum = 0
    for i in range(1, n + 1):
        sum += 2 ** i
return sum

輸出結果: 36893488147419103230

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章