国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python簡單小程序代碼,python簡單的小程序

這篇具有很好參考價值的文章主要介紹了python簡單小程序代碼,python簡單的小程序。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

大家好,給大家分享一下python簡單小程序代碼,很多人還不知道這一點。下面詳細(xì)解釋一下?,F(xiàn)在讓我們來看看!

python簡單小程序代碼,python簡單的小程序,java,apache,開發(fā)語言,人工智能

Source code download: 本文相關(guān)源碼

大家好,本文將圍繞python編寫一個小程序展開說明,python入門小程序編寫是一個很多人都想弄明白的事情,想搞清楚如何用python寫小程序需要先了解以下幾個事情。

python簡單小程序代碼,python簡單的小程序,java,apache,開發(fā)語言,人工智能

1、字符串分隔
描述

?輸入一個字符串,請按長度為8拆分每個輸入字符串并進(jìn)行輸出;

?長度不是8整數(shù)倍的字符串請在后面補數(shù)字0,空字符串不處理用python畫雪人的代碼。

輸入描述:

連續(xù)輸入字符串(每個字符串長度小于等于100)

輸出描述:

依次輸出所有分割后的長度為8的新字符串

示例1

輸入:abc

輸出:abc00000

st = str(input())
while len(st) % 8 != 0:  #判斷字符串長度是否為8的整數(shù)倍
    st = st + '0'        #整體補0直至長度為8的整數(shù)倍
if len(st) == 8:       
    print(st)
else:
    for i in range(0, len(st), 8): #每8個輸出一次
        print(st[i:i+8])

2、提取不重復(fù)的整數(shù)
描述

輸入一個 int 型整數(shù),按照從右向左的閱讀順序,返回一個不含重復(fù)數(shù)字的新的整數(shù)偽原創(chuàng)小發(fā)貓怎么樣。

保證輸入的整數(shù)最后一位不是 0 。

輸入描述:

輸入一個int型整數(shù)

輸出描述:

按照從右向左的閱讀順序,返回一個不含重復(fù)數(shù)字的新的整數(shù)

示例1

輸入:9876673

輸出:37689

from re import L

num = int(input())

lst = list(map(int, str(num)))  #將輸入的整數(shù)轉(zhuǎn)為int類型的列表
l = []
s = str()
if lst[-1] == 0:
    print("輸入錯誤")
else:
    for i in range(0, len(lst)):
        if lst[len(lst)-i-1] not in l:   #把列表中值從右向左的順序提取到空列表中,并剔除重復(fù)項
            l.append(lst[len(lst)-i-1])

strlist = [str(x) for x in l]  #把列表變?yōu)閟tr類型的列表
s = int(''.join(strlist))       #把列表轉(zhuǎn)為int
print(s)
    
    
3、求最小公倍數(shù)
描述

正整數(shù)A和正整數(shù)B?的最小公倍數(shù)是指?能被A和B整除的最小的正整數(shù)值,設(shè)計一個算法,求輸入A和B的最小公倍數(shù)。

輸入描述:

輸入兩個正整數(shù)A和B。

輸出描述:

輸出A和B的最小公倍數(shù)

示例1

輸入:5 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?輸入:2? 4? ??

輸出:35? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 輸出:4

# a,b = map(int, input().split())
# m = min(a, b)
# lst = []
# for i in range(m, a*b+1):
#     if i%a == 0 and i%b == 0:
#         lst.append(i)
# lst2 = sorted(lst)
# print(lst2[0])

a,b = map(int, input().split())
for i in range(1,a+1):
    if (b * i) % a == 0:
        print(b * i)
        break
4、簡單錯誤記錄
描述

開發(fā)一個簡單錯誤記錄功能小模塊,能夠記錄出錯的代碼所在的文件名稱和行號。

處理:

1、?記錄最多8條錯誤記錄,循環(huán)記錄,最后只用輸出最后出現(xiàn)的八條錯誤記錄。對相同的錯誤記錄只記錄一條,但是錯誤計數(shù)增加。最后一個斜杠后面的帶后綴名的部分(保留最后16位)和行號完全匹配的記錄才做算是相同的錯誤記錄。

2、?超過16個字符的文件名稱,只記錄文件的最后有效16個字符;

3、?輸入的文件可能帶路徑,記錄文件名稱不能帶路徑。也就是說,哪怕不同路徑下的文件,如果它們的名字的后16個字符相同,也被視為相同的錯誤記錄

4、循環(huán)記錄時,只以第一次出現(xiàn)的順序為準(zhǔn),后面重復(fù)的不會更新它的出現(xiàn)時間,仍以第一次為準(zhǔn)

數(shù)據(jù)范圍:錯誤記錄數(shù)量滿足?1≤n≤100??,每條記錄長度滿足?1≤len≤100?

輸入描述:

D:\zwtymj\xccb\ljj\cqzlyaszjvlsjmkwoqijggmybr 645
E:\je\rzuwnjvnuz 633
C:\km\tgjwpb\gy\atl 637
F:\weioj\hadd\connsh\rwyfvzsopsuiqjnr 647
E:\ns\mfwj\wqkoki\eez 648
D:\cfmwafhhgeyawnool 649
E:\czt\opwip\osnll\c 637
G:\nt\f 633
F:\fop\ywzqaop 631
F:\yay\jc\ywzqaop 631
D:\zwtymj\xccb\ljj\cqzlyaszjvlsjmkwoqijggmybr 645

