本周作业:
作业答案参考:
1、https://www.cnblogs.com/linhaifeng/articles/7133167.html#_label14
2、https://www.cnblogs.com/linhaifeng/articles/7133167.html#_label17
作业内容:
1 简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型
编译型语言:编译器一次性的把代码编译成计算机能识别的,在运行
解释型语言:解释器一行一行进行解释并运行
编译型:c,c++,go
解释型:python,php,shell
2、执行 Python 脚本的两种方式是什么
交互式,脚本的方式
3、Pyhton 单行注释和多行注释分别用什么?
单行注释:#
多行注释:'''''',""""""(一般用于文件开头,对整个文件的解释说明)
4、布尔值分别有什么?
显示布尔值:通过定义方式(tag = True),通过运算(4>2)
隐式布尔值:0,None,空(空字符串,空字典,空列表)
5、声明变量注意事项有那些?
变量命名可用字母数字下划线,要见名知意
首字符不能为数字,不能使用关键字,不能使用中文
6、如何查看变量在内存中的地址?
print(id(变量名))
7、写代码
实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!
实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
times = 0
while times <= 3:
username = input("请输入用户名: ")
username = username.lower()
pwd = input("请输入密码: ")
if username == ("seven" or "alex") and pwd == "123":
print("登录成功")
break
else:
print("登录失败,您还有%s次机会重新输入" % (2-times))
if times == 2:
print("您已输错三次,账户锁定")
break
times += 1
8、写代码(循环1-100奇偶数,)
a. 使用while循环实现输出2-3+4-5+6...+100 的和
b. 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12 使用 while 循环实现输出 1-100 内的所有奇数
e. 使用 while 循环实现输出 1-100 内的所有偶数
a.使用while循环实现输出2 - 3 + 4 - 5 + 6… + 100的和
total = 0
i = 2
while i <= 100:
if i % 2 == 0:
total += i
else:
total -= i
i += 1
print(total)
b. 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12
# 方法一
i = 1
while i <= 12:
if i == 6 or i == 10:
i += 1
continue
print(i)
i += 1
# 方法二
i = 1
while i not in [6,10]:
print(i)
i+=1
使用 while 循环实现输出 1-100 内的所有奇数
i = 1
while i <= 100:
if i % 2 == 1:
print(i)
i += 1
e. 使用 while 循环实现输出 1-100 内的所有偶数
i = 1
while i <= 100:
if i % 2 == 0:
print(i)
i += 1
9、现有如下两个变量,请简述 n1 和 n2 是什么关系?
n1 = 123456
n2 = n1
n1和n2的值相等,且id地址一致
10、for循环嵌套打印九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print("%d*%d=%2d " % (i,j,i*j),end="")
print()
11、for循环嵌套打印九九金字塔
# 方法一
n = 18
hang = n // 2 + 1
for i in range(1,hang):
kongge = hang - i
print(kongge * " ",end="")
for j in range(1,i+1):
print("%d*%d=%2d "%(j,i,i*j), end="")
print()
# 方法二
# 先获取打印金字塔层数
num = 9
# 获取打印金字塔的层数
for i in range(1,num+1):
# 打印空格数:(塔的总层数 - 当前层数)
for z in range(num-i):
print("\t", end="")
# 打印里面的表达式
for j in range(1,i+1):
print("%s*%s=%s\t"%(j,i,j*i),end="")
print()
12 作业:编写登陆接口
基础需求:
让用户输入用户名密码
认证成功后显示欢迎信息
输错三次后退出程序
times = 0
while times < 3:
username = input("请输入用户名:")
pwd = input("请输入密码:")
if username == "juanfu" and pwd == "666":
print("欢迎来到王者农药")
break
else:
print("账号或密码错误,您还有%s次机会重新输入"%(2-times))
if times == 2:
print("您已输错三次")
times+=1
13、选做作业:
升级需求:
可以支持多个用户登录 (提示,通过列表存多个账户信息)
用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
accountlist = ["juanfu","huasheng"]
pwdlist = ["111","222"]
blacklist = []
sign = True
while sign:
name = input("请输入用户名:")
if name in accountlist:
with open("black.txt",mode="a+",encoding="utf-8")as fp:
fp.seek(0)
lst = fp.readlines()
for i in lst:
blacklist.append(i.strip())
if name in blacklist:
print("抱歉,您的账户已被锁定")
else:
num = accountlist.index(name)
times = 1
while times <= 3:
pwd = input("请输入密码:")
if pwd == pwdlist[num]:
print("登陆成功")
sign = False
break
else:
print("用户名或密码错误,您还有%s次机会输入"%(3-times))
if times == 3:
print("输错3次,账户锁定")
with open("black.txt",mode="a+",encoding="utf-8")as fp:
res = name + "\n"
fp.write(res)
times+=1
else:
print("该用户根本不存在")