zoukankan      html  css  js  c++  java
  • day11 字符串作业

    练习题:
    1、执行 Python 脚本的两种方式
    解:python
      python 1.py
      ./1.py
     
    2、简述位、字节的关系
    解:8位 = 1字节  


    3、简述 ascii、unicode、utf-­‐8、gbk 的关系
     
    4、请写出 “李杰” 分别用 utf-­‐8 和 gbk 编码所占的位数
    解:utf8:6 gbk:4
    len(a)在python2位2,python3为utf位数6
    可以通过

    v = "李杰"
    for item in v:
    print(item)

    在python2中运行后发现出来6行乱码,说明python2中的确把一个中文汉字当成三位

    在pycharm中打开setting找到Project Interpreter中将python2添加进来即可使用python2
     
    5、Pyhton 单行注释(#)和多行注释(三个双引号)分别用什么?

     
    6、声明变量注意事项有那些?  
    解:数字字母下划线,不要用python内置的,不要用关键字,尽量有意义
     
    7、如有一下变量 n1 = 5,请使用 int 的提供的方法,得到该变量最少可以用多少个二进制位表示?
    解:bit_length,5用二进制表示:101所以至少需要三位
     

    8、布尔值分别有什么?  True/False
    解:对于空字符串为假,数字0为假。其他都是真
      数字转字符串:a = 123 b = str(a)
      字符串转数字:a = "123" b = int(a)
      bool转换:bool()
     
    9、阅读代码,请写出执行结果  

    a = "alex"    
    b = a.capitalize()    
    print(a)    
    print(b)

    请写出输出结果: alex
    Alex


    10、写代码,有如下变量,请按照要求实现每个功能   


    name = " aleX"

     

    a. 移除 name 变量对应的值两边的空格,并输入移除后的内容

    a = name.strip()
    print(a)

    b. 判断 name 变量对应的值是否以 "al" 开头,并输出结果

    b = name.startswith('al')
    if b:
        print('yes')
    else:
        print('no')

    c. 判断 name 变量对应的值是否以 "X" 结尾,并输出结果

    c = name.endswith('x')
    if c:
        print('yes')
    else:
        print('no')

    d. 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果

    name = "alex"
    d = name.maketrans('l','p')
    print(name.translate(d))
    print(name.replace('l','p'))

    e1.将name的每个字符后面都加上|

    t = '|'
    e = t.join(name)
    print(e)                 #结果为   <class 'str'>
    e. 将 name 变量对应的值根据 “l” 分割,并输出结果。 
    e1 = name.split('l')
    print(e1)

    f. 请问,上一题 e 分割之后得到值是什么类型(可选)?

    print(type(e1))            #结果为   <class 'list'>

    g. 将 name 变量对应的值变大写,并输出结果

    g = name.upper()
    print(g)

    h. 将 name 变量对应的值变小写,并输出结果

    h = name.lower()
    print(h)

    i. 请输出 name 变量对应的值的第 2 个字符?

    print(name[1])

    j. 请输出 name 变量对应的值的前 3 个字符?

    print(name[0:3])     #虽然写的三,但不含右端点。从0开始可以省略0

    k. 请输出 name 变量对应的值的后 2 个字符?

    k = len(name)
    print(name[k -2:])    #k后面一个空格接-2,-2后面加冒号表示从右边开始数两个

    l. 请输出 name 变量对应的值中 “e” 所在索引位置?

    print(name.index('e'))

    m. 获取子序列,仅不包含最后一个字符。如: oldboy 则获取 oldbo; root 则获取 roo

    print(name[:len(name) -1])  #冒号在左边表示从左往右取,不含倒数第一位(左闭右开)

    11、字符串是否是可迭代对象?如可以请使用 for 循环每一个元素?
    解:例如能执行 for i in 值 此值就是可迭代对象
    #类,数据类型 str int 等 各种功能
    #对象,根据str等类型创建一个对象s = “alex”

    12、请用代码实现:  
    a. 利用下划线将列表的每一个元素拼接成字符串,li = "alexericrain"
    b. 利用下划线将列表的每一个元素拼接成字符串,li = ['alex', 'eric', 'rain'] (可选)
    解:

     v = “_".join("alexericrain")    # a_l_e_x_e_r_i_c_r_a_i_n
    v = "_".join(['alex','eric','rain'])    # alex_eric_rain

    13、Python2 中的 range 和 Python3 中的 range 的区别? 

    解:python2立即创建 python2中xrange与python3中的range效果一样
    python3只有在循环调用时才一个个创建出来

    从小到大,range(0,100,3) 从大到小,range(100,0,-4) 每次减少4
     

    14、实现一个整数加法计算器:  
    如:
    content = input('请输入内容:') # 如: 5+9 或 5+ 9 或 5 + 9

    解:用户输入的是字符串类型的 "5+9" 利用split会得到列表,结合变量content得到两个字符,转成int后进行加法计算(题目已知是加法计算)

    content    = input('请输入内容:')
    v1,v2 = content.split('+')
    v1 = int(v1)
    v2 = int(v2)
    sum = v1 + v2
    print(sum)

    15、计算用户输入的内容中有几个十进制小数?几个字母?   

    如:
    content = input('请输入内容:') # 如:asduiaf878123jkjsfd-­‐213928
    解:类似于一个投票系统:

    content = input('请输入内容:')
    c1 = 0
    c2 = 0
    for item in content:
    if item.isalpha():
    c1 += 1
    elif item.isdecimal():
    c2 += 1
    print('字母个数',c1)
    print('十进制小数个数',c2)

     

    16、简述 int 和 9 等数字 以及 str 和 "xxoo" 等字符串的关系?
    解:类和对象的关系


    17、制作趣味模板程序  
    需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实

    如:敬爱可亲的 xxx,最喜欢在 xxx 地方干 xxx
    解:考察format的应用

    template = "敬爱可亲的{0},最喜欢在{1},地方{2}"
    name = input("请输入用户名")
    place = input("请输入地点")
    event = input("请输入事件")
    v = template.format(name,place,event)
    print(v)

    18、制作随机验证码,不区分大小写。   

    流程:
    -­‐ 用户执行程序
    -­‐ 给用户显示需要输入的验证码
    -­‐ 用户输入的值
    用户输入的值和显示的值相同时现实正确信息;否则继续生成随机验证码继续等待用户输入
    生成随机验证码代码示例:def check_code():
    解:为了不区分大小写,集体转换为大写或者小写即可。四位验证码

    def check_code():
    import random
    checkcode = ''
    for i in range(4):
    current = random.randrange(0,4)
    if current != i:
    temp = chr(random.randint(65,90))
    else:
    temp = ramdom.radint(0,9)
    checkcode += str(temp)
    return checkcode
    while True:
    
    code = check_code()
    print(code)
    v = input('请输入您的验证码')
    v1 = v.upper()
    code1 = code.upper()
    if v1 == code1:
    print('正确')
    break
    else:
    print('错误,请重新输入新的验证码')

    19、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:  
    如 "苍老师" "东京热",则将内容替换为 ***
    解:字符串一旦被修改会生成一个新的字符串.记得一定要重新赋值给v,否则v的值不会变化

    v = "jkdsnkfjns"
    v = v.replace('s',"***")
    v = v.replace('a',"***")
    print(v)

    20、制作表格
    循环提示用户输入:用户名、密码、邮箱 (要求用户输入的长度不超过 20 个字符,如果超过则只有前 20 个字符有效)
    如果用户输入 q 或 Q 表示不再继续输入,将用户输入的内容以表格形式大隐
    解:expandtabs 切片[0:20] len() 建立中文表格title时expandtabs选小一点这样视觉上看起来对齐
    注意 v1 == 'q'or v1 == 'Q':不能简写成 v1 == 'q'or 'Q':否则会出错

    s = ""
    while True:
    v1 = input('用户名:')
    if v1 == 'q'or v1 == 'Q':
    print('退出')
    break
    else:
    v2 = input('密码:')
    v3 = input('邮箱:')
    template = "{0}	{1}	{2}
    "
    v = template.format(v1,v2,v3)
    s = s + v
    title = '用户名	密码	邮箱'
    print(title.expandtabs(17))
    print(s.expandtabs(20))

     输出结果:

  • 相关阅读:
    JAVA -数据类型与表达式---表达式
    JAVA -数据类型与表达式---基本数据类型
    【网易官方】极客战记(codecombat)攻略-森林-背靠背-back-to-back
    【网易官方】极客战记(codecombat)攻略-森林-荆棘农场thornbush-farm
    【网易官方】极客战记(codecombat)攻略-森林-村庄守护者
    【网易官方】极客战记(codecombat)攻略-森林-If 的盛宴
    【网易官方】极客战记(codecombat)攻略-森林-鹰眼
    【网易官方】极客战记(codecombat)攻略-森林-野餐毁灭者
    【网易官方】极客战记(codecombat)攻略-森林-巡逻兵克星A
    【网易官方】极客战记(codecombat)攻略-森林-巡逻兵克星
  • 原文地址:https://www.cnblogs.com/Josie-chen/p/8669873.html
Copyright © 2011-2022 走看看