python简单小程序代码,python简单的小程序

这篇具有很好参考价值的文章主要介绍了python简单小程序代码,python简单的小程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大家好,给大家分享一下python简单小程序代码,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!

python简单小程序代码,python简单的小程序,java,apache,开发语言,人工智能

Source code download: 本文相关源码

大家好,本文将围绕python编写一个小程序展开说明,python入门小程序编写是一个很多人都想弄明白的事情,想搞清楚如何用python写小程序需要先了解以下几个事情。

python简单小程序代码,python简单的小程序,java,apache,开发语言,人工智能

1、字符串分隔
描述

•输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;

•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理用python画雪人的代码。

输入描述:

连续输入字符串(每个字符串长度小于等于100)

输出描述:

依次输出所有分割后的长度为8的新字符串

示例1

输入:abc

输出:abc00000

st = str(input())
while len(st) % 8 != 0:  #判断字符串长度是否为8的整数倍
    st = st + '0'        #整体补0直至长度为8的整数倍
if len(st) == 8:       
    print(st)
else:
    for i in range(0, len(st), 8): #每8个输出一次
        print(st[i:i+8])

2、提取不重复的整数
描述

输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数伪原创小发猫怎么样。

保证输入的整数最后一位不是 0 。

输入描述:

输入一个int型整数

输出描述:

按照从右向左的阅读顺序,返回一个不含重复数字的新的整数

示例1

输入:9876673

输出:37689

from re import L

num = int(input())

lst = list(map(int, str(num)))  #将输入的整数转为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:   #把列表中值从右向左的顺序提取到空列表中,并剔除重复项
            l.append(lst[len(lst)-i-1])

strlist = [str(x) for x in l]  #把列表变为str类型的列表
s = int(''.join(strlist))       #把列表转为int
print(s)
    
    
3、求最小公倍数
描述

正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。

输入描述:

输入两个正整数A和B。

输出描述:

输出A和B的最小公倍数

示例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、简单错误记录
描述

开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。

处理:

1、 记录最多8条错误记录,循环记录,最后只用输出最后出现的八条错误记录。对相同的错误记录只记录一条,但是错误计数增加。最后一个斜杠后面的带后缀名的部分(保留最后16位)和行号完全匹配的记录才做算是相同的错误记录。

2、 超过16个字符的文件名称,只记录文件的最后有效16个字符;

3、 输入的文件可能带路径,记录文件名称不能带路径。也就是说,哪怕不同路径下的文件,如果它们的名字的后16个字符相同,也被视为相同的错误记录

4、循环记录时,只以第一次出现的顺序为准,后面重复的不会更新它的出现时间,仍以第一次为准

数据范围:错误记录数量满足 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个字符,达到了17,所以第一个字符'c'应该被忽略。
记录F:\fop\ywzqaop 631和F:\yay\jc\ywzqaop 631由于文件名和行号相同,因此被视为同一个错误记录,哪怕它们的路径是不同的。
由于循环记录时,只以第一次出现的顺序为准,后面重复的不会更新它的出现时间,仍以第一次为准,所以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、字符串转化
import sys

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

# 第一步:将输入的两个字符串str1和str2进行前后合并
str1=a[0]
str2=a[1]
str3=str1+str2
# print(str3)

# 第二步:对合并后的字符串进行排序,要求为:下标为奇数的字符和下标为偶数的字符分别从小到大排序。
even_chars = sorted(str3[::2])
odd_chars = sorted(str3[1::2])
str4 = ''.join(e+o for e,o in zip(even_chars,odd_chars))
# 处理字符串长度为奇数时,多出的字符
if len(str3)%2 != 0:
    str4 += even_chars[-1]
# print(str4)

