引用:

Lab 1

对于任何Web应用程序登录,都需要根据数据库规则验证用户密码. 假定某个Web应用程序,

其有效密码的条件是:

  • a)密码长度应在6到16个字符之间
  • b)至少要有一个数字
  • c)至少包含有[$ @!*] 中一个特殊字符(中括号不计入).
  • d)应至少包含一个小写字母和至少一个大写字母

    要求实现一个lab1.py, 该程序实现有函数 check_valid_password,

入口参数:

  • 字符串: 用户密码

函数返回值(按顺序):

  • 1.布尔值: True或False, True表明有效的用户密码, False表名用户密码无效.
  • 2.字符串: 具体的错误信息(中文或英文皆可), 或者'ok' (表示没有错误)

Lab 2:

编写一个Python函数,该函数接受用户的英文句子(不用校验)并显示以下内容:

  • a)中间的单词 (如果是偶数个, 则取左边的那个)
  • b)句子中最长的单词
  • c)颠倒句子中的所有单词

以上参考答案:

Lab1

# lab1.py
def check_valid_password(password: str):
if len(password) < 6 or len(password) > 16:
return False, '密码长度在6-16个字符之间'
has_number, has_lowercase, = False, False
has_uppercase, special_char = False, False
for s in password:
if s.isnumeric():
has_number = True
if s.lower():
has_lowercase = True
if s.isupper():
has_uppercase = True
if s in ['$', '@', '!', '*']:
special_char = True
if has_number is False:
return False, '缺少数字'
if has_lowercase is False:
return False, '缺少小写字母'
if has_uppercase is False:
return False, '缺少大写字母'
if special_char is False:
return False, '缺少特殊字符'
return True, 'ok'

Lab1的检验程序

from lab1 import check_valid_password

def check_your_lab1():
assert len(check_valid_password('hello')) == 2 # 检测返回值个数
assert check_valid_password('hello')[0] is False # 字段长度校验
assert check_valid_password('hello hi ha')[0] is False # 缺少数字校验
assert check_valid_password('password2')[0] is False # 缺少特殊字符
assert (True, 'ok') == check_valid_password('Password2@') if __name__ == '__main__':
check_your_lab1()

Lab2

