1.简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型?

  • 编译型: 需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连起来生成可执行文件。
    优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
    缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。
    代表语言:C、C++、Pascal、Object-C以及最近很火的苹果新语言swift
  • 解释型: 解释性语言的程序不需要编译,相比编译型语言省了道工序,解释性语言在运行程序的时候才逐行翻译。
    优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。
    缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。
    代表语言:JavaScript、Python、Erlang、PHP、Perl、Ruby

2.执行Python脚本的两种方式?

  • Python解释器交互模式:调试方便,无法永久保存代码
  • Python脚本文件的方式:永久保存代码

3.Python单行注释和多行注释分别用什么?

  • 单行注释:注释行启示位置添加 --- #号
  • 多行注释:注释行的上一行和下一行分别添加 --- """(三个双引号)

4.布尔值分别是什么?

  • true 和 false

5.声明变量注意事项有哪些?

   变量定义规范

  • 变量名只能由字母、数字、下划线组成
  • 变量名首字符不可使用数字
  • 变量名不可使用关键字['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

   变量定义方式

  • 驼峰式:UserName = ocean
  • 下划线:user_name = ocean (推荐方式)

不好的定义方式

  • 变量名使用中文、拼音
  • 变量名过长
  • 变量名词不达意

6.如何查看变量名的内存地址?

   username = ocean

   id(username)

   4156456165461

7.码码

#实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!

username = input("用户名>>:")
password = input("密码>>:")

if username == "seven" and password == "123":
    print("登陆成功")
else:
    print("登陆失败")


#实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次


count = 0
while count < 3:
    username = input("用户名>>:")
    password = input("密码>>:")
    if username == "seven" and password == "123":
        print("登陆成功")
        break
    else:
        print("登陆失败")
        count+=1
        continue

#实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次

#Method1
count = 0
while count < 3:
    username = input("用户名>>:")
    password = input("密码>>:")
    if username in ("seven","alex") and password == "123":
        print("登陆成功")
        break
    else:
        print("登陆失败")
        count+=1
        continue

#Method2
for i in range(3):
    username = input("用户名>>:")
    password = input("密码>>:")
    if username in ("seven","alex") and password == '123':
        print("登录成功")
        break
    else:
        print("登录失败")
        continue

8.码码

#使用while循环实现输出2-3+4-5+6...+100 的和

result = 0
i = 2
while i < 101:
    if i%2 == 1:
        i+= 1
        result+= 1
    else:
        i+=1
print(result)


#使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12 

i = 1
while i<13:
    if i not in (6,10):
        print(i)
        i+=1
    else:
        i+=1

#使用 while 循环实现输出 1-100 内的所有奇数

i = 1
while i <100:
    if i % 2 ==1:
        print(i)
        i+=1
    else:
        i+=1

#使用 while 循环实现输出 1-100 内的所有偶数

i =1
while i < 101:
    if i % 2 ==0
        print(i)
        i+=1
    else:
        i+=1

9.编写登录接口

#基础需求:

#让用户输入用户名密码
#认证成功后显示欢迎信息
#输错三次后退出程序

#Method1
name = "尼古拉斯赵四"
passwd = "123456"

for i in range(3):
    input_name = input("用户名>>:")
    input_pass = input("密码>>:")
    if input_name == name and input_pass == passwd :
        print("欢迎光临红浪漫")
        break
    else:
        i+=1
        print('登录失败,账号或密码错误')

#Method2
user_list = {
        '尼古拉斯·赵四':{'password':'123','count':0},
        '莱昂纳多·小沈阳':{'password':'123','count':0},
        '约翰尼·宋小宝':{'password':'123','count':0},
        '克里斯蒂安·刘能':{'password':'123','count':0},
        }

count = 0
while True:
    input_name = input('账号>>:')

    if not input_name in user_list:
        print('账号不存在')
        continue
    if user_list[input_name]['count'] > 2 :
        print('尝试次数过多,账号锁定')
        break

    input_pass = input('密码>>:')

    if input_pass == user_list[input_name]['password']:
        print('欢迎光临红浪漫')
        break
    else:
        print('账号或密码错误')
        user_list[input_name]['count'] += 1




#升级需求:

#可以支持多个用户登录 (提示,通过列表存多个账户信息)
#用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)


#account_locked.txt内容:user1|user2|user3
user_list = {
        '尼古拉斯·赵四':{'password':'123','count':0},
        '莱昂纳多·小沈阳':{'password':'123','count':0},
        '约翰尼·宋小宝':{'password':'123','count':0},
        '克里斯蒂安·刘能':{'password':'123','count':0},
        }

count = 0
while True:
    input_name = input('账号>>:')

    if not input_name in user_list:
        print('账号不存在')
        continue
        
    with open('account_locked.txt','r') as f:
        lock_users=f.read().split('|')
        if input_name  in lock_users:
            print('用户%s已经被锁定' %input_name)
            break
            
    if user_list[input_name]['count'] > 2 :
        print('尝试次数过多,账号锁定')
        with open('account_locked.txt','a') as f:
            f.write('%s|' $input_name)
        break

    input_pass = input('密码>>:')

    if input_pass == user_list[input_name]['password']:
        print('欢迎光临红浪漫')
        break
    else:
        print('账号或密码错误')
        user_list[input_name]['count'] += 1