zoukankan      html  css  js  c++  java
  • Python基础(二)

    Python基本类型练习题

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

    name = " aleX"

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

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

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

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

    E. 将 name变量对应的值根据 “l” 分割,并输出结果。

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

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

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

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

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

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

    测试代码如下

     1 name = " aleX"
     2 
     3 # 输出原始字符串
     4 print("original name=", name)
     5 
     6 # A. 移除name变量对应的值两边的空格,并输出移除后的内容
     7 print("A:", name.strip())
     8 
     9 # B. 判断 name变量对应的值是否以 "al" 开头,并输出结果
    10 print("B:", name.startswith("al"))
    11 
    12 # C. 判断 name变量对应的值是否以 "X" 结尾,并输出结果
    13 print("C:", name.endswith("X"))
    14 
    15 # D. 将 name变量对应的值中的 “l” 替换为 “p”,并输出结果
    16 print("D:", name.replace("l", "p"))
    17 
    18 # E. 将 name变量对应的值根据 “l” 分割,并输出结果。
    19 print("E:", name.split("l"))
    20 
    21 # F. 将 name变量对应的值变大写,并输出结果
    22 print("F:", name.upper())
    23 
    24 # G. 将 name变量对应的值变小写,并输出结果
    25 print("G:", name.lower())
    26 
    27 # H. 请输出 name变量对应的值的第 2个字符
    28 print("H:", name[1])
    29 
    30 # I. 请输出 name变量对应的值的前 3个字符
    31 print("I:", name[0:3])
    32 
    33 # J. 请输出 name变量对应的值的后 2个字符
    34 print("J:", name[-2:])
    35 
    36 # K. 请输出name变量对应的值中 “e” 所在索引位置
    37 print("K:", name.find("e"))
    38 
    39 # L. 获取子序列,仅不包含最后一个字符
    40 print("L:", name[:-1])

    输出结果

    结果说明:

    B.输出结果为False是因为字符串是以“空格al”打头,并不是“al”打头

    E.split函数以“l”为分隔符把字符串分为了两部分,并且把结果作为列表返回,作为分隔符的“l”将不作为返回的结果

    H.Python索引从0开始,第二个字符索引为1,索引为0的字符是空格,索引为1的字符就是a

    I.前3个字符是“空格al”

    J.字符串分片,Python支持索引为负数,[-2:]表示从倒数第2个字符到字符串结束,也就是最后两个字符

    K.在字符串“空格aleX”中,字符e是第4个字符,由于索引从0开始,因此e的索引值就是3

    L.字符串分片,[:-1]表示0个字符开始,直到最后一个字符,单不包含最后一个字符

    分片的区间补充说明[num1:num2],区间取值前闭后开,对应于数学上的取范围为表示[num1,num2),即大于等于num1,小于num2。(num1<=num<num2)

    2.请用代码实现:
    A. 利用下划线将列表的每一个元素拼接成字符串,li = "alexericrain"
    B. 利用下划线将列表的每一个元素拼接成字符串,li = ['alex', 'eric', 'rain']

    测试代码如下

    1 li = "alexericrain"
    2 print("A:")
    3 print("_".join(li))
    4 
    5 li = ['alex', 'eric', 'rain']
    6 print("B:")
    7 print("_".join(li))

    输出结果

    3.实现一个整数加法计算器:

    如: content = input('请输入内容:') # 如: 5+9 或 5+ 9 或 5 + 9

    测试代码如下

    1 content = input("请输入一个加法表达式>>>")
    2 number_list = content.strip().split("+")
    3 result = 0
    4 for num in number_list:
    5     result += int(num)
    6 
    7 print("result=", result)

    代码说明:

    本人初学者,因此没有在代码中对输入信息做异常判断和处理

    1)首先使用content接收input函数的输入,输入信息会被转换成字符串保存在变量content中

    2)使用strip函数把输入字符串中的所有空格去除,即把“5 + 9”等字符串变成没有空格“5+9”

    3)使用split("+")把上面处理过后的字符串“5+9”根据加号切割成多个部分,使用number_list变量来保存返回的列表信息

    4)使用for遍历number_list中的元素,由于经过split函数处理后的列表中每个元素都是字符串,需要使用int()来转换成整形,才能做加法,依次把元素取出,转成整形,与上次的结果相加,最后达到所有元素的结果

    5)本测试代码支持多个数的连续相加(不止两个数)

    输出结果

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

    如: content = input('请输入内容:') # 如:asduiaf878123jkjsfd-213928

    测试代码如下

     1 content = input("请随意输入一串字符数字>>>")
     2 number_counter = 0
     3 alpha_counter = 0
     4 for tmp in content:
     5     if tmp.isalpha():
     6         alpha_counter += 1
     7     elif tmp.isdecimal():
     8         number_counter += 1
     9 
    10 print("字母数量:", str(alpha_counter))
    11 print("数字数量:", str(number_counter))

    输出结果

    结果说明:

    输入中的“-”字符不被算做字母,也不被算做十进制数字

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

    如:敬爱可亲的 xxx,最喜欢在 xxx 地方干 xxx

    测试代码如下

    1 name = input("输入名字>>>")
    2 addr = input("输入地点>>>")
    3 hobby = input("输入爱好>>>")
    4 
    5 print("敬爱可亲的%s,最喜欢在%s%s" % (name, addr, hobby))
    6 print("敬爱可亲的{},最喜欢在{}{}".format(name, addr, hobby))

    代码说明:

    代码中使用了两种格式化字符串的方法,分别是%和format,最终得到的字符串相同

    输出结果

    6.开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:

    如 "苍老师" "东京热",则将内容替换为 ***

    测试代码如下

    1 sensitive_work = ("苍老师", "东京热")
    2 content = input("请输入一个句子>>>")
    3 for word in sensitive_work:
    4     content = content.replace(word, "***")
    5 
    6 print(content)

    输出结果

    7.制作表格 

    循环提示用户输入:用户名、密码、邮箱 (要求用户输入的长度不超过 20个字符,如果超过则只有前 20个字符有效)
    如果用户输入 q或 Q 表示不再继续输入,将用户输入的内容以表格形式打印

    测试代码如下

     1 info_list = []
     2 while True:
     3     name = input("请输入名字(输入q或者Q退出)>>>")
     4     if (name.lower() == "q"):
     5         break;
     6     else:
     7         name = name[:21]
     8 
     9     pwd = input("请输入密码(输入q或者Q退出)>>>")
    10     if (pwd.lower() == "q"):
    11         break;
    12     else:
    13         pwd = pwd[:21]
    14 
    15     email = input("请输入邮箱(输入q或者Q退出)>>>")
    16     if (email.lower() == "q"):
    17         break;
    18     else:
    19         email = email[:21]
    20 
    21     info_dict = {"name": name, "pwd": pwd, "email": email}
    22     info_list.append(info_dict)
    23 
    24 print("%-20s%-20s%-20s" % ("Name", "Password", "Email"))
    25 
    26 for item in info_list:
    27     print("%-20s%-20s%-20s" % (item["name"], item["pwd"], item["email"]))

    代码说明:

    1.通过字典info_dict保存用户输入的名字,密码和邮箱。截取每次输入的前20个字符[:21]

    2.把每次整理好的字典放入到列表info_list中

    3.检测输入为q或者Q则退出

    4.循环获取列表中的各个字典进行格式化输出

    输出结果

     

  • 相关阅读:
    A1126 Eulerian Path (25分)
    A1125 Chain the Ropes (25分)
    A1124 Raffle for Weibo Followers (20分)
    A1123 Is It a Complete AVL Tree (30分)
    A1122 Hamiltonian Cycle (25分)
    A1121 Damn Single (25分)
    A1120 Friend Numbers (20分)
    A1119 Pre- and Post-order Traversals (30分)
    总的调试开关
    sourceInsight
  • 原文地址:https://www.cnblogs.com/huangwenhao/p/11120531.html
Copyright © 2011-2022 走看看