头歌实践平台(Educoder):python 教学案例三 字符类型及其操作

第1关 提取身份证号性别

sfzh=input("输入身份证号")
#代码开始
sex = sfzh[:17]
sex = int(sex)
if sex % 2 == 0:
    print("性别女")
else:
    print("性别男")
#代码结束

 第2关 提取身份证号生肖

sfzh=input("输入身份证号")
#代码开始
# 生肖对应字符串
sxzf = "猴鸡狗猪鼠牛虎兔龙蛇马羊"
# 年份是身份证号的第6位到第9位
nf = sfzh[6:10]  # 注意这里是6:10,因为切片操作是左闭右开的
# 计算生肖
# 出生年份对12的余数是int(nf) % 12,sxzf[int(nf) % 12]就是属相
shuxiang = sxzf[int(nf) % 12]
# 输出生肖
print("生肖" + shuxiang)
#代码结束

第3关 打印三角形

# 输入行数
hs = eval(input("请输入行数"))

# i从0循环到hs-1
for i in range(hs):
    # 每行打印hs-1-i个空格和2*i+1个+号
    print(" " * (hs - 1 - i) + "+" * (2 * i + 1))

第4关 打印钻石图形

# 输入行数
hs = eval(input("请输入行数"))

# 上半部分钻石
for i in range(hs):
    print(" " * (hs - i - 1) + "+" * (2 * i + 1))

# 下半部分钻石
for i in range(hs - 2, -1, -1):
    print(" " * (hs - i - 1) + "+" * (2 * i + 1))

 第5关 身份证合法性检查

sfzh = input("输入身份证号")
# 去除空格
sfzh = sfzh.strip()
# 判断长度是否为18位
if len(sfzh) != 18:
    print("长度错误")
else:
    # 判断前17位是否都为数字
    if not sfzh[:17].isnumeric():
        print("不是数字")

第6关 身份证号校验码

sfzh=input("输入身份证号")
#代码开始
# 系数
xs = '79a584216379a5842'
# 校验码
jym = '10X98765432'
s = 0
# 计算累加和
for i in range(17):
    if xs[i] == 'a':
        s += 10 * int(sfzh[i])
    else:
        s += int(xs[i]) * int(sfzh[i])
# 计算校验码
remainder = s % 11
if jym[remainder] != sfzh[17]:
    print("校验码错误")
#代码结束

第7关 统计字符串中的各类字符 

x=input("请输入字符串")
#代码开始
sz=dxzm=xxzm=qt=hz=0
for c in x:
    if c.isdigit():
        sz=sz+1
    elif c.isupper():
        dxzm=dxzm+1
    elif c.islower():
        xxzm=xxzm+1
    elif '\u4e00'<=c<='\u9fff':
        hz=hz+1
    else:
        qt=qt+1
print("大写字母{}小写字母{}汉字{}数字{}其他{}".format(dxzm,xxzm,hz,sz,qt)) 
#代码结束

 第8关 凯撒密码加密

x = input("输入明文:")
#代码开始
y=""
for c in x:
    if "a"<=c<="z":
        y=y+chr(ord("a") + (ord(c) - ord("a") + 3)%26)
    else:
        y=y+c
print("密文为:"+y) 
#代码结束

  第9关 选择题

  • 1、s = “the sky is blue”,表达式 print(s[-4:], s[:-4]) 的结果是: ( D )

    A、

    the sky is blue

    B、

    blue is sky the

    C、

    sky is blue the

    D、

    blue the sky is

  • 2、设置变量x="hunan university",下列哪个表达式可以得到字符串"ytisrevinu"  ( C )

    A、x[6:]
    B、x[-10::-1]
    C、x[-1:5:-1]
    D、x[6::-1]
  • 3、表达式"5"*3+"6"的值是   ( C )

    A、21
    B、156
    C、5556
    D、536
  • 4、设置变量x='abcdef' 下列哪个函数可以得到字符串x的长度6  ( C )

    A、ord(x)
    B、chr(x)
    C、len(x)
    D、str(x)
  • 5、如果 p=ord(‘a’), 表达式 print(p,chr((p+3)%26+ord(‘a’))) 的结果是  ( C )

    A、97 d
    B、97 x
    C、97 w
    D、65 
  • 6、关于 Python 字符编码,以下选项中描述错误的是  ( C )

    A、

    chr(x) 和 ord(x) 函数用于在单字符和 Unicode 编码值之间进行转换

    B、

    print(chr(65)) 输出 A

    C、

    若变量x为大写字母,可以使用下列表达式得到其对应的小写字母 ord(chr(x)-65+97)

    D、

    print(ord(‘a’)) 输出 97

  • 7、以下选项中值为False的是   ( B )

    A、‘abc’ <’abcd’

    B、‘Hello’ >'hello’

    C、'abcd’ <'acbd’

    D、‘A’!='a’
     
  • 8、以下关于字符串类型的操作的描述,错误的是   ( B )

    A、

    str.replace(x,y)方法可返回字符串,把字符串str中所有的x子串都替换成y

    B、

    想获取字符串str的长度,用字符串处理函数 str.len()

    C、

    设 x ='aa',则执行x*3的结果是‘aaaaaa’

    D、

    想返回一个字符串,将str所有的字符都大写,用str.upper()

  • 9、关于字符串的处理方法,以下正确的是  ( A )

    A、

    str.strip(chars)方法返回字符串str的副本,在str左侧和右侧去掉chars中列出的字符。缺省则去掉空格。

    B、

    str.upper()返回字符串str的副本,全部字符小写

    C、

    str.lower()返回字符串str的副本,全部字符大写

    D、

    str.find(str2)检测字符串中是否包含子字符串str2,若包含则返回True,不包含返回False。

 

 

  • 21
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值