Python題集:2019春Python程序設計選修課習題筆記

1、判斷題:python

  1-一、在Python 3.x中可使用中文做爲變量名。
git

  答案:√算法

  1-二、Python變量使用前必須先聲明,而且一旦聲明就不能再當前做用域內改變其類型。
編程

  答案:×app

  1-三、Python運算符%不只能夠用來求餘數,還能夠用來格式化字符串。
編輯器

  答案:√函數

  1-四、在Python 3.x中,使用內置函數input()接收用戶輸入時,不論用戶輸入的什麼格式,一概按字符串進行返回。測試

  答案:√ui

  1-五、在Python中,變量不直接存儲值,而是存儲值的引用,也就是值在內存中的地址。加密

  答案:√

  2-一、已知st="Hello World!",使用print(st[0:-1])語句能夠輸出字符串變量st中的全部內容。

  答案:×

  2-二、Python程序設計中的整數類型沒有取值範圍限制,但受限於當前計算機的內存大小。

  答案:√

  2-三、已知: x=1,y=2,z=[2,3,4],則語句 x not in z 計算結果是True。

  答案:√

  2-四、已知 x = 3,那麼執行語句 x+=6 以後,x的內存地址不變。

  答案:×

  3-一、如a是一個列表,且a[:]與a[::-1]相等,則a中元素按順序排列構成一個迴文。

  答案:√

  3-二、表達式 {1, 3, 2} > {1, 2, 3} 的值爲True。

  答案:×

  3-三、已知x爲非空列表,那麼執行語句x[0] = 3以後,列表對象x的內存地址不變。

  答案:√

  3-四、Python內置的集合set中元素順序是按元素的哈希值進行存儲的,並非按前後順序。

  答案:√

  3-五、已知x是一個列表,那麼x = x[3:] + x[:3]能夠實現把列表x中的全部元素循環左移3位。

  答案:√

  4-一、以下代碼能夠實現當輸入6的時候輸出x>5,輸入4的時候輸出 3<x<=5,輸入1的時候輸出x<=3

x = int(input()) if x>5:   print("x>5") elif x>3:   print("3<x<=5") else:   print("x<=3")

  答案:×

  4-二、看成爲條件表達式時,空值、空字符串、空列表、空元組、空字典、空集合、空迭代對象以及任意形式的數字0都等價於False。

  答案:√

  5-一、定義Python函數時,若是函數中沒有return語句,則默認返回空值None。

  答案:√

  5-二、在函數內部沒有任何聲明的狀況下直接爲某個變量賦值,這個變量必定是函數內部的局部變量。

  答案:√

  5-三、在調用函數時,必須牢記函數形參順序才能正確傳值。

  答案:×

  5-四、調用函數時傳遞的實參個數必須與函數形參個數相等才行。

  答案:×

  5-五、g = lambda x: 3不是一個合法的賦值表達式。

  答案:×

  6-一、對文件進行讀寫操做以後必須顯式關閉文件以確保全部內容都獲得保存。

  答案:√

  6-二、以追加模式打開文件時,文件指針指向文件尾。

  答案:√

  6-三、使用Python內置的open函數打開某個文件的時候,若是該文件不存在,則可能產生異常,因此必定要使用try except對其進行處理。

  答案:×

  6-四、二進制文件也可使用記事本或其餘文本編輯器打開,可是通常來講沒法正常查看其中的內容。

  答案:√

  6-五、以讀模式打開文件時,文件指針指向文件開始處。

  答案:√

  6-六、文本文件是能夠迭代的,可使用for line in fp相似的語句遍歷文件對象fp中的每一行。

  答案:√

  6-七、二進制文件不能使用記事本程序打開。

  答案:×

  6-八、文件對象是能夠迭代的。

  答案:√

  6-九、以寫模式打開的文件沒法進讀操做。

  答案:√

  6-十、fi=fopen("t.txt","r+") 執行後只能對"t.txt"文件進行讀操做。

  答案:×

  7-一、Python使用縮進來體現代碼之間的邏輯關係。

  答案:√

  7-二、語句pass僅起到佔位符的做用,並不會作任何操做。

  答案:√

  8-一、Python使用縮進來體現代碼之間的邏輯關係。

  答案:√

  8-二、爲了輸出",可使用以下語句print(""")。

  答案:×

  8-三、使用x=set()和x={} 均可以建立一個空集合。

  答案:×

  8-四、Python支持使用字典的「鍵」做爲下標來訪問字典中的值。

  答案:√

  8-五、建立只包含一個元素的元組時,必須在元素後面加一個逗號,例如(3,)。

  答案:√

  8-六、continue用來跳出最內層for或while循環,退出該循環後程序從循環代碼後繼續執行; break用來結束當前當次循環。

  答案:×

  8-七、若是僅僅是用於控制循環次數,那麼使用for i in range(20)和for i in range(20, 40)的做用是等價的。

  答案:√

  8-八、定義函數時,即便該函數不須要接收任何參數,也必須保留一對空的圓括號來表示這是一個函數。

  答案:√

  8-九、定義Python函數時,若是函數中沒有return語句,則默認返回空值None。

  答案:√

  8-十、調用函數時傳遞的實參個數必須與函數形參個數相等才行。

  答案:×

 