#第三步:对排序后的字符串中的'0'~'9'、'A'~'F'和'a'~'f'字符,需要进行转换操作。转换规则如下:
#对以上需要进行转换的字符所代表的十六进制用二进制表示并倒序,
#然后再转换成对应的十六进制大写字符(注:字符 a~f 的十六进制对应十进制的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()函数将十六进制字符串转换为整数,然后使用bin()函数将整数转换为二进制字符串。但是,请注意,bin()函数返回的二进制字符串前两个字符是0b,因此我们使用切片[2:]来删除这两个字符,只返回纯二进制字符串;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,b中的最长公共子串

查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。

注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开!

数据范围:字符串长度 1≤length≤300 

进阶:时间复杂度: O(n3) ,空间复杂度: O(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):   #每循环一次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、奖牌榜的排名

题目描述:奖牌榜的排名算法要求如下,首先是按照金牌总数排序的,如果是同等金牌的情况下,再根据银牌的总数进行排序,同样在金牌跟银牌数量相等的情况下,在根据铜牌的数量进行排名。在遇到金牌了、银牌可跟铜牌数量一样的情况下,根据国家的名称首字母序排序。

输入描述:
第一行输入要排序的国家的个数n,之后n行分别输入国家的名字、金牌总数、银牌总数和铜牌总数以一个空格隔开。
输出描述:
按照降序方式输出国家的名字.

示例:

输入:

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

输出:文章来源地址https://www.toymoban.com/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个元素进行排序,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])

#以下是输出结果

python简单小程序代码,python简单的小程序,java,apache,开发语言,人工智能

8、简单密码转换

描述:

现在有一种密码变换算法。

九键手机键盘上的数字与字母的对应: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,把密码中出现的小写字母都变成九键键盘对应的数字,如:a 变成 2,x 变成 9.

而密码中出现的大写字母则变成小写之后往后移一位,如:X ,先变成小写,再往后移一位,变成了 y ,例外:Z 往后移是 a 。

数字和其它的符号都不做变换。

数据范围: 输入的字符串长度满足  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]转化为string
print(lst1)
9、合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

示例 1:

输入:intervals = [[1,3],[2,6],[8,10],[15,18]]
输出:[[1,6],[8,10],[15,18]]
解释:区间 [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 的字符串数组 names 。你将会在文件系统中创建 n 个文件夹:在第 i 分钟,新建名为 names[i] 的文件夹。

由于两个文件 不能 共享相同的文件名,因此如果新建文件夹使用的文件名已经被占用,系统会以 (k) 的形式为新文件夹的文件名添加后缀,其中 k 是能保证文件名唯一的最小正整数 。

返回长度为 n 的字符串数组,其中 ans[i] 是创建第 i 个文件夹时系统分配给该文件夹的实际名称。

输入:names = ["onepiece","onepiece(1)","onepiece(2)","onepiece(3)","onepiece"]
输出:["onepiece","onepiece(1)","onepiece(2)","onepiece(3)","onepiece(4)"]
解释:当创建最后一个文件夹时,最小的正有效 k 为 4 ,文件名变为 "onepiece(4)"

class Solution:
    def getFolderNames(self, names: List[str]) -> List[str]:
        ans = []
        memo = set()
        for name in names:
            if name not in ans:   #先把不重复的都提到空列表和空集合里
                ans.append(name)
                memo.add(name)
            else:
                k = 1
                while True:     #如果有重复,后面加(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,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。

示例 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开始的自然数依次排列成的一个矩阵上三角形。

例如,当输入5时,应该输出的三角形为:

1 3 6 10 15

2 5 9 14

4 8 13

7 12

11

输入描述:

输入正整数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、列表解析输出第一行,用到求和公式因为是差递增数列 (首项+末项)*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:]]  # 这里非常巧妙 第二行到最后一行是上一行去除第一个元素的结果,就是用一个截取就好
        print(" ".join(map(str, list1)))

大家好,本文将围绕python编写一个小程序展开说明,python入门小程序编写是一个很多人都想弄明白的事情,想搞清楚如何用python写小程序需要先了解以下几个事情。

python简单小程序代码,python简单的小程序,java,apache,开发语言,人工智能

1、字符串分隔
描述

