第三章 基本数据类型

1、星号三角形,对称输出

读入一个整数N,N是奇数,输出由星号字符组成的等边三角形,要求:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

第1行1个星号,第2行3个星号,第3行5个星号,依次类推,最后一行共N的星号。

N = int(input()) #int是把输入转换成整数
for i in range((N+1)//2):  #要保证range里面的数是整数,不能浮点,所以整除
    print(("*"*(2*i+1)).center(N," "))#.center是对输出的东西居中,需要根据情况()或者""
    #可以直接输出的时候对字符进行复制——”字符“*次数

2、凯撒加密

输入包含大小写字母a~z A~Z、空格和特殊符号,请编写一个程序,对输入字符串进行恺撒密码加密,直接输出结果,其中特殊符号和空格不用进行加密处理。使用input()获得输入。

恺撒密码采用替换方法,信息中的每个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,(例)大写字母的对应关系如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

原文: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

P = input()
for i in range(len(P)):
    if 'a' <= P[i] <='z':   #str可以直接比较
        print("{}".format(chr(ord('a')+(ord(P[i]) - ord('a') + 3) % 26)),end="") 
        #主要看这个转换公式
        #另外直接用end=空字符直接跟在后面输出
    elif 'A' <= P[i] <='Z':
        print("{}".format(chr(ord('A')+(ord(P[i]) - ord('A') + 3) % 26)),end="")
    else:
        print(P[i],end="")  #对于空格和其他字符不处理
P = input()
t = ""
for c in P: #还可以这样,两种方法比较
    if 'a' <= c <= 'z': 
        t += chr( ord('a') + ((ord(c)-ord('a')) + 3 )%26 )
        #注意看这个 t += 的处理方式,+=之间注意不能有空格
    elif 'A'<=c<='Z':
        t += chr( ord('A') + ((ord(c)-ord('A')) + 3 )%26 )
    else:
        t += c
print(t)

3、平方根格式化(平方根的表示、字符串格式)

输入整数a,计算a的平方根,保留小数点后3位,打印输出。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输出结果采用宽度30个字符、右对齐输出、多余字符采用加号(+)填充。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

如果结果超过30个字符,则以结果宽度为准

s = input()
print("{:+>30.3f}".format(pow(int(s),0.5)))
           #宽度设定为30,但如果超过30,就会超过输出

4、字符串分段组合

获得输入的一个字符串s,以字符减号(-)分割s,将其中首尾两段用加号(+)组合后输出。

输入:Alice-Bob-Charis-David-Eric-Flurry

输出:Alice+Flurry

s = input()
input("{:}+{:}".format(s.split("-")[0] , s.split("-")[-1]))
#.split的使用
'''注意不是input("{:}".format(s.split("-")[0] + s.split("-")[-1])),
这样输出的结果是AliceFlurry'''
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值