2、選擇題:

  1-一、表達式1+2*3.14>0的結果類型是(D)

  A、int       B、long      C、float      D、bool

  1-二、八進制35的十進制值是(D)

  A、30       B、25         C、19        D、29

  1-三、Python語言正確的標識符是(C)

  A、2you           B、my-name         C、_item        D、abc*234

  1-四、 (D)號表示同一行的後面部分是Python程序的註釋。

  A、*        B、%       C、/        D、#

  1-五、Python 語句 print(0xA + 0xB)的輸出結果是(D)

  A、0xA + 0xB    B、A + B       C、0xA0xB    D、21

  1-六、Python 語句x=’car’; y = 2; print (x+y)的輸出結果是(A)

  A、語法錯      B、2         C、'car2’     'carcar’

   2-一、計算機存儲器的單位是字節(B,Byte),1B等於(C)

  A、一位二進制   B、四位二進制     八位二進制    十六位二進制

  2-二、Python程序在Windows上的擴展名是(A)

  A、py         B、exe          C、docx      D、jpg

  2-三、Python的輸出函數是(B)

  A、input()        B、print()        C、math()      D、turtle()

  2-四、(D)號表示同一行的後面部分是Python程序的註釋。

  A、*          B、%        C、/       D、#

  3-一、 如下選項不是函數做用的是:(A)

  A、提升代碼執行速度B、複用代碼     C、加強代碼可讀性 D、下降編程複雜度

  3-二、Python的輸出函數是(B)。

  A、input()        B、print()      C、math()      D、turtle()

  3-三、Python語言正確的標識符是(C)。

  A、2you      B、my-name    C、_item       D、abc*234

  3-四、字符串是一個字符序列,例如,字符串s,從右側向左第二個字符用什麼索引?(C)

  A、s[0:-2]       B、s[2]        C、s[-2]      D、s[:-2]

  3-五、哪一個選項可以向列表ls中增長五個元素?(C)

  A、ls.append([1,2,3,4,5])B、ls.append(1,2,3,4,5)C、ls += 1,2,3,4,5D、ls.insert(1,2,3,4,5)

  3-六、哪一個選項不能生成一個空字典?(D)

  A、{}         B、dict()       C、dict([])    D、{[]}

  3-七、下列關於形參和實參的說法正確的是?(D)

  A、函數定義中參數列表裏面的參數是實際參數,簡稱實參

  B、參數列表中給出要傳入函數內部的參數,這類參數稱爲形式參數,簡稱形參

  C、程序在調用時,將形參複製給函數的實參

  D、程序在調用時,將實參複製給函數的形參

  3-八、遞歸函數有什麼特色?(B)

  A、函數名稱做爲返回值

  B、函數內部包含對本函數的再次調用

  C、包含一個循環結構

  D、函數比較複雜

  3-九、關於try-except,哪一個選項的描述是錯誤的?(C)

  A、表達了一種分支結構的特色

  B、用於對程序的異常進行捕捉和處理

  C、使用了異常處理,程序將不會再出錯

  D、NameError是一種異常類型

  3-十、下面關於time庫引用不正確的是?(B)

  A、from time import strftime

  B、from * import time

  C、from time import *

  D、import time

 


