<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【PTA|Python】浙大版《Python 程序設(shè)計(jì)》題目集:第五章

          共 8223字,需瀏覽 17分鐘

           ·

          2021-07-30 15:34

          第五章

          5-1 輸出星期名縮寫(xiě) (70 分)

          題目

          輸入一個(gè)1到7的數(shù)字,輸出對(duì)應(yīng)的星期名的縮寫(xiě)。

          ?

          1 Mon

          2 Tue

          3 Wed

          4 Thu

          5 Fri

          6 Sat

          7 Sun

          輸入格式:

          ?

          輸入1到7之間數(shù)字

          輸出格式:

          ?

          輸出對(duì)應(yīng)的星期名的縮寫(xiě)

          輸入樣例: 在這里給出一組輸入。例如:

          ?

          1

          輸出樣例: 在這里給出相應(yīng)的輸出。例如:

          ?

          Mon

          解答

          days = {1:'Mon',2:'Tue',3:'Wed',4:'Thu',5:'Fri',6:'Sat',7:'Sun'}
          index = int(input())
          print(days[index])
          image.png

          5-2 圖的字典表示 (20 分)

          題目

          image.png

          圖的字典表示。輸入多行字符串,每行表示一個(gè)頂點(diǎn)和該頂點(diǎn)相連的邊及長(zhǎng)度,輸出頂點(diǎn)數(shù),邊數(shù),邊的總長(zhǎng)度。比如上圖0點(diǎn)表示:{'O':{'A':2,'B':5,'C':4}}。

          用eval函數(shù)處理輸入,eval函數(shù)具體用法見(jiàn)第六章內(nèi)置函數(shù)。

          輸入格式:

          ?

          第一行表示輸入的行數(shù) 下面每行輸入表示一個(gè)頂點(diǎn)和該頂點(diǎn)相連的邊及長(zhǎng)度的字符串

          輸出格式:

          ?

          在一行中輸出頂點(diǎn)數(shù),邊數(shù),邊的總長(zhǎng)度

          輸入樣例: 在這里給出一組輸入。例如:

          ?

          4

          {'a':{'b':10,'c':6}}

          {'b':{'c':2,'d':7}}

          {'c':{'d':10}} {'d':{}}

          輸出樣例: 在這里給出相應(yīng)的輸出。例如:

          ?

          4 5 35

          解答

          n=int(input())
          sum=0
          length=0
          for i in range(n):
              dic=eval(input())
              for j in dic:
                  temp=dic[j]
                  for k in temp:
                      sum+=1
                      length+=temp[k]
          print("{} {} {}".format(n,sum,length))
          image.png

          5-3 四則運(yùn)算(用字典實(shí)現(xiàn)) (30 分)

          題目

          四則運(yùn)算(用字典實(shí)現(xiàn)),比較c語(yǔ)言的switch語(yǔ)句。

          輸入格式:

          ?

          在一行中輸入一個(gè)數(shù)字 在一行中輸入一個(gè)四則運(yùn)算符(+,-,*,/) 在一行中輸入一個(gè)數(shù)字

          輸出格式:

          ?

          在一行中輸出運(yùn)算結(jié)果(小數(shù)保留2位)

          輸入樣例1: 在這里給出一組輸入。例如:

          ?

          7 / 3

          輸出樣例1: 在這里給出相應(yīng)的輸出。例如:

          ?

          2.33

          輸入樣例2: 在這里給出一組輸入。例如:

          ?

          10 / 0

          輸出樣例2: 在這里給出相應(yīng)的輸出。例如:

          ?

          divided by zero

          解答

          參考:

          https://blog.csdn.net/chen_zan_yu_/article/details/103406089

          res = {'+''x+y''-''x-y''*''x*y',
                 '/'"x/y if y!=0  else 'divided by zero'"}
          # 除法部分分三元式表示
          x = int(input())
          operation = input()
          y = int(input())
          # print(res[operation]) 除零返回字符串,其余返回?cái)?shù)字類(lèi)型
          r = eval(res[operation])
          if type(r) != str:
              print(format(r, '.2f'))
          else:
              print(r)
          image.png

          5-4 分析活動(dòng)投票情況 (20 分)

          題目

          利用集合分析活動(dòng)投票情況。第一小隊(duì)有五名隊(duì)員,序號(hào)是1,2,3,4,5;第二小隊(duì)也有五名隊(duì)員,序號(hào)6,7,8,9,10。輸入一個(gè)得票字符串,求第二小隊(duì)沒(méi)有得票的隊(duì)員

          輸入格式:

          ?

          在一行中輸入得票的隊(duì)員的序列號(hào),用逗號(hào)隔開(kāi)。

          輸出格式:

          ?

          一行中輸出第二小隊(duì)沒(méi)有得票的隊(duì)員序號(hào)。

          輸入樣例: 在這里給出一組輸入。例如:

          ?

          1,5,9,3,9,1,1,7,5,7,7,3,3,1,5,7,4,4,5,4,9,5,10,9

          輸出樣例: 在這里給出相應(yīng)的輸出。例如:

          ?

          6 8

          解答

          提交代碼 - 1

          tickets=list(set(map(int,input().split(','))))
          a=[]
          for i in range(6,11):
              if i not in tickets:
                  a.append(i)
          print(' '.join('%s' %id for id in a))
          image.png

          提交代碼 - 2

          tickets=list(set(map(str,input().split(','))))
          a=[]
          for i in range(6,11):
              if str(i) not in tickets:
                  a.append(str(i))
          ans=' '.join(a)
          print(ans)
          image.png

          5-5 統(tǒng)計(jì)字符出現(xiàn)次數(shù) (20 分)

          題目

          本題要求編寫(xiě)程序,統(tǒng)計(jì)并輸出某給定字符在給定字符串中出現(xiàn)的次數(shù)。

          輸入格式:

          ?

          輸入第一行給出一個(gè)以回車(chē)結(jié)束的字符串(少于80個(gè)字符);第二行輸入一個(gè)字符。

          輸出格式:

          ?

          在一行中輸出給定字符在給定字符串中出現(xiàn)的次數(shù)。

          輸入樣例:

          ?

          programming is More fun! m

          輸出樣例:

          ?

          2

          解答

          str1=input()
          a=input()
          count=0
          for i in str1:
              if i==a:
                  count+=1
          print(count)
          image.png

          5-6 統(tǒng)計(jì)工齡 (20 分)

          題目

          給定公司N名員工的工齡,要求按工齡增序輸出每個(gè)工齡段有多少員工。

          輸入格式:

          ?

          輸入首先給出正整數(shù)N(≤105),即員工總?cè)藬?shù);隨后給出N個(gè)整數(shù),即每個(gè)員工的工齡,范圍在[0, 50]。

          輸出格式:

          ?

          按工齡的遞增順序輸出每個(gè)工齡的員工個(gè)數(shù),格式為:“工齡:人數(shù)”。每項(xiàng)占一行。如果人數(shù)為0則不輸出該項(xiàng)。

          輸入樣例:

          ?

          8 10 2 0 5 7 2 5 2

          輸出樣例:

          ?

          0:1 2:3 5:2 7:1 10:1

          解答

          n=int(input())
          ages=list(map(int,input().split()))
          dic={}
          for i in ages:
              dic[i]=dic.get(i,0)+1
          for i in sorted(dic):
              print("{}:{}".format(i,dic[i]))
          image.png

          5-7 列表去重 (40 分)

          題目

          輸入一個(gè)列表,去掉列表中重復(fù)的數(shù)字,按原來(lái)次序輸出!

          輸入格式:

          ?

          在一行中輸入列表

          輸出格式:

          ?

          在一行中輸出不重復(fù)列表元素

          輸入樣例: 在這里給出一組輸入。例如:

          ?

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

          輸出樣例: 在這里給出相應(yīng)的輸出。例如:

          ?

          4 7 5 6 8 9

          解答

          lst1=eval(input())
          lst2=list(set(lst1))
          print(' '.join(map(str,sorted(lst2,key=lst1.index))))
          image.png

          5-8 能被3,5和7整除的數(shù)的個(gè)數(shù)(用集合實(shí)現(xiàn)) (30 分)

          題目

          求指定區(qū)間內(nèi)能被3,5和7整除的數(shù)的個(gè)數(shù)

          輸入格式:

          ?

          在一行中從鍵盤(pán)輸入2個(gè)正整數(shù)a,b(1<=a<b<=10000000),用空格隔開(kāi)。

          輸出格式:

          ?

          在一行輸出大于等于a且小于等于b的能被3,5和7整除的數(shù)的個(gè)數(shù)。

          輸入樣例1: 在這里給出一組輸入。例如:

          ?

          10  100

          輸出樣例1: 在這里給出相應(yīng)的輸出。例如:

          ?

          0

          輸入樣例2: 在這里給出一組輸入。例如:

          ?

          1000  100000

          輸出樣例: 在這里給出相應(yīng)的輸出。例如:

          ?

          943

          解答

          m,n=map(int,input().split())
          set_1=set()
          set_2=set()
          set_3=set()
          for i in range(m,n+1):
              if i%3==0:
                  set_1.add(i)
              if i%5==0:
                  set_2.add(i)
              if i%7==0:
                  set_3.add(i)
          print(len(set_1 & set_2 & set_3))
          image.png

          5-9 求矩陣鞍點(diǎn)的個(gè)數(shù) (30 分)

          題目

          一個(gè)矩陣元素的“鞍點(diǎn)”是指該位置上的元素值在該行上最大、在該列上最小。

          本題要求編寫(xiě)程序,求一個(gè)給定的n階方陣的鞍點(diǎn)。

          輸入格式:

          ?

          輸入第一行給出一個(gè)正整數(shù)n(1≤n≤6)。隨后n行,每行給出n個(gè)整數(shù),其間以空格分隔。

          輸出格式:

          ?

          鞍點(diǎn)的個(gè)數(shù)

          輸入樣例1:

          ?

          4

          1 7 4 1

          4 8 3 6

          1 6 1 2

          0 7 8 9

          輸出樣例1:

          ?

          1

          輸入樣例2:

          ?

          2 1 7 4 1

          輸出樣例2:

          ?

          0

          輸入樣例3:

          ?

          3 4    7    8 1    3    3 2    3    1

          輸出樣例3:

          ?

          2

          解答

          n=int(input())
          a=[]
          count=0
          for i in range(n):
              a.append(list(map(int,input().split())))
          for i in range(n):
              max_num_row=max(a[i][k] for k in range(n))
              for j in range(n):
                  max_num_col=min(a[k][j] for k in range(n))
                  if max_num_row == max_num_col:
                      count+=1
          print(count)
          image.png
          n = int(input())
          # 原矩陣
          lis = [list(map(int, input().split()))for i in range(n)]
          # 轉(zhuǎn)置矩陣 
          lis_1 = [[lis[j][i] for j in range(n)]for i in range(n)]
          print(lis_1)
          # 依次遍歷lis max(lis[i]):原矩陣行最大值 min(lis_1[j]):原矩陣列最大值
          print(len([0 for i in range(n)
                     for j in range(n) if lis[i][j] == max(lis[i]) == min(lis_1[j])]))
          image.png

          5-10 兩數(shù)之和 (30 分)

          題目

          給定一組整數(shù),還有一個(gè)目標(biāo)數(shù),在給定這組整數(shù)中找到兩個(gè)數(shù)字,使其和為目標(biāo)數(shù),如找到,解是唯一的。找不到則顯示 "no answer"。輸出的下標(biāo)按從小到大排序。用一重循環(huán)加字典實(shí)現(xiàn)。

          輸入格式:

          ?

          在一行中給出這組數(shù)。在下一行輸入目標(biāo)數(shù)

          輸出格式:

          ?

          在一行中輸出這兩個(gè)數(shù)的下標(biāo),用一個(gè)空格分開(kāi)。

          輸入樣例1: 在這里給出一組輸入。例如:

          ?

          2,7,11,15 9

          輸出樣例1: 在這里給出相應(yīng)的輸出。例如:

          ?

          0 1

          輸入樣例2: 在這里給出一組輸入。例如:

          ?

          3,6,9 10

          輸出樣例2: 在這里給出相應(yīng)的輸出。例如:

          ?

          no answer

          解答

          lst=list(map(int,input().split(',')))
          target=int(input())
          m=dict()
          for i,num in enumerate(lst):
              if target-num in m:
                  print("{} {}".format(m[target-num],i))
                  exit()
              m[num]=i
          print("no answer")
          image.png

          5-11 字典合并 (40 分)

          題目

          輸入用字符串表示兩個(gè)字典,輸出合并后的字典。字典的鍵用一個(gè)字母或數(shù)字表示。注意:1和‘1’是不同的關(guān)鍵字!

          輸入格式:

          ?

          在第一行中輸入第一個(gè)字典字符串;

          在第二行中輸入第二個(gè)字典字符串。

          輸出格式:

          ?

          在一行中輸出合并的字典,輸出按字典序。

          "1" 的 ASCII 碼為 49,大于 1,排序時(shí) 1 在前,"1" 在后。其它的字符同理。

          輸入樣例1: 在這里給出一組輸入。例如:

          ?

          {1:3,2:5}

          {1:5,3:7}

          輸出樣例1: 在這里給出相應(yīng)的輸出。例如:

          ?

          {1:8,2:5,3:7}

          輸入樣例2: 在這里給出一組輸入。例如:

          ?

          {"1":3,1:4} {"a":5,"1":6}

          輸出樣例2: 在這里給出相應(yīng)的輸出。例如:

          ?

          {1:4,"1":9,"a":5}

          解答

          注意:

          字典的鍵用一個(gè)字母或數(shù)字表示!


          這道題簡(jiǎn)單的合并兩個(gè)字典比較簡(jiǎn)單,難點(diǎn)在輸出時(shí)需要對(duì)字典的鍵值進(jìn)行一個(gè)排序

          題目中給出鍵只能是一個(gè)字母或者一個(gè)數(shù)字(??這里其實(shí)有歧義 一個(gè)數(shù)字是指一位的數(shù)字還是任意數(shù)字)

          這里假設(shè)的是為一個(gè)一位的數(shù)字,認(rèn)為int型數(shù)字比字符排在前面

          dict1=dict(eval(input()))
          dict2=dict(eval(input()))
          for i in dict2:
              if i in dict1:
                  dict1[i]+=dict2[i]
              else:
                  dict1[i]=dict2[i]
          intKeys=[]
          strKeys=[]
          for i in dict1.keys():
              if type(i)==int:
                  intKeys.append(i)
              else:
                  strKeys.append(i)
          intKeys.sort()
          strKeys.sort()
          ans=[]
          for i in intKeys+strKeys:
              temp=""
              if type(i)==int:
                  temp=str(i)+":"+str(dict1[i])
              else:
                  temp='"'+i+'"'+":"+str(dict1[i])
              ans.append(temp)
          s1=','.join(ans)
          s1='{'+s1+'}'
          print(s1)
          image.png

          瀏覽 731
          點(diǎn)贊
          評(píng)論
          1收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          1收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美日韩中文字幕第一页 | 国产抠逼| 免费黄色一极片 | AV毛片大片 | 国语对白自拍 |