輸出描述:

rzuwnjvnuz 633 1
atl 637 1
rwyfvzsopsuiqjnr 647 1
eez 648 1
fmwafhhgeyawnool 649 1
c 637 1
f 633 1
ywzqaop 631 2

說明:

由于D:\cfmwafhhgeyawnool 649的文件名長度超過了16個字符,達(dá)到了17,所以第一個字符'c'應(yīng)該被忽略。
記錄F:\fop\ywzqaop 631和F:\yay\jc\ywzqaop 631由于文件名和行號相同,因此被視為同一個錯誤記錄,哪怕它們的路徑是不同的。
由于循環(huán)記錄時,只以第一次出現(xiàn)的順序為準(zhǔn),后面重復(fù)的不會更新它的出現(xiàn)時間,仍以第一次為準(zhǔn),所以D:\zwtymj\xccb\ljj\cqzlyaszjvlsjmkwoqijggmybr 645不會被記錄。 
dic = dict()
while True:
    try:
        s = input().split("\\")[-1].split()
        log = s[0][-16:] + " " + s[1]
        dic[log] = dic.get(log, 0) + 1
    except:
        break

for key, val in list(dic.items())[-8:]:
    print(key, val)
5、字符串轉(zhuǎn)化
import sys

a = str(input()).split()

# 第一步:將輸入的兩個字符串str1和str2進(jìn)行前后合并
str1=a[0]
str2=a[1]
str3=str1+str2
# print(str3)

# 第二步:對合并后的字符串進(jìn)行排序,要求為:下標(biāo)為奇數(shù)的字符和下標(biāo)為偶數(shù)的字符分別從小到大排序。
even_chars = sorted(str3[::2])
odd_chars = sorted(str3[1::2])
str4 = ''.join(e+o for e,o in zip(even_chars,odd_chars))
# 處理字符串長度為奇數(shù)時,多出的字符
if len(str3)%2 != 0:
    str4 += even_chars[-1]
# print(str4)

#第三步:對排序后的字符串中的'0'~'9'、'A'~'F'和'a'~'f'字符,需要進(jìn)行轉(zhuǎn)換操作。轉(zhuǎn)換規(guī)則如下:
#對以上需要進(jìn)行轉(zhuǎn)換的字符所代表的十六進(jìn)制用二進(jìn)制表示并倒序,
#然后再轉(zhuǎn)換成對應(yīng)的十六進(jìn)制大寫字符(注:字符 a~f 的十六進(jìn)制對應(yīng)十進(jìn)制的10~15,大寫同理)。

str5 = ''
for i in str4:
    # 篩選字符串中的'0'~'9'、'A'~'F'和'a'~'f'字符
    if (i >= '0' and i <= '9') or (i>='A' and i<='F') or (i>='a' and i<='f'):
        #使用int()函數(shù)將十六進(jìn)制字符串轉(zhuǎn)換為整數(shù),然后使用bin()函數(shù)將整數(shù)轉(zhuǎn)換為二進(jìn)制字符串。但是,請注意,bin()函數(shù)返回的二進(jìn)制字符串前兩個字符是0b,因此我們使用切片[2:]來刪除這兩個字符,只返回純二進(jìn)制字符串;zfill(4)填充為4位;[::-1]倒序。
        int2 = bin(int(i, 16))[2:].zfill(4)[::-1]
        int16 = hex(int(int2,2))[2:].upper()
        str5 += ''.join(int16)
    else:
        str5 += ''.join(i)
print(str5)
6、查找兩個字符串a(chǎn),b中的最長公共子串

查找兩個字符串a(chǎn),b中的最長公共子串。若有多個,輸出在較短串中最先出現(xiàn)的那個。

注:子串的定義:將一個字符串刪去前綴和后綴(也可以不刪)形成的字符串。請和“子序列”的概念分開!

數(shù)據(jù)范圍:字符串長度 1≤length≤300?

進(jìn)階:時間復(fù)雜度: O(n3)?,空間復(fù)雜度: O(n)?

輸入描述:

輸入兩個字符串

輸出描述:

返回重復(fù)出現(xiàn)的字符

示例1

輸入:abcdefghijklmnop

? ? ? ? ? ?abcsafjklmnopqrstuvw

輸出:jklmnop

a = input().strip()
b = input().strip()
if len(a) > len(b):
    temp = a
    a = b
    b = temp

max_sub = ''
for i in range(len(a)):
    for j in range(len(a), i, -1):   #每循環(huán)一次a[i:j] i增大1,j減小1
        if (a[i:j] in b) and (len(max_sub) < len(a[i:j])):
            max_sub = a[i:j]

print(max_sub)
7、獎牌榜的排名

題目描述:獎牌榜的排名算法要求如下,首先是按照金牌總數(shù)排序的,如果是同等金牌的情況下,再根據(jù)銀牌的總數(shù)進(jìn)行排序,同樣在金牌跟銀牌數(shù)量相等的情況下,在根據(jù)銅牌的數(shù)量進(jìn)行排名。在遇到金牌了、銀牌可跟銅牌數(shù)量一樣的情況下,根據(jù)國家的名稱首字母序排序。