3、編程題:

   1-一、jmu-python-輸入輸出-計算字符串中的數:

  將字符串中的每一個數都抽取出來,而後統計全部數的個數並求和。

  輸入格式:一行字符串,字符串中的數之間用1個空格或者多個空格分隔。

  輸出格式:

  第1行:輸出數的個數。

  第2行:求和的結果,保留3位小數。

  輸入樣例:

2.1234    2.1     3    4 5 6

  輸出樣例:

6
22.223

  代碼:

s = input() a = s.split() num = len(a) sum = 0 for i in range(num): sum = sum + float(a[i]) print(num) print("{:.3f}".format(sum))

  1-二、輸入列表,求列表元素和(eval輸入應用):

  在一行中輸入列表,輸出列表元素的和。

  輸入格式:

  一行中輸入列表。

  輸出格式:

  在一行中輸出列表元素的和。

  輸入樣例:

[3,8,-5]

  輸出樣例:

6

  代碼:

q = eval(input()) print(sum(q))

  1-三、你好:

  你的程序會讀入一個名字,好比John,而後輸出「Hello John」。

  輸入格式:

  一行文字。

  輸出格式:

  一行文字。

  輸入樣例:

Mary Johnson

  輸出樣例:

Hello Mary Johnson

  代碼:

a=input() print("Hello "+a)

  1-四、Py的A+B:

  程序會讀入兩行,每行都是一個數字,輸出這兩個數字的和。

  輸入格式:

  兩行文字,每行都是一個數字

  輸出格式:

  一行數字

  輸入樣例:

18
21

  輸出樣例:

39

  代碼:

num1 = input() if num1.strip() == "": print("輸入有誤") exit() elif num1[0] != '.': for i in num1: if not('0' <= i <= '9' or i == '.'): print("輸入有誤") exit() num1 = float(num1) else: print("輸入有誤") exit() num2 = input() if num2.strip() == "": print("輸入有誤") exit() elif num2[0] != '.': for i in num2: if not('0' <= i <= '9' or i == '.'): print("輸入有誤") exit() num2 = float(num2) else: print("輸入有誤") exit() su = num1 + num2 su = [str(su), int(su)][int(su) == su] num1 = [str(num1), int(num1)][int(num1) == num1] num2 = [str(num2), int(num2)][int(num2) == num2] print("{}".format(su))

  2-一、產生每位數字相同的n位數:

  讀入2個正整數A和B,1<=A<=9, 1<=B<=10,產生數字AA...A,一共B個A

  輸入格式:

  在一行中輸入A和B。

  輸出格式:

  在一行中輸出整數AA...A,一共B個A

  輸入樣例1:

  在這裏給出一組輸入,例如:

1,5

  輸出樣例1:

  在這裏給出相應的輸出,例如:

11111

  輸入樣例2:

  在這裏給出一組輸入,例如:

3,4

  輸出樣例2:

  在這裏給出相應的輸出,例如:

3333

  代碼:

a,b=eval(input()) print(("%d"%a)*b)

  2-二、轉換函數使用:

  輸入一個整數和進制,轉換成十進制輸出

  輸入格式:

  在一行輸入整數和進制

  輸出格式:

  在一行十進制輸出結果

  輸入樣例:

  在這裏給出一組輸入,例如:

45,8

  輸出樣例:

  在這裏給出相應的輸出,例如:

37

  代碼:

a,b=eval(input()) c=str(a) print(int(c,b))

  2-三、jmu-python-統計字符個數:

  輸入一個字符串,統計其中數字字符及小寫字符的個數

  輸入格式:

  輸入一行字符串

  輸出格式:

  共有?個數字,?個小寫字符?填入對應數量

  輸入樣例:

