python程式設計題 python程式設計練習題

2021-10-10 03:55:52 字數 4335 閱讀 9674

p5:判斷閏年

輸入乙個年份,判斷其是否為閏年。

非世紀年(不能被100整除的年份)能被4整除的為閏年。(如2023年就是閏年,2023年不是閏年);

世紀年(能被100整除的年份)能被400整除的是閏年。(如2023年是閏年,2023年不是閏年)。

year = int(input("輸入乙個年份: "))

if (year % 4) == 0:

if (year % 100) == 0:

if (year % 400) == 0:

print(" 是閏年".format(year)) # 整百年能被400整除的是閏年

else:

print(" 不是閏年".format(year))

else:

print(" 是閏年".format(year)) # 非整百年能被4整除的為閏年

else:

print(" 不是閏年".format(year))

p6:輸出九九乘方表

按照矩陣格式輸出九九乘方表,如下圖所示:

九九乘方表.png

參考示例[python3]:

for i in range(1, 10):

print ()

for j in range(1, i+1):

print ("%d*%d=%d" % (i, j, i*j),end=" ") #python3中end預設值為" "

p7:計算π的值

1.利用下列公式計算π的近似值,直到最後一項的絕對值小於10^-5為止

公式n=0.0

p=1while p<=100000:

if p%4==1:

n=n+1/p

else:

n=n-1/p

p=p+2

else:

print (n*4)

2.用蒙特卡羅法計算π的值。

蒙特卡羅法:基於「隨機數」的演算法,通過計算落在單位圓內的點與落在正方形內的 點的比值求pi。

蒙特卡羅法

from random import random

from math import sqrt

max = 2000000

count = 0

for i in range (1,max):

x, y = random(),random()

dist = sqrt(x**2+y**2)

if dist <= 1:

count = count + 1

pi = 4*(count/max)

print("π的值為%f"%pi)

p8:輸出素數

輸出指定範圍內的所有素數

from math import sqrt

lower = int(input("輸入區間最小值: "))

upper = int(input("輸入區間最大值: "))

num=;

for i in range(lower,upper+1):

if i>1:

j=2for j in range(2,int(sqrt(i+1))):

if(i%j==0):

break

else:

print(num)

p9: ascⅱ碼,字元,進製轉換

ascⅱ碼與字元互相轉換,進製數之間互相轉換

# 使用者輸入字元

c = input("請輸入乙個字元: ")

# 使用者輸入ascii碼,並將輸入的數字轉為整型

a = int(input("請輸入乙個ascii碼: "))

# 獲取使用者輸入十進位制數

dec = int(input("輸入數字:"))

print()

print( c + " 的ascii 碼為", ord(c))

print( a , " 對應的字元為", chr(a))

print()

print("十進位制數為:", dec)

print("轉換為二進位制為:", bin(dec))

print("轉換為八進位制為:", oct(dec))

print("轉換為十六進製制為:", hex(dec))

二進位制數'100'轉十進位制:int('100', 2)

八進位制數'9'轉十進位制數:int('09', 8)

十六進製制'17'轉十進位制:int('0x17', 16)

注意必須加引號

p10:字串操作

字串a為"hello",字串b為"#2#lisaend"。判斷字串b中是否含有「#2#」,如果有,則將字串a與字串b中「#2#」與「end」之間的字串用空格連線起來,然後輸出。輸出「biubiubiu」

a = "hello"

b = "#2#lisaend"

if( "#2#" in b) :

i=b.find('end')

print(a+' '+b[3:i])

print("biu"*3)

p11:簡易計算器

製作乙個簡易計算器,可以計算兩個數之間的加減乘除

print("**簡易計算器**")

str=input("請輸入算式:")

operator=""

while operator=="":

if "+"in str:

operator = "+"

elif "-"in str:

operator = "-"

elif "*"in str:

operator = "*"

elif "/"in str:

operator = "/"

else:

str=input("輸入錯誤,請重新輸入:")

x = float(str[:str.find(operator)])

y = float(str[str.find(operator)+1:])

result = {

"+" : x + y,

"-" : x - y,

"*" : x * y,

"/" : x / y

print ("結果為:",result.get(operator))

p12:氣泡排序

氣泡排序(bubble sort)是一種簡單的排序演算法。它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。

示意圖:

氣泡排序.gif

def bubble_sort(list):

n = len(list)

for i in range(n - 1):

for j in range(0, n - 1 - i):

if list[j] > list[j + 1]:

list[j], list[j + 1] = list[j + 1], list[j]

p13:選擇排序

選擇排序(selection sort )是一種簡單直觀的排序演算法。它的工作原理如下:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後再從剩餘未排序元素中繼續尋找最小(大)元素。放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

示意圖:

選擇排序.gif

def selection_sort(list):

n = len(list)

for i in range(0, n -1):

min_index = i

for j in range(i + 1, n):

if list[min_index] > list[j]:

min_index = j

if i != min_index:

list[min_index], list[i] = list[i], list[min_index]

p14:插入排序

插入排序(insertion sort)是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,在從後向前的掃瞄過程中,需要把已排序元素逐步向後挪位,為最新元素提供插入空間。

示意圖:

插入排序.gif

def insertion_sort(list):

n = len(list)

for i in range(1, n):

for j in range(i, 0, -1):

if list[j] < list[j - 1]:

list[j], list[j - 1] = list[j - 1], list[j]

else:

break

python程式設計題 python程式設計題庫

上期題目連線 1000道python題庫系列分享十一 9道 上期題目答案 本期題目 機器之心報道機器之心編輯部想要備戰 python 面試,這兩個專案有千道 python 問題與實現。之前機器之心介紹了 phd 大牛的求職之路,很多讀者感覺這位大牛太厲害了,他的經歷對我們幫助不大。對於一般的機器學習...

python常見程式設計題

class student school luffycity count 0 def init self,name,age,self.name name self.age age self.self.count 1 def learn self print s is learning self.na...

Python基礎程式設計題

1 接收輸入的一行字元,統計出字串中包含數字的個數 str input 請輸入一串字元 count 0for i in str if i.isdigit count count 1print 數字個數 d count 2 請輸入星期幾的第一 個字母,用來判斷是星期幾,如果第乙個字母一樣,則繼續判斷第...