輸入描述:
第一行輸入要排序的國家的個數(shù)n,之后n行分別輸入國家的名字、金牌總數(shù)、銀牌總數(shù)和銅牌總數(shù)以一個空格隔開。
輸出描述:
按照降序方式輸出國家的名字.

示例:

輸入:

4
China 32 28 34
England 12 34 22
France 23 33 2
Jrance 23 33 2

輸出:文章來源地址http://www.zghlxwxcb.cn/news/detail-841471.html

China
Jrance
France
England

import operator

n = int(input())
lst = []
for i in range(n):
    lst.append(list(input().split()))

print(lst)          #輸入的每一行作為一個[]一共n個組成lst

lst2 = sorted(lst, key=operator.itemgetter(1, 2, 3, 0), reverse=True)  按照每個域中第2、3、4、1個元素進(jìn)行排序,rever=True為從大到小順序

#lst2 = sorted(lst, key=lambda x: (x[1], x[2], x[3], x[0]), reverse=True) 同上

for i in range(n):
    print(lst2[i][0])

#以下是輸出結(jié)果

python簡單小程序代碼,python簡單的小程序,java,apache,開發(fā)語言,人工智能

8、簡單密碼轉(zhuǎn)換

描述:

現(xiàn)在有一種密碼變換算法。

九鍵手機鍵盤上的數(shù)字與字母的對應(yīng):?1--1,?abc--2,?def--3,?ghi--4,?jkl--5,?mno--6,?pqrs--7,?tuv--8?wxyz--9,?0--0,把密碼中出現(xiàn)的小寫字母都變成九鍵鍵盤對應(yīng)的數(shù)字,如:a 變成 2,x 變成 9.

而密碼中出現(xiàn)的大寫字母則變成小寫之后往后移一位,如:X ,先變成小寫,再往后移一位,變成了 y ,例外:Z 往后移是 a 。

數(shù)字和其它的符號都不做變換。

數(shù)據(jù)范圍: 輸入的字符串長度滿足? 1≤n≤100?

lst = list(str(input()))
lst1 = []
dict1 = {
    "1": '1',
    "abc": '2',
    "def": '3',
    "ghi": '4',
    "jkl": '5',
    "mno": '6',
    "pqrs": '7',
    "tuv": '8',
    "wxyz": '9',
    "0": '0',
}
for i in lst:
    if i == 'Z':
        lst1.append('a')

    elif i.isdigit():
        lst1.append(i)

    elif i.isupper():
        lst1.append(chr(ord(i.lower()) + 1))  #把大寫字母小寫后往后移動一位

    elif i.islower:
        for j in dict1.keys():  #遍歷字典的所有key,i在key里取value
            if i in j:
                lst1.append(dict1[j])
lst1 = ''.join(lst1)     #把list[str]轉(zhuǎn)化為string
print(lst1)
9、合并區(qū)間

以數(shù)組 intervals 表示若干個區(qū)間的集合,其中單個區(qū)間為 intervals[i] = [starti, endi] 。請你合并所有重疊的區(qū)間,并返回?一個不重疊的區(qū)間數(shù)組,該數(shù)組需恰好覆蓋輸入中的所有區(qū)間?。

示例 1:

輸入:intervals = [[1,3],[2,6],[8,10],[15,18]]
輸出:[[1,6],[8,10],[15,18]]
解釋:區(qū)間 [1,3] 和 [2,6] 重疊, 將它們合并為 [1,6]

class Solution:
    def merge(self, intervals: List[List[int]]) -> List[List[int]]:
        res = []
        interval_lst = sorted(intervals, key = lambda x: x[0])

        n = len(interval_lst)
        for i in range(n):
            if i == 0:
                res.append(interval_lst[0])
            else:
                interval = interval_lst[i]
                if res[-1][1] >= interval[0]:
                   res[-1][1] = res[-1][1] if res[-1][1] >= interval[1] else interval[1]
                else:
                    res.append(interval)
        
        return res
10、保證文件名唯一

給你一個長度為 n 的字符串?dāng)?shù)組 names 。你將會在文件系統(tǒng)中創(chuàng)建 n 個文件夾:在第 i 分鐘,新建名為 names[i] 的文件夾。

由于兩個文件 不能 共享相同的文件名,因此如果新建文件夾使用的文件名已經(jīng)被占用,系統(tǒng)會以 (k) 的形式為新文件夾的文件名添加后綴,其中 k 是能保證文件名唯一的最小正整數(shù) 。

返回長度為 n 的字符串?dāng)?shù)組,其中 ans[i] 是創(chuàng)建第 i 個文件夾時系統(tǒng)分配給該文件夾的實際名稱。

輸入:names = ["onepiece","onepiece(1)","onepiece(2)","onepiece(3)","onepiece"]
輸出:["onepiece","onepiece(1)","onepiece(2)","onepiece(3)","onepiece(4)"]
解釋:當(dāng)創(chuàng)建最后一個文件夾時,最小的正有效 k 為 4 ,文件名變?yōu)?"onepiece(4)"

class Solution:
    def getFolderNames(self, names: List[str]) -> List[str]:
        ans = []
        memo = set()
        for name in names:
            if name not in ans:   #先把不重復(fù)的都提到空列表和空集合里
                ans.append(name)
                memo.add(name)
            else:
                k = 1
                while True:     #如果有重復(fù),后面加(k),加完再比較在不在集合里面,在的話k+1
                    tmp = f"{name}({k})"
                    if tmp not in memo:
                        ans.append(tmp)
                        memo.add(tmp)
                        break
                    k += 1    
        return ans