•输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;

•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理用python画雪人的代码。

输入描述:

连续输入字符串(每个字符串长度小于等于100)

输出描述:

依次输出所有分割后的长度为8的新字符串

示例1

输入:abc

输出:abc00000

st = str(input())
while len(st) % 8 != 0:  #判断字符串长度是否为8的整数倍
    st = st + '0'        #整体补0直至长度为8的整数倍
if len(st) == 8:       
    print(st)
else:
    for i in range(0, len(st), 8): #每8个输出一次
        print(st[i:i+8])

2、提取不重复的整数
描述

输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数伪原创小发猫怎么样。

保证输入的整数最后一位不是 0 。

输入描述:

输入一个int型整数

输出描述:

按照从右向左的阅读顺序,返回一个不含重复数字的新的整数

示例1

输入:9876673

输出:37689

from re import L

num = int(input())

lst = list(map(int, str(num)))  #将输入的整数转为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:   #把列表中值从右向左的顺序提取到空列表中,并剔除重复项
            l.append(lst[len(lst)-i-1])

strlist = [str(x) for x in l]  #把列表变为str类型的列表
s = int(''.join(strlist))       #把列表转为int
print(s)
    
    
3、求最小公倍数
描述

正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。

输入描述:

输入两个正整数A和B。

输出描述:

输出A和B的最小公倍数

示例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、简单错误记录
描述

开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。

处理:

1、 记录最多8条错误记录,循环记录,最后只用输出最后出现的八条错误记录。对相同的错误记录只记录一条,但是错误计数增加。最后一个斜杠后面的带后缀名的部分(保留最后16位)和行号完全匹配的记录才做算是相同的错误记录。

2、 超过16个字符的文件名称,只记录文件的最后有效16个字符;

3、 输入的文件可能带路径,记录文件名称不能带路径。也就是说,哪怕不同路径下的文件,如果它们的名字的后16个字符相同,也被视为相同的错误记录

4、循环记录时,只以第一次出现的顺序为准,后面重复的不会更新它的出现时间,仍以第一次为准

数据范围:错误记录数量满足 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个字符,达到了17,所以第一个字符'c'应该被忽略。
记录F:\fop\ywzqaop 631和F:\yay\jc\ywzqaop 631由于文件名和行号相同,因此被视为同一个错误记录,哪怕它们的路径是不同的。
由于循环记录时,只以第一次出现的顺序为准,后面重复的不会更新它的出现时间,仍以第一次为准,所以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、字符串转化
import sys

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

# 第一步:将输入的两个字符串str1和str2进行前后合并
str1=a[0]
str2=a[1]
str3=str1+str2
# print(str3)

# 第二步:对合并后的字符串进行排序,要求为:下标为奇数的字符和下标为偶数的字符分别从小到大排序。
even_chars = sorted(str3[::2])
odd_chars = sorted(str3[1::2])
str4 = ''.join(e+o for e,o in zip(even_chars,odd_chars))
# 处理字符串长度为奇数时,多出的字符
if len(str3)%2 != 0:
    str4 += even_chars[-1]
# print(str4)

#第三步:对排序后的字符串中的'0'~'9'、'A'~'F'和'a'~'f'字符,需要进行转换操作。转换规则如下:
#对以上需要进行转换的字符所代表的十六进制用二进制表示并倒序,
#然后再转换成对应的十六进制大写字符(注:字符 a~f 的十六进制对应十进制的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()函数将十六进制字符串转换为整数,然后使用bin()函数将整数转换为二进制字符串。但是,请注意,bin()函数返回的二进制字符串前两个字符是0b,因此我们使用切片[2:]来删除这两个字符,只返回纯二进制字符串;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,b中的最长公共子串

查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。

注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开!

数据范围:字符串长度 1≤length≤300 

进阶:时间复杂度: O(n3) ,空间复杂度: O(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):   #每循环一次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、奖牌榜的排名

