Python学习二后作业

Python学习 Day 2后作业

1. a,b = 6,8 想让 a=8,b=6,怎么办?用两种方法实现
  • 方法一
# a,b = 6,8 想让 a = 8 b = 6,怎么办
a = 6
b = 8
print("没有赋值前 a的值是 %i ,b的值是 %i" % (a, b))

# 将a = 6的值传给c进行备份,c的值为6,
c = a
print("c = a之后 a的值是 %i ,b的值是 %i" % (a, b))
# 将a的值更改为b的
a = b
print("a = b之后 a的值是 %i ,b的值是 %i" % (a, b))
# 将 备份的a值传给b
b = c
print("b = c之后 a的值是 %i ,b的值是 %i" % (a, b))

运行结果是:

没有赋值前 a的值是 6 ,b的值是 8
c = a之后 a的值是 6 ,b的值是 8
a = b之后 a的值是 8 ,b的值是 8
b = c之后 a的值是 8 ,b的值是 6
  • 方法二
a = 6
b = 8
print("初始 a的值是 %i ,b的值是 %i" % (a, b))
# 将a,b放入列表
list_test = [a, b]
print(list_test)
# 列表中就两个值,所以a取列值1的变量,b取列值0的变量
a = list_test[1]
b = list_test[0]
print("变幻后 a的值是 %i ,b的值是 %i" % (a, b))

运行结果:

初始 a的值是 6 ,b的值是 8
[6, 8]
变幻后 a的值是 8 ,b的值是 6
2. 完成字符串的逆序以及统计
  • 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
  • 打印字符串长度
  • 使用切片逆序打印字符串
# 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
# 打印字符串长度
# 使用切片逆序打印字符串

# 定义str_len存储输入字符串的长度
str_len = 0
# 定义str_list列表,将输入字符串转换为列表
str_list = []
# 定义倒序列表 str_invertlist,接收str_list的倒序值
str_invertlist = []
# 如输入字符串长度 >= 31,则重新进入循环,要求再次输入,否则跳出循环结束
while True:
    str_in = input("请输入一个长度低于31的字符串:")
    str_len = len(str_in)
    # 判断输入的字符串长度是否 < 31
    if str_len < 31:
        str_list = str_in
        # 将str_list倒序后输入进str_invertlist列表
        str_invertlist = str_list[::-1]
        print("您输入的字符串长度为%d,字符串为%s:" % (str_len, str_in))
        # 如将输出提示加在列表遍历中,会显示异常
        print("您输入的字符串倒着长这样:", end = '')
        # 循环遍历倒序列表str_invertlist,输出不换行
        for invertlist in str_invertlist:
            print("%s" % invertlist, end='')
        # 如输入字符产长度 < 31,则跳出循环
        break
    # 输入字符长度 >= 31,则提示错误,再次进入while循环
    else:
        print("您输入的字符串长度为%i,大于等于31了,请重新输入!!!" % str_len)

运行结果:

请输入一个长度低于31的字符串:the python is intersting ! i'll work hard!
您输入的字符串长度为42,大于等于31了,请重新输入!!!
请输入一个长度低于31的字符串:python is intersting ! i'll work
您输入的字符串长度为32,大于等于31了,请重新输入!!!
请输入一个长度低于31的字符串:python is intersting ! i'
您输入的字符串长度为25,字符串为python is intersting ! i':
您输入的字符串倒着长这样:'i ! gnitsretni si nohtyp
3. 要求从键盘输入用户名和密码,检验格式是否符合规则,如果不符合,打印出不符合的原因,并提示重新输入
  • 用户名长度6-20,用户名必须以字母开头
  • 密码长度至少6位,不能为纯数字,不能有空格
# 3. 要求从键盘输入用户名和密码,检验格式是否符合规则,如果不符合,打印出不符合的原因,并提示重新输入
# * 用户名长度6-20,用户名必须以字母开头
# * 密码长度至少6位,不能为纯数字,不能有空格


"""
1. 如果用户名和密码任意一个没有填写,则提示用户名或密码不能为空
2. 用户名长度要在6-20之间,并且首字符是字母,将用户名首字符取出,通过字符函数str.isalpha()
3. 密码的长度 >= 6 ,不能只有数字str.isdecimal(),不能有空格string.find(' ',0,len(string))
"""

while True:
    user = input("请输入用户名:")
    password = input("请输入密码:")
    user_len = len(user)  # 取输入用户名的字符长度
    pass_len = len(password)   # 取输入密码的字符长度
    # 优先判断账号密码中是否有空,无论谁空都返回要求重新输入
    if user_len == 0 or pass_len == 0:
        print("用户名或密码不能为空!请重新输入!")
    # 当账号密码不为空,则继续判断
    else:
        first_user = user[0]    # 取用户名第一个字符
        firstISalpha = first_user.isalpha()   # 查看用户名第一个字符串是不是字母
        passONLYnum = password.isdecimal()   # 密码是否纯数字
        spaceHave = password.find(' ', 0, pass_len)    # 密码中是否有空格,如果没有则返回数字-1
        # 当用户名长度小于6或大于20,首字符不是字母时,则告知错误,重新输入
        if user_len < 6 or user_len >20 or firstISalpha == False:
            print("用户名长度6-20,用户名必须以字母开头,重输!")
        # 当用户名输入条件符合,则判断密码条件是否满足
        else:
            # 密码长度小于6、密码为纯数字、密码含空格都会返回,要求重新输入
            if pass_len < 6 or passONLYnum == True or spaceHave != -1:
                print("密码长度至少6位,不能为纯数字,不能有空格,重输!")
            # 所有条件都满足,则打印出账号和密码
            else:
                print("用户名是%s,密码是%s" % (user,password))
                break   # 退出整个循环




运行结果:

请输入用户名:
请输入密码:123
用户名或密码不能为空!请重新输入!
请输入用户名:123
请输入密码:
用户名或密码不能为空!请重新输入!
请输入用户名:a1234
请输入密码:123
用户名长度6-20,用户名必须以字母开头,重输!
请输入用户名:a12345
请输入密码:12345
密码长度至少6位,不能为纯数字,不能有空格
请输入用户名:a12345
请输入密码:123a 34
密码长度至少6位,不能为纯数字,不能有空格
请输入用户名:a12345
请输入密码:234_987
用户名是a12345,密码是234_987
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值