def middle(s):
sliced_string = s.split(' ')
valid_string = []
for word in sliced_string:
temp = ''.join(e for e in word if e.isalnum())
valid_string.append(temp)
length = len(valid_string)
if length == 0:
return ""
elif length % 2 != 0:
return valid_string[length//2]
elif length % 2 == 0:
return valid_string[length//2 - 1] def max_long(s):
current_max = 0
max_long_word = ''
sliced_string = s.split(' ')
for word in sliced_string:
if len(word) > current_max:
current_max = len(word)
max_long_word = word
return ''.join(e for e in max_long_word if e.isalnum()) def reverse(s):
sliced_string = s.split(' ')
valid_string = []
for word in sliced_string:
temp = ''.join(e for e in word if e.isalnum())
valid_string.append(temp)
return ' '.join(valid_string[::-1]) if '__main__' == __name__:
input_string = input('请输入一个句子')
print('你输入的句子为: ', input_string) # 示例: "good morning! I am bob!"
print('middle: ', middle(input_string))
print('longest word: ', max_long(input_string))
print('reverse: ', reverse(input_string))

演示:

请输入一个句子>? "good morning! I am bob!"
你输入的句子为: "good morning! I am bob!"
middle: I
longest word: morning
reverse: bob am I morning good

Python Lab Assignments的更多相关文章

  1. 【计算机网络】Stanford CS144 Lab Assignments 学习笔记

    本文为我的斯坦福计算机网络课的编程实验(Lab Assignments)的学习总结.课程全称:CS 144: Introduction to Computer Networking. 事情发生于我读了 ...

  2. Coding the Matrix作业Python Lab及提交方法

    Coding the Matrix: Linear Algebra through Computer Science Applications 这是一门用python实现矩阵运算的课,第一次作业就感觉 ...

  3. python写的自动签到脚本。

    等以后有时间补上. 附上代码: #! /usr/bin/env python # coding:utf-8 #-----------------------------------------学号和密 ...

  4. Python 第一個程序

    以默認方式安裝,會將 Python 安裝在目錄 C:\Users\Administrator\AppData\Local\Programs\Python\Python37 下: 有趣的是: 在此目錄下 ...

  5. 《深入理解计算机系统》实验一 —Data Lab

    本文是CSAPP第二章的配套实验,通过使用有限的运算符来实现正数,负数,浮点数的位级表示.通过完成这13个函数,可以使我们更好的理解计算机中数据的编码方式. 准备工作   首先去官网Lab Assig ...

  6. (转)Awesome Courses

    Awesome Courses  Introduction There is a lot of hidden treasure lying within university pages scatte ...

  7. Implementing x / 6 Using Only Bit Manipulations

    This is an interesting question from one of the lab assignments in Introduction to Computer Systems, ...

  8. 深入理解计算机(CSAPP)资源汇总

    用于资源记录. 视频: 卡内基梅隆大学 Introduction to Computer Systems CMU 15-213 Fall 作业(labs): Lab Assignments

  9. 《CSAPP》实验一:位操作

    <CSAPP>号称程序员圣经,虽然中文译名为<深入理解计算机系统>,但其实没那么"深",只是覆盖面很广,一般用作计算机专业大一导论课的教科书.早就听闻书上配 ...

随机推荐

  1. 笔记8:Linux知识

    linux学习笔记 1 Linux介绍 1.1 基本知识 应用领域:服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQ ...

  2. Linux(CentOS)上,安装了Apache(httpd)后,其他的电脑无法访问的原因

    今天试了下在虚拟机上利用CentOS系统的yum命令安装好了httpd(apache2.2),然后在windows系统下访问此虚拟机的ip地址,却访问不了. 因为前段时间有知道过iptable的限制, ...

  3. 201871010111-刘佳华《面向对象程序设计(java)》第二周学习总结

    201871010111-刘佳华<面向对象程序设计(java)>第二周学习总结 项目 内容 这个作业属于哪个课程 <https://www.cnblogs.com/nwnu-daiz ...

  4. H5 + 3D + AR/VR 综述

    近年来,H5,3D,AR,VR逐步进入人们的视野,H5生动活泼,3D注重视觉效果,AR打造虚实结合,VR则更加注重虚拟现实的产生. 第一部分,案例展示: H5+VR案例: 故事<不要惊慌,没有辐 ...

  5. CF1194F Crossword Expert(数论,组合数学)

    不难的一题.不知道为什么能 $2500$…… 不过场上推错了一直不会优化…… 首先考虑 $f_i$ 表示恰好做完前 $i$ 道题的概率. 这样很难算.修改一下,$f_i$ 表示做完至少 $i$ 道题的 ...

  6. [LeetCode] 565. Array Nesting 数组嵌套

    A zero-indexed array A of length N contains all integers from 0 to N-1. Find and return the longest ...

  7. javaSript 处理电脑和浏览器pc端缩放对页面的影响

    由于用户的个人习惯或其他原因,可能会调整到电脑上的缩放比例或者浏览器的缩放比例,如果访问页面会看起来比较不好看, 电脑上的缩放: 浏览器上的缩放: 解决方法: function detectZoom( ...

  8. SpringBoot-dubbo自定义负载均衡实现简单灰度

    本文介绍如何利用dubbo自定义负载实现简单灰度(用户纬度,部分用户访问一个服务,其余访问剩余服务). 其实在这之前,对dubbo了解的也不是很多,只是简单的使用过,跑了几个demo而已,但是得知接下 ...

  9. oracle--报错 ORA-00257

    [oracle@oracle01 ~]$ rman target/ RMAN-: =========================================================== ...

  10. ssm架构数据库连接字符串配置到外部报错

    报错: Could not load driverClass ${jdbc.driver} 解决办法: 将 <bean class="org.mybatis.spring.mapper ...