11、最短回文串

給定一個字符串 s,你可以通過在字符串前面添加字符將其轉(zhuǎn)換為回文串。找到并返回可以用這種方式轉(zhuǎn)換的最短回文串。

示例 1:

輸入:s = "aacecaaa"
輸出:"aaacecaaa"


示例 2:

輸入:s = "abcd"
輸出:"dcbabcd"

class Solution:
    def shortestPalindrome(self, s: str) -> str:
        if not s:
            return s
        n = len(s)
        s_r = s[::-1]
        ps = ""
        for sft in range(n):
            left = s_r[sft:]
            right = s[:n-sft]
            if left == right:
                return ps + s 
            ps += s_r[sft]
12、蛇形矩陣
描述

蛇形矩陣是由1開始的自然數(shù)依次排列成的一個矩陣上三角形。

例如,當(dāng)輸入5時,應(yīng)該輸出的三角形為:

1?3?6?10?15

2?5?9?14

4?8?13

7?12

11

輸入描述:

輸入正整數(shù)N(N不大于100)

輸出描述:

輸出一個N行的蛇形矩陣。

輸入:4

輸出:

1 3 6 10
2 5 9
4 8
7
# num = int(input())
# for i in range(num):
#     k = 0
#     for j in range(num):
#         if k <= num - i - 2:
#             k += 1
#             print((i + j + 2) * (i + j + 1) // 2 - i, end=" ")
#         else:
#             print((i + j + 2) * (i + j + 1) // 2 - i, end="\n")
#             break