题目描述:奖牌榜的排名算法要求如下,首先是按照金牌总数排序的,如果是同等金牌的情况下,再根据银牌的总数进行排序,同样在金牌跟银牌数量相等的情况下,在根据铜牌的数量进行排名。在遇到金牌了、银牌可跟铜牌数量一样的情况下,根据国家的名称首字母序排序。

输入描述:
第一行输入要排序的国家的个数n,之后n行分别输入国家的名字、金牌总数、银牌总数和铜牌总数以一个空格隔开。
输出描述:
按照降序方式输出国家的名字.

示例:

输入:

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个元素进行排序,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])

#以下是输出结果

python简单小程序代码,python简单的小程序,java,apache,开发语言,人工智能

8、简单密码转换

描述:

现在有一种密码变换算法。

九键手机键盘上的数字与字母的对应: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,把密码中出现的小写字母都变成九键键盘对应的数字,如:a 变成 2,x 变成 9.

而密码中出现的大写字母则变成小写之后往后移一位,如:X ,先变成小写,再往后移一位,变成了 y ,例外:Z 往后移是 a 。

数字和其它的符号都不做变换。

数据范围: 输入的字符串长度满足  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]转化为string
print(lst1)
9、合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

示例 1:

输入:intervals = [[1,3],[2,6],[8,10],[15,18]]
输出:[[1,6],[8,10],[15,18]]
解释:区间 [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 的字符串数组 names 。你将会在文件系统中创建 n 个文件夹:在第 i 分钟,新建名为 names[i] 的文件夹。

由于两个文件 不能 共享相同的文件名,因此如果新建文件夹使用的文件名已经被占用,系统会以 (k) 的形式为新文件夹的文件名添加后缀,其中 k 是能保证文件名唯一的最小正整数 。

返回长度为 n 的字符串数组,其中 ans[i] 是创建第 i 个文件夹时系统分配给该文件夹的实际名称。

输入:names = ["onepiece","onepiece(1)","onepiece(2)","onepiece(3)","onepiece"]
输出:["onepiece","onepiece(1)","onepiece(2)","onepiece(3)","onepiece(4)"]
解释:当创建最后一个文件夹时,最小的正有效 k 为 4 ,文件名变为 "onepiece(4)"

class Solution:
    def getFolderNames(self, names: List[str]) -> List[str]:
        ans = []
        memo = set()
        for name in names:
            if name not in ans:   #先把不重复的都提到空列表和空集合里
                ans.append(name)
                memo.add(name)
            else:
                k = 1
                while True:     #如果有重复,后面加(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,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。

示例 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开始的自然数依次排列成的一个矩阵上三角形。

例如,当输入5时,应该输出的三角形为:

1 3 6 10 15

2 5 9 14

4 8 13

7 12

11

输入描述:

输入正整数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、列表解析输出第一行,用到求和公式因为是差递增数列 (首项+末项)*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:]]  # 这里非常巧妙 第二行到最后一行是上一行去除第一个元素的结果,就是用一个截取就好
        print(" ".join(map(str, list1)))

