首页 > 技术文章 > day04

kangwenju 2020-04-23 03:51 原文

  1. 现有字符串: str1 = '1234567890',根据题目要求完成以下题目:

(1)截取字符串的第一位到第三位的字符

(2)截取字符串最后三位的字符

(3)截取字符串的全部字符

# 现有字符串: str1 = '1234567890',根据题目要求完成以下题目:
# 截取字符串的第一位到第三位的字符
# 截取字符串最后三位的字符
# 截取字符串的全部字符
str1 = '1234567890'
ret = str1[:3]
print(ret)
ret1 = str1[-3:]
print(ret1)
ret2 = str1[:]
print(ret2)

运行结果:

123
890
1234567890

2.将下列字符串中所有的数字相加,相加完毕的结果输出至终端.

str = “10@20@30@4@6”

# 将下列字符串中所有的数字相加,相加完毕的结果输出至终端.
# str = “10@20@30@4@6”
str = "10@20@30@4@6"
ret = str.split("@")
print(ret)
sum = 0
for i in ret:
    sum += int(i)
print("结果输出:%d" % sum)

或者:

#方法二:
str1 = "10@20@30@4@6"
a = int(str1[0:2])
b = int(str1[3:5])
c = int(str1[6:8])
d = int(str1[9:10])
e = int(str1[11:12])
print(a + b + c + d + e)

或者:

#方法三
str1 = "10@20@30@4@6"
a = str1.replace("@", "+")
b=eval(a)
print(b)

运行结果:

['10', '20', '30', '4', '6']
结果输出:70

3.输出字符串str1中所有的偶数.

str1 = “1234567890”

# 输出字符串str1中所有的偶数.
# str1 = “1234567890”
str1 = "1234567890"
for i in str1:
    if int(i) % 2 == 0 and int(i) != 0:
        print(i)

运行结果:

2
4
6
8

4.从键盘输入一个用户名和密码,判断是否正确,如果是则打印登录系统成功,否则显示用户名或密码错误并重新输入

while True:
    username = input("请输入用户名:")
    passwd = input("请输入密码:")
    if username == "username" and passwd == "passwd":
           print("登陆成功")
           break
    else:
           print("用户名或密码错误,请重新输入")

5.已有列表nums=[11,22,33,44,55],分别使用for循环和while循环遍历列表

# 已有列表nums=[11,22,33,44,55],分别使用for循环和while循环遍历列表
i = 0
while i < len(nums):
    value = nums[i]
    print(value)
    i += 1

for循环:

nums=[11,22,33,44,55]
for value in nums:
    print(value)

6.完成字符串的逆序以及统计

设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入

打印出字符串长度

使用切片逆序打印出字符串

# 完成字符串的逆序以及统计
# 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
# 打印出字符串长度
# 使用切片逆序打印出字符串
while True:
    # 获取键盘输入
    a = input("请任意输入一个字符串(长1-31):")
    # 测试长度:
    if len(a)<1 or len(a)>31:
        print("长度超出限制,请重新输入")
        continue
    # 如果输入“QUIT”则退出程序
    if a == "QUIT":
        break
    # 打印其长度并逆序打印字符串
    print("您输入的字符串%s\n"%a,
          "长度:%d\n"%len(a),
          "逆序后为:%s"%a[::-1]
          )
    

7.用户名和密码格式校验程序打印出菜单栏,选择1进行注册,选择2退出

  • 要求从键盘输入用户名和密码,校验格式是否符合规则,如果不符合,打印出不符合的原因,并提示重新输入

  • 用户名长度6-20,用户名必须以字母开头
  • 密码长度至少6位,不能为纯数字,不能有空格
=====欢迎======
1.注册
2.退出
==============
while True:
    print("""
=====欢迎=====
1.注册
2.退出
==============
    """)
    opt = input("请输入选项:")
    # 选项为1,即为注册,验证用户名和密码
    if opt == "1":
        # 验证用户名
        while True:
            username = input("请输入用户名:")
            # 如果用户名长度小于6或者大于20
            if len(username) < 6 or len(username) > 20:
                # 用户名长度小于6或者大于20且第一个字符不是字母
                if not username[0].isalpha():
                    print("用户名长度不符且第一个字符不是字母,请重新输入")
                    continue
                print("用户名长度不符,请重新输入")
                continue  # 中断本次循环,重新输入用户名
            # 长度符合,但是第一个字符不是字母
            elif not username[0].isalpha():
                print("用户名第一个字符不是字母,请重新输入")
                continue
            else:
                break  # 校验成功,跳出输入用户名环节
        # 验证密码
        while True:
            password = input("请输入密码:")
            # for循环检查是否有空格
            for i in password:
                # 检查每一个字符是否是空格
                if i.isspace():
                    # 有空格且密码过断
                    if len(username) < 6:
                        print("密码长度小于6位且有空格,请重新输入")
                        break  # 跳出内层for循环,继续执行输入密码的循环
                    # 包含空格,长度满足
                    else:
                        print("密码不能包含空格,请重新输入")
                        break
            # 如果没有空格,则进入下面else语句
            else:
                # 如果密码全是数字
                if password.isdigit():
                    if len(password) < 6:
                        print("密码长度小于6位且为纯数字,请重新输入")
                        continue  # 跳出当前循环,重新输入密码
                    print("密码为纯数字,请重新输入")
                    continue  # 跳出当前循环,重新输入密码
                # 不含空格,不为纯数字,长度小于6
                elif len(password)<6:
                    print("密码长度小于6位,请重新输入")
                    continue
                # 不含空格,不为纯数字,长度不小于6
                print("注册成功,您的用户名是%s,密码是%s" % (username, password))
                break  # 校验成功,退出输入密码环节

    elif opt == "2":
        # 退出
        print("bye!")
        break
    else:
        print("输入有误,请重新选择")