n = int(input())
list1 = []
# 思路
# 1、輸入一個n
# 2、列表解析輸出第一行,用到求和公式因為是差遞增數(shù)列 (首項+末項)*I//2
for j in range(n):
    if j == 0:
        for i in range(1, n + 1):
            list1.append((1 + i) * i // 2)
        print(" ".join(map(str, list1)))
    else:
        list1 = [i - 1 for i in list1[1:]]  # 這里非常巧妙 第二行到最后一行是上一行去除第一個元素的結(jié)果,就是用一個截取就好
        print(" ".join(map(str, list1)))

大家好,本文將圍繞python編寫一個小程序展開說明,python入門小程序編寫是一個很多人都想弄明白的事情,想搞清楚如何用python寫小程序需要先了解以下幾個事情。

python簡單小程序代碼,python簡單的小程序,java,apache,開發(fā)語言,人工智能

1、字符串分隔
描述

?輸入一個字符串,請按長度為8拆分每個輸入字符串并進(jìn)行輸出;

?長度不是8整數(shù)倍的字符串請在后面補數(shù)字0,空字符串不處理用python畫雪人的代碼。

輸入描述:

連續(xù)輸入字符串(每個字符串長度小于等于100)

輸出描述:

依次輸出所有分割后的長度為8的新字符串

示例1

輸入:abc

輸出:abc00000

st = str(input())
while len(st) % 8 != 0:  #判斷字符串長度是否為8的整數(shù)倍
    st = st + '0'        #整體補0直至長度為8的整數(shù)倍
if len(st) == 8:       
    print(st)
else:
    for i in range(0, len(st), 8): #每8個輸出一次
        print(st[i:i+8])

2、提取不重復(fù)的整數(shù)
描述

輸入一個 int 型整數(shù),按照從右向左的閱讀順序,返回一個不含重復(fù)數(shù)字的新的整數(shù)偽原創(chuàng)小發(fā)貓怎么樣。

保證輸入的整數(shù)最后一位不是 0 。

輸入描述:

輸入一個int型整數(shù)

輸出描述:

按照從右向左的閱讀順序,返回一個不含重復(fù)數(shù)字的新的整數(shù)

示例1

輸入:9876673

輸出:37689

from re import L

num = int(input())

lst = list(map(int, str(num)))  #將輸入的整數(shù)轉(zhuǎn)為int類型的列表
l = []
s = str()
if lst[-1] == 0:
    print("輸入錯誤")
else:
    for i in range(0, len(lst)):
        if lst[len(lst)-i-1] not in l:   #把列表中值從右向左的順序提取到空列表中,并剔除重復(fù)項
            l.append(lst[len(lst)-i-1])

strlist = [str(x) for x in l]  #把列表變?yōu)閟tr類型的列表
s = int(''.join(strlist))       #把列表轉(zhuǎn)為int
print(s)
    
    
3、求最小公倍數(shù)
描述

正整數(shù)A和正整數(shù)B?的最小公倍數(shù)是指?能被A和B整除的最小的正整數(shù)值,設(shè)計一個算法,求輸入A和B的最小公倍數(shù)。

輸入描述:

輸入兩個正整數(shù)A和B。

輸出描述:

輸出A和B的最小公倍數(shù)

示例1

輸入:5 7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?輸入:2? 4? ??

輸出:35? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 輸出:4

# a,b = map(int, input().split())
# m = min(a, b)
# lst = []
# for i in range(m, a*b+1):
#     if i%a == 0 and i%b == 0:
#         lst.append(i)
# lst2 = sorted(lst)
# print(lst2[0])

a,b = map(int, input().split())
for i in range(1,a+1):
    if (b * i) % a == 0:
        print(b * i)
        break
4、簡單錯誤記錄
描述

開發(fā)一個簡單錯誤記錄功能小模塊,能夠記錄出錯的代碼所在的文件名稱和行號。

處理:

1、?記錄最多8條錯誤記錄,循環(huán)記錄,最后只用輸出最后出現(xiàn)的八條錯誤記錄。對相同的錯誤記錄只記錄一條,但是錯誤計數(shù)增加。最后一個斜杠后面的帶后綴名的部分(保留最后16位)和行號完全匹配的記錄才做算是相同的錯誤記錄。

2、?超過16個字符的文件名稱,只記錄文件的最后有效16個字符;

3、?輸入的文件可能帶路徑,記錄文件名稱不能帶路徑。也就是說,哪怕不同路徑下的文件,如果它們的名字的后16個字符相同,也被視為相同的錯誤記錄

4、循環(huán)記錄時,只以第一次出現(xiàn)的順序為準(zhǔn),后面重復(fù)的不會更新它的出現(xiàn)時間,仍以第一次為準(zhǔn)

數(shù)據(jù)范圍:錯誤記錄數(shù)量滿足?1≤n≤100??,每條記錄長度滿足?1≤len≤100?

輸入描述:

D:\zwtymj\xccb\ljj\cqzlyaszjvlsjmkwoqijggmybr 645
E:\je\rzuwnjvnuz 633
C:\km\tgjwpb\gy\atl 637
F:\weioj\hadd\connsh\rwyfvzsopsuiqjnr 647
E:\ns\mfwj\wqkoki\eez 648
D:\cfmwafhhgeyawnool 649
E:\czt\opwip\osnll\c 637
G:\nt\f 633
F:\fop\ywzqaop 631
F:\yay\jc\ywzqaop 631
D:\zwtymj\xccb\ljj\cqzlyaszjvlsjmkwoqijggmybr 645

輸出描述:

rzuwnjvnuz 633 1
atl 637 1
rwyfvzsopsuiqjnr 647 1
eez 648 1
fmwafhhgeyawnool 649 1
c 637 1
f 633 1
ywzqaop 631 2

說明:

由于D:\cfmwafhhgeyawnool 649的文件名長度超過了16個字符,達(dá)到了17,所以第一個字符'c'應(yīng)該被忽略。
記錄F:\fop\ywzqaop 631和F:\yay\jc\ywzqaop 631由于文件名和行號相同,因此被視為同一個錯誤記錄,哪怕它們的路徑是不同的。
由于循環(huán)記錄時,只以第一次出現(xiàn)的順序為準(zhǔn),后面重復(fù)的不會更新它的出現(xiàn)時間,仍以第一次為準(zhǔn),所以D:\zwtymj\xccb\ljj\cqzlyaszjvlsjmkwoqijggmybr 645不會被記錄。 
dic = dict()
while True:
    try:
        s = input().split("\\")[-1].split()
        log = s[0][-16:] + " " + s[1]
        dic[log] = dic.get(log, 0) + 1
    except:
        break

for key, val in list(dic.items())[-8:]:
    print(key, val)
5、字符串轉(zhuǎn)化
import sys

a = str(input()).split()

# 第一步:將輸入的兩個字符串str1和str2進(jìn)行前后合并
str1=a[0]
str2=a[1]
str3=str1+str2
# print(str3)

# 第二步:對合并后的字符串進(jìn)行排序,要求為:下標(biāo)為奇數(shù)的字符和下標(biāo)為偶數(shù)的字符分別從小到大排序。
even_chars = sorted(str3[::2])
odd_chars = sorted(str3[1::2])
str4 = ''.join(e+o for e,o in zip(even_chars,odd_chars))
# 處理字符串長度為奇數(shù)時,多出的字符
if len(str3)%2 != 0:
    str4 += even_chars[-1]
# print(str4)

#第三步:對排序后的字符串中的'0'~'9'、'A'~'F'和'a'~'f'字符,需要進(jìn)行轉(zhuǎn)換操作。轉(zhuǎn)換規(guī)則如下:
#對以上需要進(jìn)行轉(zhuǎn)換的字符所代表的十六進(jìn)制用二進(jìn)制表示并倒序,
#然后再轉(zhuǎn)換成對應(yīng)的十六進(jìn)制大寫字符(注:字符 a~f 的十六進(jìn)制對應(yīng)十進(jìn)制的10~15,大寫同理)。

str5 = ''
for i in str4:
    # 篩選字符串中的'0'~'9'、'A'~'F'和'a'~'f'字符
    if (i >= '0' and i <= '9') or (i>='A' and i<='F') or (i>='a' and i<='f'):
        #使用int()函數(shù)將十六進(jìn)制字符串轉(zhuǎn)換為整數(shù),然后使用bin()函數(shù)將整數(shù)轉(zhuǎn)換為二進(jìn)制字符串。但是,請注意,bin()函數(shù)返回的二進(jìn)制字符串前兩個字符是0b,因此我們使用切片[2:]來刪除這兩個字符,只返回純二進(jìn)制字符串;zfill(4)填充為4位;[::-1]倒序。
        int2 = bin(int(i, 16))[2:].zfill(4)[::-1]
        int16 = hex(int(int2,2))[2:].upper()
        str5 += ''.join(int16)
    else:
        str5 += ''.join(i)
print(str5)
6、查找兩個字符串a(chǎn),b中的最長公共子串

查找兩個字符串a(chǎn),b中的最長公共子串。若有多個,輸出在較短串中最先出現(xiàn)的那個。

注:子串的定義:將一個字符串刪去前綴和后綴(也可以不刪)形成的字符串。請和“子序列”的概念分開!

數(shù)據(jù)范圍:字符串長度 1≤length≤300?

進(jìn)階:時間復(fù)雜度: O(n3)?,空間復(fù)雜度: O(n)?

輸入描述:

輸入兩個字符串

輸出描述:

返回重復(fù)出現(xiàn)的字符

示例1

輸入:abcdefghijklmnop

? ? ? ? ? ?abcsafjklmnopqrstuvw

輸出:jklmnop

a = input().strip()
b = input().strip()
if len(a) > len(b):
    temp = a
    a = b
    b = temp

max_sub = ''
for i in range(len(a)):
    for j in range(len(a), i, -1):   #每循環(huán)一次a[i:j] i增大1,j減小1
        if (a[i:j] in b) and (len(max_sub) < len(a[i:j])):
            max_sub = a[i:j]

print(max_sub)
7、獎牌榜的排名

題目描述:獎牌榜的排名算法要求如下,首先是按照金牌總數(shù)排序的,如果是同等金牌的情況下,再根據(jù)銀牌的總數(shù)進(jìn)行排序,同樣在金牌跟銀牌數(shù)量相等的情況下,在根據(jù)銅牌的數(shù)量進(jìn)行排名。在遇到金牌了、銀牌可跟銅牌數(shù)量一樣的情況下,根據(jù)國家的名稱首字母序排序。

輸入描述:
第一行輸入要排序的國家的個數(shù)n,之后n行分別輸入國家的名字、金牌總數(shù)、銀牌總數(shù)和銅牌總數(shù)以一個空格隔開。
輸出描述:
按照降序方式輸出國家的名字.

示例:

輸入:

4
China 32 28 34
England 12 34 22
France 23 33 2
Jrance 23 33 2

輸出:

China
Jrance
France
England

import operator

n = int(input())
lst = []
for i in range(n):
    lst.append(list(input().split()))

print(lst)          #輸入的每一行作為一個[]一共n個組成lst

lst2 = sorted(lst, key=operator.itemgetter(1, 2, 3, 0), reverse=True)  按照每個域中第2、3、4、1個元素進(jìn)行排序,rever=True為從大到小順序

#lst2 = sorted(lst, key=lambda x: (x[1], x[2], x[3], x[0]), reverse=True) 同上

for i in range(n):
    print(lst2[i][0])

#以下是輸出結(jié)果

python簡單小程序代碼,python簡單的小程序,java,apache,開發(fā)語言,人工智能

8、簡單密碼轉(zhuǎn)換

描述:

現(xiàn)在有一種密碼變換算法。

九鍵手機鍵盤上的數(shù)字與字母的對應(yīng):?1--1,?abc--2,?def--3,?ghi--4,?jkl--5,?mno--6,?pqrs--7,?tuv--8?wxyz--9,?0--0,把密碼中出現(xiàn)的小寫字母都變成九鍵鍵盤對應(yīng)的數(shù)字,如:a 變成 2,x 變成 9.

而密碼中出現(xiàn)的大寫字母則變成小寫之后往后移一位,如:X ,先變成小寫,再往后移一位,變成了 y ,例外:Z 往后移是 a 。

數(shù)字和其它的符號都不做變換。

數(shù)據(jù)范圍: 輸入的字符串長度滿足? 1≤n≤100?

lst = list(str(input()))
lst1 = []
dict1 = {
    "1": '1',
    "abc": '2',
    "def": '3',
    "ghi": '4',
    "jkl": '5',
    "mno": '6',
    "pqrs": '7',
    "tuv": '8',
    "wxyz": '9',
    "0": '0',
}
for i in lst:
    if i == 'Z':
        lst1.append('a')

    elif i.isdigit():
        lst1.append(i)

    elif i.isupper():
        lst1.append(chr(ord(i.lower()) + 1))  #把大寫字母小寫后往后移動一位

    elif i.islower:
        for j in dict1.keys():  #遍歷字典的所有key,i在key里取value
            if i in j:
                lst1.append(dict1[j])
lst1 = ''.join(lst1)     #把list[str]轉(zhuǎn)化為string
print(lst1)
9、合并區(qū)間

以數(shù)組 intervals 表示若干個區(qū)間的集合,其中單個區(qū)間為 intervals[i] = [starti, endi] 。請你合并所有重疊的區(qū)間,并返回?一個不重疊的區(qū)間數(shù)組,該數(shù)組需恰好覆蓋輸入中的所有區(qū)間?。

示例 1:

輸入:intervals = [[1,3],[2,6],[8,10],[15,18]]
輸出:[[1,6],[8,10],[15,18]]
解釋:區(qū)間 [1,3] 和 [2,6] 重疊, 將它們合并為 [1,6]

class Solution:
    def merge(self, intervals: List[List[int]]) -> List[List[int]]:
        res = []
        interval_lst = sorted(intervals, key = lambda x: x[0])

        n = len(interval_lst)
        for i in range(n):
            if i == 0:
                res.append(interval_lst[0])
            else:
                interval = interval_lst[i]
                if res[-1][1] >= interval[0]:
                   res[-1][1] = res[-1][1] if res[-1][1] >= interval[1] else interval[1]
                else:
                    res.append(interval)
        
        return res
10、保證文件名唯一

給你一個長度為 n 的字符串?dāng)?shù)組 names 。你將會在文件系統(tǒng)中創(chuàng)建 n 個文件夾:在第 i 分鐘,新建名為 names[i] 的文件夾。