到了这里,关于python简单小程序代码,python简单的小程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 用python写的好玩的小程序,简单的python有趣小程序

    用python写的好玩的小程序,简单的python有趣小程序

    大家好,小编来为大家解答以下问题,用python写一个有趣的小程序,python可以写小程序代码吗,现在让我们一起来看看吧! 大家好,小编来为大家解答以下问题,用python写的好玩的小程序,python简单易懂的小程序,今天让我们一起来看看吧! 目录 1.生成漂亮的樱花树 2.绝美

    2024年04月13日
    浏览(11)
  • 使用Python编写简单的小程序、成绩计算器

    使用Python编写简单的小程序、成绩计算器

    成绩计算器程序需要两个分数,以百分比表示 - 一个用于项目,一个用于考试。 项目和考试都为最终评估成绩贡献了50%。 程序应从中计算出总体百分比,并使用下表中的数据计算出最终成绩: 例 项目分数 - 78%,考试分数 - 65%。 最终成绩 = 71.5% ((78 + 65)*0.5),最终成绩

    2024年02月11日
    浏览(10)
  • 认识钉钉小程序_搭建一个简单的小程序---钉钉小程序开发教程001

    认识钉钉小程序_搭建一个简单的小程序---钉钉小程序开发教程001

        其实这里面开发的时候具体,应该有很多的坑,不过..因为暂时不需要具体做,我仅仅查了一下怎么做,记录一下,以后不用再查了.     感觉钉钉小程序开发比微信小程序开发要更便捷,简单一些.首先要注册一个开发者,其实登录上钉钉账号就可以了.然后可以看看,快速入门,我没

    2024年02月09日
    浏览(10)
  • 使用JAVA语言写一个排队叫号的小程序

    使用JAVA语言写一个排队叫号的小程序

    以下是一个简单的排队叫号的小程序,使用JAVA语言实现。 程序的运行过程如下:

    2024年02月04日
    浏览(8)
  • Python大数据之PySpark(三)使用Python语言开发Spark程序代码

    Python大数据之PySpark(三)使用Python语言开发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 【提交任务】bin/spark-submit --master xxxx 【学

    2024年01月17日
    浏览(47)
  • 简单的小程序聊天对话窗口界面

    简单的小程序聊天对话窗口界面

    直接上代码,js代码: wxml代码: wxss代码: json代码: 更多功能的微信小程序聊天界面(包括发送表情、视频、图片),请点击链接: https://download.csdn.net/download/weixin_45465881/87762409

    2024年02月11日
    浏览(12)
  • 【Linux】简单的小程序:进度条

    【Linux】简单的小程序:进度条

    在学习进度条之前,需要学一点预备知识。 回车换行 现在的换行符( n )其实就是回车式换行符,另起一行,光标指向最新一行的开头。回车符( r )是光标指向这一行的开头。 缓冲区 (1)先上例子 运行后发现,打印hello world后停顿了两秒,再出现命令行。 如果没有打

    2024年02月10日
    浏览(11)
  • 微信小程序实战项目开发(天气预报项目实战):内涵开发说明文档、需求文档 && 手把手分步骤教你写出自己的小程序项目 && 天气预报小程序 && 时实请求获取天气 && 自定义功能 && 完整的源代码

    微信小程序实战项目开发(天气预报项目实战):内涵开发说明文档、需求文档 && 手把手分步骤教你写出自己的小程序项目 && 天气预报小程序 && 时实请求获取天气 && 自定义功能 && 完整的源代码

    微信小程序开发实现天气预报 需求分析 静态页面设计 :要求界面美观 → 在wxss代码文件中对 wxml代码文件进行合理布局和美化,舒适的交互效果. 功能逻辑完善 :能够使用到 wx.request 请求接口实现天气预报查询的功能 主要使用到的技术栈如下: wxml:中使用了 picker 组件标签

    2024年02月02日
    浏览(17)
  • 微信小程序 ——入门介绍及简单的小程序编写

    微信小程序 ——入门介绍及简单的小程序编写

    14天阅读挑战赛 自己决定的事情,就要不动声色的一往直前! 目录 一、小程序入门 1.1 什么是小程序 1.2 小程序的优点 1.3 小程序注册 1.4 安装开发工具 1.5 创建第一个小程序 二、小程序目录结构及入门案例 2.1 目录结构 2.2 入门案例 2.2.1 创建界面 2.2.2 设置标题 2.2.3 编写W

    2024年02月08日
    浏览(44)
  • 简单的java程序代码?

    简单的java程序代码?

    1、最简单的java代码肯定就是这个了,如下:public class MyFirstApp { public static void main(String[] args){ System.out.print(Hello world);} } “hello world”就是应该是所有学java的新手看的第一个代码了。 2、public class HelloWorld{ public static void main(String[] args){ System.out.println(hello world!);} } 基本概

    2024年02月08日
    浏览(8)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包