8.名片管理器v1.0

  • 控制姓名长度为6-20
  • 电话号码长度11
  • 性别只能允许输入男或女
  • 每一样信息不允许为空
while True:
    # 获取用户输入
    name = input("请输入姓名(6-20):")
    # 如果输入“QUIT”则退出程序
    if name == "QUIT":
        break
    gender = input("请输入性别(男或女):")
    company = input("请输入公司:")
    address = input("请输入公司地址:")
    phone = input("请输入联系方式(手机):")
    # 检测姓名输入是否符合
    if len(name) < 6 or len(name) > 20:
        print("姓名长度只能是6-20位")
        # 如果不正确直接重新开始 ,所以使用continue
        continue
    # 检测电话号码是否符合
    if len(phone) != 11:
        print("请输入有效的电话号码")
        continue
    # 控制性别的输入
    if gender not in "男女" and len(gender) != 1:
        print("请输入有效的性别(男或女)")
        continue
    # 控制所有数据不为空
    if company == "" or address == "":
        print("输入不能为空")
        continue
    print("添加成功")
    print("""
=======================
姓名:%s
性别:%s
公司:%s
公司地址:%s
手机:%s
=======================
    """ % (name, gender, company, address, phone))
    print("=*" * 20)

9.名片管理器v2.0

  • 在上一版本的基础上,增加可以添加多个名片的功能
  • 可以打印所有名片的功能
  • 可以删除名片的功能
cart_list = []
while True:
    print("      名片管理器V2.0")
    print("1.添加名片")
    print("2.删除名片")
    print("3.查看所有名片")
    print("4.退出")

    cmd = input("请输入命令:")
    # 添加名片
    if cmd == "1":
        # 获取用户输入
        name = input("请输入姓名(6-20):")
        gender = input("请输入性别(男或女):")
        company = input("请输入公司:")
        address = input("请输入公司地址:")
        phone = input("请输入联系方式(手机):")
        # 检测姓名是不是在6-20之间
        if len(name)<6 and len(name)>20:
            print("姓名长度只能是6-20位")
            # 如果不符合条件,那么重新输入,则使用continue
            continue
        # 检测电话号码是否有效的11位
        if len(phone) != 11:
            print("请输入有效的电话号码")
            # 如果不符合条件,那么重新输入,则使用continue
            continue
        # 控制性别的输入只能是男或女
        if gender not in "男女" and len(gender) != 1:
            print("请输入有效的性别(男或女)")
            # 如果不符合条件,那么重新输入,则使用continue
            continue
        # 所有数据不能为空,如果为空,那么重新输入
        if name=="" or gender=="" or company=="" or address=="" or phone=="":
            print("输入不能为空")
            continue
        # 创建新名片
        cart = [name,gender,company,address,phone]
        # 把名片添加到名片列表里
        cart_list.append(cart)
        print("添加成功")
    # 删除名片
    if cmd == "2":
        num = int(input("请输入要删除第几个名片"))
        # 因为下标号从0开始,所以需要-1
        cart_list.pop(num-1)
        print("删除成功")
    # 查看名片
    if cmd == "3":
        i = 1
        # 遍历名片列表
        for c in cart_list:
            print("%d. "%i,c)
            i += 1
    # 退出
    if cmd == "4":
        break

10.从键盘中输入5个学生的名字,存储到列表中,然后打印出每个学生名字中的第2个字母

# 从键盘中输入5个学生的名字,存储到列表中,然后打印出每个学生名字中的第2个字母
my_list = list()
for _ in range(5):
    name = input("请输入一个学生名字:")
    my_list.append(name)
print(my_list)
for name in my_list:
    value = name[1]
    print(value)

或者:

i = 1
# 存放学生的列表
student_list = []
# 依次添加5名学生
while i<=5:
    student = input("请输入第%d名学生的姓名:"%i)
    student_list.append(student)
    i += 1
# 遍历学生列表
for stu in student_list:
    print("%s的第二个字母为%s"%(stu,stu[1]))

 

推荐阅读