由于兩個文件 不能 共享相同的文件名,因此如果新建文件夾使用的文件名已經(jīng)被占用,系統(tǒng)會以 (k) 的形式為新文件夾的文件名添加后綴,其中 k 是能保證文件名唯一的最小正整數(shù) 。

返回長度為 n 的字符串?dāng)?shù)組,其中 ans[i] 是創(chuàng)建第 i 個文件夾時系統(tǒng)分配給該文件夾的實際名稱。

輸入:names = ["onepiece","onepiece(1)","onepiece(2)","onepiece(3)","onepiece"]
輸出:["onepiece","onepiece(1)","onepiece(2)","onepiece(3)","onepiece(4)"]
解釋:當(dāng)創(chuàng)建最后一個文件夾時,最小的正有效 k 為 4 ,文件名變?yōu)?"onepiece(4)"

class Solution:
    def getFolderNames(self, names: List[str]) -> List[str]:
        ans = []
        memo = set()
        for name in names:
            if name not in ans:   #先把不重復(fù)的都提到空列表和空集合里
                ans.append(name)
                memo.add(name)
            else:
                k = 1
                while True:     #如果有重復(fù),后面加(k),加完再比較在不在集合里面,在的話k+1
                    tmp = f"{name}({k})"
                    if tmp not in memo:
                        ans.append(tmp)
                        memo.add(tmp)
                        break
                    k += 1    
        return ans
