Python題目集

頭髮茂盛有光澤發表於2020-12-05

7-2 產生每位數字相同的n位數 (10分)
讀入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

程式碼:

l=input()
a=l.strip().split(",")
print(str(int(a[0]))*int(a[1]))

7-5 jmu-python-統計字元個數 (10分)
輸入一個字串,統計其中數字字元及小寫字元的個數

輸入格式:
輸入一行字串

輸出格式:
共有?個數字,?個小寫字元,?填入對應數量

輸入樣例:
helo134ss12

輸出樣例:
共有5個數字,6個小寫字元
程式碼:

l=input()
x,y=0,0
for i in l:
    if(i.isdecimal()):
        x+=1
    elif(i.islower()):
        y+=1
print("共有{}個數字,{}個小寫字元".format(x,y))

7-1 jmu-python-判斷閏年 (10分)
輸入一個年份,判斷其是否為閏年。

判斷閏年的標準:能被4整除但不能被100整除,或者能被400整除的年份是閏年。

輸入格式:
直接輸入一個4位數年份,沒有其它任何附加字元。

輸出格式:
輸出year是閏年 或者year不是閏年

程式碼:

l=eval(input())
if((l%4==0 and l%100!=0) or l%400==0):
    print("{}是閏年".format(l))
else:
    print("{}不是閏年".format(l))

7-6 字串中的大寫字母改成小寫字母 (10分)
把一個字串中的大寫字母改成小寫字母,其他字元不變。

輸入格式:
在 一行中輸入長度小於20的字串。在字串中不要出現換行符,空格,製表符。

輸出格式:
直接輸出變化後的字串。

程式碼:

l=str(input())
print(l.lower())

7-10 jmu-python-字串-統計不同字元個數 (10分)
對一行字串統計不同字元個數,分別統計並輸出中英文字元、空格、數字和其他字元個數。

輸入格式:
一行字串

輸出格式:
依次輸出中英文字元、空格、數字、和其他字元個數。

注意:中文數字字元,如七,算作中英文字元,而不算數字字元。

s=input()
w,x,y,z=0,0,0,0
for i in s:
    if(i.isalpha() or ('\u4E00'<=i<='\u9FFF')):
        w+=1
    elif(i.isspace()):
        x+=1
    elif(i.isdigit()):
        y+=1
    else:
        z+=1
print(w,x,y,z,sep=" ")

7-12 jmu-python-逆序輸出 (10分)
輸入一行字串,然後對其進行如下處理。

輸入格式:
字串中的元素以空格或者多個空格分隔。

輸出格式:
逆序輸出字串中的所有元素。
然後輸出原列表。
然後逆序輸出原列表每個元素,中間以1個空格分隔。注意:最後一個元素後面不能有空格。

l=input().split()
s=l.copy()
l.reverse()
ans1=""
ans2=l[0]
for i in range(len(l)):
    ans1+=l[i]
    if(i>0):
        ans2+=" "+l[i]
print(ans1,s,ans2,sep="\n")

7-13 列表去重 (10分)
輸入一個列表,去掉列表中重複的數字,按原來次序輸出!

輸入格式:
在一行中輸入列表

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

a=eval(input())
b=[]
for i in a:
    if i not in b:
        b.append(i)

s=""
for i in range(len(b)):
    if(i>0):
        s+=" "+str(b[i])
    else:
        s+=str(b[i])
print(s)

7-15 jmu-python-素數 (10分)
輸入一個數,判斷其是否素數。素數是大於1的自然數中,除了1和它本身以外不再有其他因數。

輸入格式:
輸入一個整數

輸出格式:
輸出是否素數。

f=0
n=eval(input())
if(n==1):
    print("{} is not prime".format(n))
else:
    for i in range(2,n):
        if(n%i==0):
            print("{} is not prime".format(n))
            f=1
            break
    if(f==0):
        print("{} is prime".format(n))

