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...