11、最短回文串

給定一個字符串 s,你可以通過在字符串前面添加字符將其轉(zhuǎn)換為回文串。找到并返回可以用這種方式轉(zhuǎn)換的最短回文串。

示例 1:

輸入:s = "aacecaaa"
輸出:"aaacecaaa"


示例 2:

輸入:s = "abcd"
輸出:"dcbabcd"

class Solution:
    def shortestPalindrome(self, s: str) -> str:
        if not s:
            return s
        n = len(s)
        s_r = s[::-1]
        ps = ""
        for sft in range(n):
            left = s_r[sft:]
            right = s[:n-sft]
            if left == right:
                return ps + s 
            ps += s_r[sft]
12、蛇形矩陣
描述

蛇形矩陣是由1開始的自然數(shù)依次排列成的一個矩陣上三角形。

例如,當(dāng)輸入5時,應(yīng)該輸出的三角形為:

1?3?6?10?15

2?5?9?14

4?8?13

7?12

11

輸入描述:

輸入正整數(shù)N(N不大于100)

輸出描述:

輸出一個N行的蛇形矩陣。

輸入:4

輸出:

1 3 6 10
2 5 9
4 8
7
# num = int(input())
# for i in range(num):
#     k = 0
#     for j in range(num):
#         if k <= num - i - 2:
#             k += 1
#             print((i + j + 2) * (i + j + 1) // 2 - i, end=" ")
#         else:
#             print((i + j + 2) * (i + j + 1) // 2 - i, end="\n")
#             break



n = int(input())
list1 = []
# 思路
# 1、輸入一個n
# 2、列表解析輸出第一行,用到求和公式因為是差遞增數(shù)列 (首項+末項)*I//2
for j in range(n):
    if j == 0:
        for i in range(1, n + 1):
            list1.append((1 + i) * i // 2)
        print(" ".join(map(str, list1)))
    else:
        list1 = [i - 1 for i in list1[1:]]  # 這里非常巧妙 第二行到最后一行是上一行去除第一個元素的結(jié)果,就是用一個截取就好
        print(" ".join(map(str, list1)))

到了這里,關(guān)于python簡單小程序代碼,python簡單的小程序的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 用python寫的好玩的小程序,簡單的python有趣小程序

    用python寫的好玩的小程序,簡單的python有趣小程序

    大家好,小編來為大家解答以下問題,用python寫一個有趣的小程序,python可以寫小程序代碼嗎,現(xiàn)在讓我們一起來看看吧! 大家好,小編來為大家解答以下問題,用python寫的好玩的小程序,python簡單易懂的小程序,今天讓我們一起來看看吧! 目錄 1.生成漂亮的櫻花樹 2.絕美

    2024年04月13日
    瀏覽(24)
  • 使用Python編寫簡單的小程序、成績計算器

    使用Python編寫簡單的小程序、成績計算器

    成績計算器程序需要兩個分?jǐn)?shù),以百分比表示 - 一個用于項目,一個用于考試。 項目和考試都為最終評估成績貢獻(xiàn)了50%。 程序應(yīng)從中計算出總體百分比,并使用下表中的數(shù)據(jù)計算出最終成績: 例 項目分?jǐn)?shù) - 78%,考試分?jǐn)?shù) - 65%。 最終成績 = 71.5% ((78 + 65)*0.5),最終成績

    2024年02月11日
    瀏覽(22)
  • 認(rèn)識釘釘小程序_搭建一個簡單的小程序---釘釘小程序開發(fā)教程001

    認(rèn)識釘釘小程序_搭建一個簡單的小程序---釘釘小程序開發(fā)教程001

    ? ? 其實這里面開發(fā)的時候具體,應(yīng)該有很多的坑,不過..因為暫時不需要具體做,我僅僅查了一下怎么做,記錄一下,以后不用再查了. ? ? 感覺釘釘小程序開發(fā)比微信小程序開發(fā)要更便捷,簡單一些.首先要注冊一個開發(fā)者,其實登錄上釘釘賬號就可以了.然后可以看看,快速入門,我沒

    2024年02月09日
    瀏覽(24)
  • 使用JAVA語言寫一個排隊叫號的小程序

    使用JAVA語言寫一個排隊叫號的小程序

    以下是一個簡單的排隊叫號的小程序,使用JAVA語言實現(xiàn)。 程序的運行過程如下:

    2024年02月04日
    瀏覽(21)
  • Python大數(shù)據(jù)之PySpark(三)使用Python語言開發(fā)Spark程序代碼

    Python大數(shù)據(jù)之PySpark(三)使用Python語言開發(fā)Spark程序代碼

    Spark Standalone的PySpark的搭建----bin/pyspark --master spark://node1:7077 Spark StandaloneHA的搭建—Master的單點故障(node1,node2),zk的leader選舉機制,1-2min還原 【scala版本的交互式界面】bin/spark-shell --master xxx 【python版本交互式界面】bin/pyspark --master xxx 【提交任務(wù)】bin/spark-submit --master xxxx 【學(xué)

    2024年01月17日
    瀏覽(98)
  • 簡單的小程序聊天對話窗口界面

    簡單的小程序聊天對話窗口界面

    直接上代碼,js代碼: wxml代碼: wxss代碼: json代碼: 更多功能的微信小程序聊天界面(包括發(fā)送表情、視頻、圖片),請點擊鏈接: https://download.csdn.net/download/weixin_45465881/87762409

    2024年02月11日
    瀏覽(21)
  • 【Linux】簡單的小程序:進(jìn)度條

    【Linux】簡單的小程序:進(jìn)度條

    在學(xué)習(xí)進(jìn)度條之前,需要學(xué)一點預(yù)備知識。 回車換行 現(xiàn)在的換行符( n )其實就是回車式換行符,另起一行,光標(biāo)指向最新一行的開頭。回車符( r )是光標(biāo)指向這一行的開頭。 緩沖區(qū) (1)先上例子 運行后發(fā)現(xiàn),打印hello world后停頓了兩秒,再出現(xiàn)命令行。 如果沒有打

    2024年02月10日
    瀏覽(32)
  • 微信小程序?qū)崙?zhàn)項目開發(fā)(天氣預(yù)報項目實戰(zhàn)):內(nèi)涵開發(fā)說明文檔、需求文檔 && 手把手分步驟教你寫出自己的小程序項目 && 天氣預(yù)報小程序 && 時實請求獲取天氣 && 自定義功能 && 完整的源代碼

    微信小程序?qū)崙?zhàn)項目開發(fā)(天氣預(yù)報項目實戰(zhàn)):內(nèi)涵開發(fā)說明文檔、需求文檔 && 手把手分步驟教你寫出自己的小程序項目 && 天氣預(yù)報小程序 && 時實請求獲取天氣 && 自定義功能 && 完整的源代碼

    微信小程序開發(fā)實現(xiàn)天氣預(yù)報 需求分析 靜態(tài)頁面設(shè)計 :要求界面美觀 → 在wxss代碼文件中對 wxml代碼文件進(jìn)行合理布局和美化,舒適的交互效果. 功能邏輯完善 :能夠使用到 wx.request 請求接口實現(xiàn)天氣預(yù)報查詢的功能 主要使用到的技術(shù)棧如下: wxml:中使用了 picker 組件標(biāo)簽

    2024年02月02日
    瀏覽(32)
  • 微信小程序 ——入門介紹及簡單的小程序編寫

    微信小程序 ——入門介紹及簡單的小程序編寫

    14天閱讀挑戰(zhàn)賽 自己決定的事情,就要不動聲色的一往直前! 目錄 一、小程序入門 1.1 什么是小程序 1.2?小程序的優(yōu)點 1.3 小程序注冊 1.4 安裝開發(fā)工具 1.5 創(chuàng)建第一個小程序 二、小程序目錄結(jié)構(gòu)及入門案例 2.1 目錄結(jié)構(gòu) 2.2 入門案例 2.2.1?創(chuàng)建界面 2.2.2?設(shè)置標(biāo)題 2.2.3 編寫W

    2024年02月08日
    瀏覽(93)
  • 簡單的java程序代碼?

    簡單的java程序代碼?

    1、最簡單的java代碼肯定就是這個了,如下:public class MyFirstApp { public static void main(String[] args){ System.out.print(Hello world);} } “hello world”就是應(yīng)該是所有學(xué)java的新手看的第一個代碼了。 2、public class HelloWorld{ public static void main(String[] args){ System.out.println(hello world!);} } 基本概

    2024年02月08日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包