helo134ss12

  輸出樣例:

共有5個數字,6個小寫字符

  代碼:

a=input() b,c=0,0 for e in a: if e.isdigit(): b+=1
  elif e.isalpha(): c+=1
print("共有%d個數字,%d個小寫字符"%(b,c))

  3-一、圖的字典表示:

  

  圖的字典表示。輸入多行字符串,每行表示一個頂點和該頂點相連的邊及長度,輸出頂點數,邊數,邊的總長度。

  好比上圖0點表示:

  {'O':{'A':2,'B':5,'C':4}}

  輸入格式:

  第一行表示輸入的行數 下面每行輸入表示一個頂點和該頂點相連的邊及長度的字符串

  輸出格式:

  在一行中輸出頂點數,邊數,邊的總長度

  輸入樣例:

  在這裏給出一組輸入,例如:

4 {'a':{'b':10,'c':6}} {'b':{'c':2,'d':7}} {'c':{'d':10}} {'d':{}}

  輸出樣例:

  在這裏給出相應的輸出,例如: 

4 5 35

  代碼:

s=int(input()) a=0 b=0 dict={} for i in range(0,s): t=input() t=eval(t) dict.update(t) for key in dict.keys(): c=len(dict[key]) a=a+c for key2 in dict[key].keys(): d=dict[key][key2] b=b+d print(str(s)+" "+str(a)+" "+str(b))

  3-二、jmu-python-逆序輸出:

  輸入一行字符串,而後對其進行以下處理。

  輸入格式:

  字符串中的元素以空格或者多個空格分隔。

  輸出格式:

  ①逆序輸出字符串中的全部元素。
  ②而後輸出原列表。
  ③而後逆序輸出原列表每一個元素,中間以1個空格分隔。注意:最後一個元素後面不能有空格。

  輸入樣例:

a b  c e   f  gh

  輸出樣例:

ghfecba ['a', 'b', 'c', 'e', 'f', 'gh'] gh f e c b a

  代碼:

s= str(input()) m=s.split() o=""
for i in range(len(m)-1,-1,-1): o=o+m[i] print(o) print(m[:]) d=str(m[-1]) for i in range(len(m)-1): d=d+" "+m[-i-2] print(d)

  3-三、jmu-python-班級人員信息統計:

  輸入a,b班的名單,並進行以下統計。

  輸入格式:

  第1行::a班名單,一串字符串,每一個字符表明一個學生,無空格,可能有重複字符。
  第2行::b班名單,一串字符串,每一個學生名稱以1個或多個空格分隔,可能有重複學生。
  第3行::參加acm競賽的學生,一串字符串,每一個學生名稱以1個或多個空格分隔。
  第4行:參加英語競賽的學生,一串字符串,每一個學生名稱以1個或多個空格分隔。
  第5行:轉學的人(只有1我的)。

  輸出格式:

  特別注意:輸出人員名單的時候需調用sorted函數,如集合爲x,則print(sorted(x))
  輸出兩個班級的全部人員數量
  輸出兩個班級中既沒有參加ACM,也沒有參加English的名單和數量
  輸出全部參加競賽的人員的名單和數量
  輸出既參加了ACM,又參加了英語競賽的全部人員及數量
  輸出參加了ACM,未參加英語競賽的全部人員名單
  輸出參加英語競賽,未參加ACM的全部人員名單
  輸出參加只參加ACM或只參加英語競賽的人員名單
  最後一行:一個同窗要轉學,首先須要判斷該學生在哪一個班級,而後更新該班級名單,並輸出。若是沒有在任何一班級,什麼也不作。

  輸入樣例:

abcdefghijab 1   2 3 4 5 6 7 8 9  10
1 2 3 a b c 1 5 10 a d e f a

  輸出樣例:

Total: 20 Not in race: ['4', '6', '7', '8', '9', 'g', 'h', 'i', 'j'], num: 9 All racers: ['1', '10', '2', '3', '5', 'a', 'b', 'c', 'd', 'e', 'f'], num: 11 ACM + English: ['1', 'a'], num: 2 Only ACM: ['2', '3', 'b', 'c'] Only English: ['10', '5', 'd', 'e', 'f'] ACM Or English: ['10', '2', '3', '5', 'b', 'c', 'd', 'e', 'f'] ['b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

  代碼:

from collections import OrderedDict a= input() b=input().split(" ") c=input().split(" ") d=input().split(" ") e=input() list_1="".join(OrderedDict.fromkeys(a)) st_split = list(b) while "" in st_split: st_split.remove("") list_2 = list(set(st_split)) list_2.sort(key=st_split.index) re=len(list_1)+len(list_2) print("Total: "+str(re)) while "" in c: c.remove("") result3=list(c)+d st_split2 = list(d) list2=list(set(list_2+list(list_1)).difference(set(result3))) l2 = list(set(result3)) l2.sort(key=result3.index) list4=[] list4=list(set(l2) & set(c)) list41=list(set(list4) & set(d)) list5=list(set(l2).difference(set(c))) list6=list(set(l2).difference(set(d))) list7=list(set(list5).union(set(list6))) print('Not in race: {0}, num: {1}'.format(sorted(list2),str(len(list2)))) print('All racers: {0}, num: {1}'.format(sorted(l2),str(len(l2)))) print('ACM + English: {0}, num: {1}'.format(sorted(list41),str(len(list41)))) print('Only ACM: {0}'.format(sorted(list6))) print('Only English: {0}'.format(sorted(list5))) print('ACM Or English: {0}'.format(sorted(list7))) list_4=list(list_1) if e in list_4: list_4.remove(e) print (sorted(list_4)) if e in list_2: list_2.remove(e) print (sorted(list_2))

  4-一、jmu-python-匯率兌換:

  按照1美圓=6人民幣的匯率編寫一個美圓和人民幣的雙向兌換程序

  輸入格式:

  輸入人民幣或美圓的金額,人民幣格式如:R100,美圓格式如:$100

  輸出格式:

  輸出通過匯率計算的美圓或人民幣的金額,格式與輸入同樣,幣種在前,金額在後,結果保留兩位小數

  輸入樣例: 

R60

  輸出樣例1:

$10.00

  輸入樣例2:

$5

  輸出樣例2:

R30.00

  代碼:

mydata = input() if mydata[0] == '$': n = eval(mydata[1:]) print("R{:.2f}".format(n*6)) elif mydata[0] == 'R': m = eval(mydata[1:]) print("${:.2f}".format(m/6)) else: print("輸入有誤")

  4-二、jmu-python-成績轉換:

  本題要求編寫程序將一個百分制成績轉換爲五分製成績。

  轉換規則:

  大於等於90分爲A; 小於90且大於等於80爲B; 小於80且大於等於70爲C; 小於70且大於等於60爲D; 小於60爲E。

  輸入樣例:

98

  輸出樣例:

A

  代碼:

mydata = eval(input()) if mydata >= 90: print("A") elif mydata < 90 and mydata >= 80: print("B") elif mydata < 80 and mydata >= 70: print("C") elif mydata < 70 and mydata >= 60: print("D") else: print("E")

  5-一、列表去重 

  輸入一個列表,去掉列表中重複的數字,按原來次序輸出!

  輸入格式:

  在一行中輸入列表

  輸出格式:

  在一行中輸出不重複列表元素

  輸入樣例:

  在這裏給出一組輸入。

  例如:

[4,7,5,6,8,6,9,5]

  輸出樣例:

  在這裏給出相應的輸出。

  例如:

4 7 5 6 8 9

  代碼:

str=eval(input()) list=list(str) list2=[] t=0 for i in list: if i in list2: pass
    else: if t==0: t=1elif t==1: print(" ",end="") print(i,end="") list2.append(i)

  6-一、 jmu-python-偶數之積

  求1到n中全部偶數的積。

  輸入格式:

  輸入整數n。

  輸出格式:

  1到n中偶數積。

  輸入樣例:

5

  輸出樣例:

8

  代碼:

n = int(input()) s= 1
for i in range(1,n+1): if i%2==0: s = s*i; print(s)

  6-二、jmu-python-凱撒密碼加密算法

  編寫一個凱撒密碼加密程序,接收用戶輸入的文本和密鑰k,對明文中的字母a-z和字母A-Z替換爲其後第k個字母。

  輸入格式:

  接收兩行輸入,第一行爲待加密的明文,第二行爲密鑰k。

  輸出格式:

  輸出加密後的密文。

  輸入樣例:

  在這裏給出一組輸入。

  例如:

Hello World! 3

  輸出樣例:

  在這裏給出相應的輸出。

  例如:

Khoor Zruog!

  代碼:

str=input() n=int(input()) k=[] for i in str: i=ord(i) if(i>=65 and i<=90): if(i+n>90): i=i+n-90+64
        else: i=i+n elif(i>=97 and i<=122): if(i+n>122): i=i+n-122+96
        else: i=i+n i=chr(i) k.append(i) for i in k: print(i,end="")

 


4、函數題:

  1-一、使用函數求特殊a串數列和:

  給定兩個均不超過9的正整數a和n,要求編寫函數fn(a,n) 求a+aa+aaa++⋯+aa⋯aa(n個a)之和,fn須返回的是數列和

  函數接口定義:

fn(a,n) 其中 a 和 n 都是用戶傳入的參數。 a 的值在[1, 9]範圍;n 是[1, 9]區間內的個位數。函數須返回級數和

  裁判測試程序樣例:

/* 請在這裏填寫答案 */ a,b=input().split() s=fn(int(a),int(b)) print(s)

  輸入樣例:

  在這裏給出一組輸入,例如:

2 3

  輸出樣例:

  在這裏給出相應的輸出,例如:

246

  代碼:

def fn(a,n): s=0 p=""
    for i in range(n): p=str(a)*(i+1) s=s+int(p) return s

  1-二、使用函數求餘弦函數的近似值:

  本題要求實現一個函數,用下列公式求cos(x)近似值,精確到最後一項的絕對值小於eps:

  cos (x) = x^0 / 0! - x^2 / 2! + x^4 / 4! - x^6 / 6! + ?

  函數接口定義:funcos(eps,x ),其中用戶傳入的參數爲eps和x;函數funcos應返回用給定公式計算出來,保留小數4位。

  函數接口定義:

在這裏描述函數接口,例如: funcos(eps,x )

  裁判測試程序樣例:

在這裏給出函數被調用進行測試的例子,例如: /* 請在這裏填寫答案 */ eps=float(input()) x=float(input()) funcos(eps,x )

  輸入樣例:

  在這裏給出一組輸入,例如:

0.0001 -3.1

  輸出樣例:

  在這裏給出相應的輸出,例如:

cos(-3.1) = -0.9991

  代碼:

def jiecheng(n): if n == 0: return 1 sum = n * jiecheng(n - 1) return sum def funcos(eps,x): i=0 s=0 while x**i/jiecheng(i)>eps or x**i/jiecheng(i)==eps: i=i+2
    for j in range(0,i,2): if j%4==0: s=s+x**j/jiecheng(j) else: s=s-x**j/jiecheng(j) print('cos({0}) = {1:.4f}'.format(x,s))

   2-一、使用函數輸出指定範圍內Fibonacci數的個數:

  本題要求實現一個計算Fibonacci數的簡單函數,並利用其實現另外一個函數輸出兩正整數m和n(0<m<n≤100000)之間的全部Fibonacci數的數目。 所謂Fibonacci數列就是知足任一項數字是前兩項的和(最開始兩項均定義爲1)的數列,fib(0)=fib(1)=1。

  其中函數fib須返回第n項Fibonacci數;函數PrintFN要在一行中輸出給定範圍[m, n]內的全部Fibonacci數的個數。

  函數接口定義:

在這裏描述函數接口。例如: fib(n) PrintFN(m,n,i)

  裁判測試程序樣例:

在這裏給出函數被調用進行測試的例子。例如: /* 請在這裏填寫答案 */ m,n,i=input().split() n=int(n) m=int(m) i=int(i) PrintFN(m,n,i)

  輸入樣例:

  在這裏給出一組輸入,例如:

20 100 6

  輸出樣例:

  在這裏給出相應的輸出,例如:

fib(6) = 13
4

  代碼:

def fib(n): if n==0 or n==1: return 1
    #遞歸相加
    return (fib(n-1)+fib(n-2)) def PrintFN(m,n,i): j=0 k=0 while fib(j)<m: j=j+1
    while (fib(j)>m or fib(j)==m) and (fib(j)<n or fib(j)==n): k=k+1 j=j+1
    print("fib({0}) = {1}".format(i,fib(i))) print(k)

  2-二、計算素數和:

  本題要求計算輸入兩個正整數x,y(x<=y,包括x,y)素數和。函數isPrime用以判斷一個數是否素數,primeSum函數返回素數和。

  輸入格式:

  輸入兩個整數。

  輸出格式:

  [m-n]間的素數和

  裁判測試程序樣例:

/* 請在這裏填寫答案 */ x,y =map(int, input().split()) print(primeSum(x,y))

  輸入樣例:

2 8

  輸出樣例:

17

  代碼:

def isPrime(n): for i in range(2,n): if n%i==0: return False return True def primeSum(x,y): s=0 for i in range(y-x+1): if isPrime(x+i): s=s+x+i return s

  3-一、jmu-python-楊輝三角   

  根據輸入的n打印n行楊輝三角型。

  函數接口定義:

  printYanghui(n):#打印n行楊輝三角型

  裁判測試程序樣例:

/* 請在這裏填寫答案 */ n = int(input()) printYanghui(n)

  輸入格式:

  輸入n,轉化爲整數

  輸出格式:

  每一個數後面均有一個空格。

  輸入樣例:

5


  輸出樣例:

1 
   1 1 
  1 2 1 
 1 3 3 1 
1 4 6 4 1

  代碼:

def printYanghui(n): #存進二維
    L = [[1], [1, 1]] for i in range(3, n + 1): l = [0 for n in range(i)] L.append(l) for k in range(1, i - 1): L[i - 1][0] = L[i - 1][i - 1] = 1 L[i - 1][k] = L[i - 2][k - 1] + L[i - 2][k] #打印
    t=1
    for m in L: q=n-t for f in range(q): print(" ",end="") for k in m: print(k,end=" ") print() t+=1

5、填空題:

   1-一、s='hello' ,t=" world",s=s+t。則s,s[-1],s[2:8]分別是多少?(填答案時字符串不要加引號)

    hello world          d          llo wo

  1-二、Python 表達式 10 + 5//3 –True+False的值爲:

    10

  1-三、Python 表達式 round(17.0/3**2,2) 的值爲:

    1.89  

  1-四、Python 表達式 0 and 1 or not 2<True 的值爲:

    True

  1-五、Python 語句 print(int("20", 16), int("101",2))的輸出結果是:

    32 5

  2-一、Python中用於表示邏輯與、邏輯或、邏輯非運算的關鍵字分別是:

    and           or           not

  2-二、下列命令執行後的輸出結果是:

f=lambda x,y:y+x f(10,10)

    20

  2-三、下列命令執行後的輸出結果是:

for s in "PYTHON": if s=="T": continue
        print(s,end="")

    PYHON

  2-四、在函數內部能夠經過關鍵字global來定義全局變量。

 

  注:

  一、代碼在運行在python3編譯環境下。

  二、代碼貼上來可能會出現縮進被編輯器自動修改的問題,如出現問題請自行調整代碼縮進,畢竟在python裏對縮進要求極嚴格,可能形成編譯不成功。

相關文章
相關標籤/搜索