2021華為云AI實戰營】Python編程知識經典題型解析(上)

      網友投稿 779 2025-04-02

      Python基礎語法、數據結構、正則表達式、多任務和魔法方法的使用

      理論學習視頻:《AI基礎課程--Python編程知識》

      一、逆序除重

      題目描述

      輸入一個int型整數,按照從右向左的閱讀順序,返回一個不含重復數字的新的整數。 保證輸入的整數最后一位不是0。

      輸入描述: 輸入一個int型整數

      輸出描述: 按照從右向左的閱讀順序,返回一個不含重復數字的新的整數

      示例1 輸入: 30010733 輸出: 3701

      字符串是由Unicode碼點組成的不可變序列

      代碼實現

      num = input("隨機輸入一個整數:") list =[] for i in num[::-1]: if i not in list: list.append(i) res='' for i in list: res +=i print("逆序除重后結果:",res)

      原理

      其中利用list把他們切片,list是由三個元素所組成:param1,param2,param3

      param1表示頭索引,可以為空,默認0;

      param2表示尾索引,可以為空,默認為list.size,

      param3表示步長,默認為1,-1表示倒敘原序列輸出

      list[param1:param2:param3]

      代碼中list[::-1]就表示把原數據倒敘輸出

      動手實踐一下吧:https://marketplace.huaweicloud.com/markets/aihub/notebook/detail/?id=f0af65c2-8ec9-48e0-9a60-b98f6fc93d17

      二、簡單的加法

      題目描述

      輸入一個數組和一個數字,在數組中查找兩個數,使得它們的和正好是輸入的那個數字。

      如果有多對數字的和等于輸入的數字,輸出任意一對即可。

      例如:輸入數組1 2 4 7 11 15和數字15。

      由于4+11=15,因此輸出4和11。

      代碼實現

      l = input("請輸入字符串,以空格為間隔:") n = input("輸入數字:") def func(): # 在此編寫代碼 larr=l.split(" ") llen=len(larr) for i in range(llen-1): a=larr for j in range(i+1,llen): b=larr[j] if int(a)+int(b)==int(n): print("所輸入的字符串中符合條件的兩個數為:") print(a,b) func()

      動手實踐一下吧:https://marketplace.huaweicloud.com/markets/aihub/notebook/detail/?id=07029b24-d843-41f5-bec4-0dcc21143986

      三、巧玩字符串

      題目描述

      輸入一個字符串,求最大的沒有重復字符的子字符串長度

      比如:輸入huaweicloudaigallery

      輸出 9 (huaweiclo或aweicloud或weiclouda)

      代碼實現

      string = input("請輸入一組字符串:") # 手動輸入字符串 def func(str): maxlength=[] length=len(str) for i in range(length): tmp=str for j in range(i+1, length): if str[j] not in tmp: tmp += str[j] else: break maxlength.append(tmp) N=len(maxlength) for n in range (N): for m in range(n+1,N): if len(maxlength[n])

      先把所有包含的基本情況拆出來,然后再調試一下統計最大字符串數

      str0=input("請輸入一組字符串:") def func(str_): max_num = 0 str_list = [] for i in str_: if i not in str_list: str_list.append(i) print(str_list) else: str_list = [] str_list.append(i) new_max_num = len(str_list) if new_max_num > max_num: max_num = new_max_num final_str = "".join(str_list) print("最長字串長度:",max_num) return max_num, final_str resulut=func(str0)

      只顯示最大無重復的字符串:

      string = input("請輸入一組字符串:") def func(): done = False final_str = [] len_string = len(string) for i in range(len_string,-1,-1): for j in range(len_string-i+1): sub_string = string[j:i+j] len_sub_string = len(sub_string) len_set_sub_string =len(set(sub_string)) if len_sub_string == len_set_sub_string: maxlength = len_sub_string final_str.append(sub_string) done = True if done: break print("最長字串長度:",maxlength,final_str) func()

      動手實踐一下吧:https://marketplace.huaweicloud.com/markets/aihub/notebook/detail/?id=992e8582-4407-4029-9fe6-26df5b01cf8c

      【2021華為云AI實戰營】Python編程知識經典題型解析(上)

      四、奇妙的三元組

      題目描述

      給你一個包含 n 個整數的數組 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?請你找出所有滿足條件且不重復的三元組。 *

      注意:答案中不可以包含重復的三元組。

      示例:

      給定數組 -1 0 1 2 -1 -4

      滿足要求的三元組集合為:

      -1 0 1

      -1 -1 2

      代碼實現

      def func(nums, a=0): if len(nums) < 3: return [] a = 0 result = [] for i in range(len(nums)): for j in range(i+1, len(nums)): for k in range(j+1, len(nums)): if nums+nums[j]+nums[k] == a: # 判斷是否等于目標值 temp = [nums, nums[j], nums[k]] if sorted(temp) not in result: # 去重 result.append(sorted(temp)) return result if __name__ == '__main__': nums = [-1, 0, 1, 2, -1, -4] result = func(nums, a=0) print(result)

      ok輸出沒問題,改進一下還是喜歡可以用戶自定義輸入的:

      string = input("請輸入一個數組:") def func(): nums = [int(t) for t in string.split()] list1 = [] a = 0 for i in range(len(nums)): for j in range(i+1, len(nums)): for k in range(j+1, len(nums)): if nums + nums[j] + nums[k] == a: #判斷是否等于目標值 temp = [nums, nums[j], nums[k]] temp.sort() if temp not in list1: #去重 list1.append(temp) print("滿足要求的三元組集合為:") for result in list1: print(result) func()

      動手實踐一下吧:https://marketplace.huaweicloud.com/markets/aihub/notebook/detail/?id=247ebb72-fe21-4847-9e11-16f38afe3764

      五、學習成績劃分(判斷1)

      題目描述

      輸入一個0-100之間的整數成績,

      學習成績>=90的同學,用A表示;

      學習成績60-89分的同學,用B表示;

      學習成績<60的同學,用C表示。

      例如:輸入成績98,則會輸出A

      代碼實現

      score = input("請輸入你的成績:") score = float(score) if 100 >= score >= 90: print("恭喜您的成績是:A") elif 90 > score >= 60: print("您的成績是:B") elif score < 60: print("再接再厲您的成績是:C") else: print("請輸入正確的分數")

      動手實踐一下吧:https://marketplace.huaweicloud.com/markets/aihub/notebook/detail/?id=3cf7d42d-f5c8-451b-8aa6-973809bbe3bc

      六、獎金分配(判斷2)

      題目描述

      企業發放的獎金根據利潤提成。 利潤(I)低于或等于10 萬元時,獎金可提10%;

      利潤高于10 萬元,低于20 萬元時,低于10 萬元的部分按10%提成,高于10 萬元的部分,可可提成7.5%;

      20 萬到40 萬之間時,高于20 萬元的部分,可提成5%;

      40 萬到60 萬之間時高于40 萬元的部分,可提成3%;

      60 萬到100 萬之間時,高于60 萬元的部分,可提成1.5%;

      高于100 萬元時,超過100 萬元的部分按1%提成,

      從鍵盤輸入當月利潤I,求應發放獎金總數?

      代碼實現

      money = input("請輸入公司當月所獲利潤總額(萬元):") money = float(money) if 0 <= money <= 10: bonus = money*0.1 elif 10 <= money <= 20: bonus = 10*0.1 + (money-10)*0.075 elif 20 < money <= 40: bonus = 10*0.1 + 10*0.075 + (money - 20)*0.05 elif 40 < money <= 60: bonus = 10*0.1 + 10*0.075 + 20*0.05 + (money - 40)*0.03 elif 60 < money <= 100: bonus = 10*0.1 + 10*0.075 + 20*0.05 + 20*0.03 + (money - 60)*0.015 elif 100 < money: bonus = 10*(0.1 + 0.075) + 20*(0.05 + 0.03) + 40*0.015 + (money-100)*0.01 print("當月應發放獎金總數為:%f萬元" %bonus)

      動手實踐一下吧:https://marketplace.huaweicloud.com/markets/aihub/notebook/detail/?id=4e26bd2a-a5e3-4d17-a34e-548d752d7f99

      七、回文檢查器

      題目描述

      如果給定的一個字符串是回文,那么返回true,否則返回false。

      palindrome(回文),指在忽略標點符號、大小寫和空格的前提下,正著讀和反著讀一模一樣。

      代碼實現

      *我這里用了兩種方法

      1、函數法:

      def func(): s = input('請輸入一個數或者字符串:') if s == s[::-1]: #判斷正序是否等于逆序,并返回True or False print('True') else: print('False') func()

      2、循環法:

      str=input("請輸入一個數或者字符串:") str = str*2 #強制偶數位 i = 0 while i

      動手實踐一下吧:https://marketplace.huaweicloud.com/markets/aihub/notebook/detail/?id=2fe5a68a-fda3-4ba9-9eb8-d6679661c3e7

      八、羅馬數字轉換器

      題目描述

      把傳入的數字轉變為羅馬數字。(0~9)

      轉換后的羅馬數字字母必須都是大寫。

      代碼實現

      這是個簡單的10以內(0~9)轉換:

      num=input("請輸入0-9間任意數字:") b = dict([("1", "Ⅰ"),("2", "Ⅱ"), ("3", "Ⅲ"),("4", "Ⅳ"),("5", "Ⅴ"),("6", "Ⅵ"),("7", "Ⅶ"),("8", "Ⅷ"),("9", "Ⅸ")]) print("轉換后的大寫羅馬數字字母: ", b[num])

      這是多位的轉換:

      num = int(input('請輸入任意數字:')) c = { 'g': ('', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'), 's': ('', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC'), 'b': ('', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM'), 'q': ('', 'M', 'MM', 'MMM') } roman = [] # 用整除和取余獲得個十百千對應的數字 roman.append(c['q'][num // 1000]) roman.append(c['b'][(num // 100) % 10]) roman.append(c['s'][(num // 10) % 10]) roman.append(c['g'][num % 10]) print("轉換后的大寫羅馬數字字母: ") print(''.join(roman))

      動手實踐一下吧:https://marketplace.huaweicloud.com/markets/aihub/notebook/detail/?id=350bebb5-3faf-497a-a5ca-c8ac67b51383

      AI開發平臺ModelArts Python 數據結構

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:在word文檔怎么畫田字格(word文檔里怎么畫田字格)
      下一篇:excel輸入各種復雜公式的教程
      相關文章
      亚洲另类激情专区小说图片| 亚洲国产精品成人午夜在线观看| 国产精品成人亚洲| 亚洲真人无码永久在线观看| 亚洲欧洲日产专区| 亚洲综合无码一区二区三区| 久久久亚洲欧洲日产国码aⅴ| 亚洲精品无码成人AAA片| 国产aⅴ无码专区亚洲av麻豆| 亚洲精品国精品久久99热 | 亚洲a∨无码精品色午夜| 亚洲欧美日韩久久精品| 亚洲精品成a人在线观看☆| 亚洲最大av资源站无码av网址| 99999久久久久久亚洲| 最新亚洲春色Av无码专区| 国产亚洲中文日本不卡二区| 97se亚洲国产综合自在线| 亚洲 欧洲 视频 伦小说| 国产.亚洲.欧洲在线| 国产成人精品亚洲2020| 中文字幕精品三区无码亚洲| 亚洲人成电影网站色www| 亚洲AV无码AV男人的天堂不卡| 99亚洲精品卡2卡三卡4卡2卡| 国产精品亚洲综合| 亚洲国模精品一区 | 亚洲激情校园春色| 91亚洲国产成人久久精品网址| 亚洲免费观看在线视频| 亚洲熟妇少妇任你躁在线观看| 亚洲天然素人无码专区| 国产成人亚洲毛片| 国产成人亚洲精品影院| 国产V亚洲V天堂无码| 久久久久亚洲AV成人片| 亚洲娇小性色xxxx| 亚洲精品V天堂中文字幕| 亚洲成A∨人片天堂网无码| 亚洲欧洲中文日韩av乱码| 亚洲精品无码AV人在线播放|