注:本文非标准教程,仅是总结个人学习过程,可能存在纰漏,如有错误之处欢迎留言告知,非常感谢
所需掌握的知识:python 初学者 笔记二
字符串分段组合
描述
获得输入的一个字符串s,以字符减号(-)分割s,将其中首尾两段用加号(+)组合后输出。
输入输出示例
输入 | 输出 |
---|---|
Alice-Bob-Charis-David-Eric-Flurry | Alice+Flurry |
两段代码分别实现效果:
s=input("")
a=len(s)
for i in range(a):
if(s[i]=='-'):
print(s[:i],end='')
break;
print('+',end='')
while a>0:
if(s[a-1]=='-'):
print(s[a:-1]+s[-1],end='')
break;
a=a-1
s = input()
ls = s.split("-")
print("{}+{}".format(ls[0], ls[-1]))
str.split(sep=None)
返回一个列表,由str根据sep被分隔的部分组成
“A,B,C”.spilt(",") 结果为[‘A’,‘B’,‘C’]
星号三角形
描述
读入一个整数N,N是奇数,输出由星号字符组成的等边三角形,要求:
第1行1个星号,第2行3个星号,第3行5个星号,依次类推,最后一行共N的星号。
输入输出示例
错误代码
N=input("")
N=eval(N)
for i in range(1,n+1,2):
print("{0:^N}".format('*'))
这是错误的,因为这句print("{0:^N}".format('*'))
中的N是string类型,不是int类型。
然后 range(1,n+1,2)
是题目要求是奇数,所以是1,n+1,2.
AC代码:
n = eval(input())
for i in range(1,n+1,2):
print("{0:^{1}}".format('*'*i, n))
恺撒密码
描述
恺撒密码是古罗马恺撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:
原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
对于原文字符P,其密文字符C满足如下条件:C=(P+3) mod 26
上述是凯撒密码的加密方法,解密方法反之,即:P=(C-3) mod 26
假设用户可能使用的输入包含大小写字母azAZ、空格和特殊符号,请编写一个程序,对输入字符串进行恺撒密码加密,直接输出结果,其中空格不用进行加密处理。使用input()获得输入。
输入 | 输出 |
---|---|
python is good | sbwkrq lv jrrg |
s = input()
t = ""
for c in s:
if 'a' <= c <= 'z':
t += chr( ord('a') + ((ord(c)-ord('a')) + 3 )%26 )
elif 'A' <= c <= 'Z':
t += chr( ord('A') + ((ord(c)-ord('A')) + 3 )%26 )
else:
t += c
print(t)
四位玫瑰数
描述
四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数。
请输出所有4位数的四位玫瑰数,按照从大到小顺序,每个数字一行。
输入输出示例
输出仅表示格式,不表示对错。
输入 | 输出 |
---|---|
无 | 1111 2222 3333 |
s = ""
for i in range(1000, 10000):
t = str(i)
if pow(eval(t[0]),4) + pow(eval(t[1]),4) + pow(eval(t[2]),4) + pow(eval(t[3]),4) == i :
print(i)
100以内素数之和
描述
求100以内所有素数之和并输出。
素数指从大于1,且仅能被1和自己整除的整数。
提示:可以逐一判断100以内每个数是否为素数,然后求和。
输入格式
该题目没有输入
def is_prime(n):
for i in range(2,n):
if n%i == 0:
return False
return True
sum = 0
for i in range(2,100):
if is_prime(i):
sum += i
print(sum)
做题网站为python123