關於python的30個小實驗(一)
阿新 • • 發佈:2018-12-23
題目:輸入一個正整數,輸出各個位數之和
num=input('請輸入一個自然數')
print(sum(map(int,num)))
map函式根據提供的函式對指定的序列做對映,定義:map(function, sequence[,sequence,...])--->list;對sequence中的item依次執行function(item),見執行結果組成一個List返回
執行結果:
題目:輸入一個自然數,輸出它的二進位制,八進位制,十六進位制
#python提供了非常簡單的進位制轉換功能,bin(),oct(),hex() num = int(input('請輸入一個自然數:')) print('二進位制:', bin(num)) print('八進位制:', oct(num)) print('十六進位制:', hex(num))
執行結果:
題目:模擬蒙特.卡羅計算方法計算圓周率的近似值
#蒙特卡羅的方法計算圓周率
from random import random
times=int(input("請輸入擲飛鏢的次數:"))
hits=0
for i in range(times):
x=random()
y=random()
if x*x+y*y<=1:
hits+=1
print('擊中次數',hits)
print('圓周率近似值',4.0*hits/times)
執行結果:
題目:輸入一個大於2的自然數,輸出小於該數的所有素陣列成的列表
Max_Num=int(input('請輸入一個大於2的自然數: ')) lst=list(range(2,Max_Num)) #輸入的數的最大平方根 m=int(Max_Num**0.5) #enumerate是python的內建函式,意思是列舉、列舉,用於遍歷序列中的元素以及它們的索引。 #filter函式對指定的序列進行過濾操作。定義:filter(function or None, sequence) -> list, tuple, or string #對sequence中的item依次執行function(item),將執行結果為True的item組成一個List/String/Tuple(取決於sequence的型別)返回 for index,value in enumerate(lst): #如果當前數字已大於最大整數的平方根,結束 if value>m: break #對該位置之後的元素進行過濾 lst[index+1:]=filter(lambda x:x%value!=0,lst[index+1:]) print(lst) #指定enumerate的索引從1開始 for index,value in enumerate(lst,1): #如果當前數字已大於最大整數的平方根,結束 if value>m: break #對該位置之後的元素進行過濾 lst[index:]=filter(lambda x:x%value!=0,lst[index:]) print(lst) #lambda:這是Python支援一種有趣的語法,它允許你快速定義單行的最小函式,類似與C語言中的巨集,這些叫做lambda的函式,是從LISP借用來的,可以用在任何需要函式的地方
執行結果: