python練習題(三)

2021-10-16 05:06:34 字數 4810 閱讀 4887

1、給定奇數,輸出橫豎斜的總和相等。

size =

int(

input

("輸入要列印的size(奇數):"))

array =[[

0]* size]

# 建立乙個長度size * size的二維列表

for i in

range

(size -1)

: array +=[[

0]* size]

row, col =

0, size //

2for i in

range(1

, size * size +1)

: array[row]

[col]

= i if i % size ==0:

row +=

1elif row ==0:

row = size -

1 col +=

1elif col == size -1:

row -=

1 col =

0else

: row -=

1 col +=

1for i in

range

(size)

:for j in

range

(size)

:print

('%02d'

% array[i]

[j], end=

" ")

print

()

2、使用迴圈輸出菱形。

lines =

int(

input

("輸入要列印的行數(奇數):"))

if lines %2==

0:print

('請輸入奇數'

)import sys

sys.exit(0)

half_lines = lines //2+

1# 列印上半

for i in

range

(half_lines)

:print

(" "

*(half_lines - i)

, end="")

print

("*"*(

2* i +1)

)# 列印下半

for i in

range

(half_lines -1)

:print

(" "

*(i +2)

, end="")

print

("*"

*(lines -2-

2* i)

)

5、使用迴圈列印出空心菱形。

lines =

int(

input

("輸入要列印的行數(奇數):"))

if lines %2==

0:print

('請輸入奇數'

)import sys

sys.exit(0)

half_lines = lines //2+

1# 列印上半

for i in

range

(half_lines)

:print

(" "

*(half_lines - i)

, end="")

if i ==0:

print

("*"

)else

:print

("*"

, end="")

print

(" "*(

2* i -1)

, end="")

print

("*"

)# 列印下半

for i in

range

(half_lines -1)

:print

(" "

*(i +2)

, end="")

if i == half_lines -2:

print

("*"

)else

:print

("*"

, end="")

print

(" "

*(lines -4-

2* i)

, end="")

print

("*"

)

6、判斷101-200之間有多少個素數,並輸出所有素數。

start =

101end =

200for i in

range

(101

, end +1)

: is_prime =

true

for j in

range(2

,int

(i **

0.5)+1

):if i % j ==0:

is_prime =

false

if is_prime:

print

(i)

7、輸入一串字元,分別統計出其中英文本母、空格、數字和其他字元的個數。

string =

input

("請輸入一行內容: "

)char_num, digit_num, other_num =0,

0,0for c in string:

if c.isdigit(

): digit_num +=

1elif c.isalpha(

): char_num +=

1else

: other_num +=

1print

('字母個數'

, char_num)

print

('數字個數'

, digit_num)

print

('其他字母個數'

, other_num)

8、列印近似圓,只要給定不同的半徑,圓的大小就會隨之發生改變。

radius =

int(

input

("請輸入半徑: "))

for i in

range(2

* radius +1)

: half =

round

((radius **2-

(radius - i)**2

)**0.5)

print

(" "

*(radius - half)

, end="")

print

("*"

, end="")

print

(" "

* half *

2, end="")

print

("*"

)

9、定義乙個函式,該函式可以接收乙個list作為引數,該函式使用直接選擇排序對list排序。

def

choose_sort

(list):

list_len =

len(

list

)# 拿第乙個和後面的比,總把小的換到第乙個,以此類推

for i in

range(0

, list_len)

:for j in

range

(i +

1, list_len):if

list

[i]>

list

[j]:

list

[i],

list

[j]=

list

[j],

list

[i]list1 =[3

,6,1

,8,5

,-20,

100,50,

200]

choose_sort(list1)

print

(list1)

10、定義乙個函式,該函式可以接收乙個list作為引數,該函式使用氣泡排序對list排序。

def

maopao

(a_list)

: a_len =

len(a_list)

for i in

range

(a_len)

: is_sorted =

true

# 每次都把最大的那個沉下去

for j in

range(0

, a_len-i-1)

:if a_list[j]

> a_list[j+1]

: a_list[j]

, a_list[j+1]

= a_list[j+1]

, a_list[j]

is_sorted =

false

if is_sorted:

return

#如果某次迴圈沒有發生交換,就提前結束

a_list =[3

,6,1

,8,5

,-20,

100,50,

200,-32

,123

]maopao(a_list)

print

(a_list)

Python練習題(三)

題目 猴子吃桃問題 猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了乙個 第二天早上又將剩下的桃子吃掉一半,又多吃了乙個。以後每天早上都吃了前一天剩下 的一半零乙個。到第10天早上想再吃時,見只剩下乙個桃子了。求第一天共摘了多少。1.程式分析 採取逆向思維的方法,從後往前推斷。2.程式源 x...

python書中練習題 python練習題

1 定義乙個空列表,接收從鍵盤輸入的整數,把列表傳給乙個從大到小排序的函式,再輸出排序後的列表的值 listex b 0 a int input 請輸入列表長度 while b a num int input 請輸入字元 b 1 print listex sum 0 for i in range 0...

python的練習題 Python練習題

1 使用while迴圈輸入1 2 3 4 5 6 8 9 10 i 0while i 10 i i 1 if i 7 continue print i 結果 e python python python test.py1 2 求1 100的所有數的和 i 0sum 0 while i 100 i 1...