7-24 jmu-python-求三角形面積及周長 (10分)
輸入的三角形的三條邊a、b、c,計算並輸出面積和周長。假設輸入三角形三邊是合法整形資料。 三角形面積計算公式: 111.png ,其中s=(a+b+c)/2。

import math #匯入math庫
math.sqrt(x) #呼叫sqrt函式實現開平方運算,x表示要求值的資料
輸入格式:
每行輸入一個資料,表示三角形一條邊。

輸出格式:
area=面積;perimeter=周長,面積和周長保留2位小數

import math
a=eval(input())
b=eval(input())
c=eval(input())
s=(a+b+c)/2
area=math.sqrt(s*(s-a)*(s-b)*(s-c))
print("area={:.2f};perimeter={:.2f}".format(area,s*2))

7-25 jmu-python-找字元 (10分)
輸入一個字串及字元,輸出第一次出現該字元的位置。

輸入格式:
行1:輸入字串
行2:輸入一個字元
輸出格式:
找到,輸出對應位置,格式index=X的, X表示查詢到位置
找不到,輸出can’t find letter X, X表示查詢字元

s=input()
x=input()
a=s.find(x)
if(a==-1):
    print("can't find letter {}".format(x))
else:
    print("index={}".format(a+1))

7-21 jmu-python-隨機生成密碼 (20分)
新建一個字元列表,這個列表中的內容從前到後依次包含小寫字母、大寫字母、數字。 形如[‘a’,…,‘z’,‘A’,…,‘Z’,‘0’,…‘9’]
建議:使用程式碼生成該字元列表。

分別輸入隨機數的種子x(整型),隨機生成的密碼個數n,每個密碼長度m。
每個密碼包含的m個字元是從上述字元列表中隨機抽取 。
注意:本題不要用sample函式,否則答案錯誤。

輸入格式:
種子x (注意:需將x轉換為整數型再進行設定)
密碼個數n
每個密碼的長度m

輸出格式:
n行密碼、每行m位。

import random
import string
s=list(string.ascii_letters+string.digits)
a=int(input())
n=int(input())
m=int(input())
random.seed(a)
for i in range(n):
    for j in range(m):
        print(random.choice(s),end="")
    print()

7-23 小於m的最大的10個素數 (20分)
給定一個整數m(200<m<20000),找出小於m的最大的10個素數。

輸入格式:
直接輸入一個正整數m(200<m<20000)。沒有其它任何附加字元。

輸出格式:
在一行中輸出10個滿足條件的素數,每個素數輸出佔6列。沒有其它任何附加格式和字元。

a=eval(input())
f=0
count=0
for i in range(a-1,1,-1):
    f=0
    for j in range(2,i):
        if(i%j==0):
            f=1
            break
    if(f==0 and count!=10):
        count+=1
        print("%6d"%i,end="")

7-7 jmu-python-九九乘法表(矩形) (20分)
本題目要求輸出如下圖所示的九九乘法表

注:乘積要求做格式控制,佔4個位置的寬度

for i in range(1,10):
    for j in range(1,10):
        print("{}*{}={:<4}".format(i,j,i*j),end="")
    print()

7-11 jmu-python-重複元素判定 (20分)
每一個列表中只要有一個元素出現兩次,那麼該列表即被判定為包含重複元素。
編寫函式判定列表中是否包含重複元素,如果包含返回True,否則返回False。
然後使用該函式對n行字串進行處理。最後統計包含重複元素的行數與不包含重複元素的行數。

輸入格式:
輸入n,代表接下來要輸入n行字串。
然後輸入n行字串,字串之間的元素以空格相分隔。

輸出格式:
True=包含重複元素的行數, False=不包含重複元素的行數
,後面有空格。

a=eval(input())
tr,fr=0,0
for i in range(a):
    l=input().split()
    s=set(l)
    if(len(s)<len(l)):
        tr+=1
    else:
        fr+=1
print("True={}, False={}".format(tr,fr))