1. 简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型
答:首先,编译型与解释型语言都属于高级语言。高级语言需要转换成二进制,然后CPU运行,所以两者是根据转换二进制方式的不同而进行区分的。
编译型(翻译类):把我能读懂的代码编译(翻译)成机器能读懂的代码,然后让CPU运行。所以依赖编译器,写错的话需要重新编译运行,开发效率低。例如c c++ Delphi Go等等
解释型:通过解释器把源代码边解释成机器指令,边让CPU运行。所以要有解释器,系统要支持python(windows需要安装,Linus,mac默认自带),写错了直接改源码再翻译,不需要先翻译成二进制,开发效率高。例如python Java PHP
•执行效率: 编译型:翻译成了计算机直接能理解的语言后直接运行,所以执行效率高。
解释型:所有代码需要边执行边运行,不能生成二进制代码,运行效率低。
•跨平台性(Windows,Linus,): 编译型:通过操作系统运行我的源代码,就是说在不同的操作系统上调用不同的指令。跨平台性差
解释型:最大的特点就是跨平台,解释器做好了对不同平台的交互处理,一份源代码,所有平台可直接执行。
2. 执行 Python 脚本(script)的两种方式是什么
答:方法一:(内存操作)在windows命令行窗口键入python(事先你须安装好python,并配置好path),运行效果:
→
方法二:(硬盘操作)安装好Python后,它会自带一个IDLE编辑器,或者下载一个编辑器pycharm......
3. Pyhton 单行注释和多行注释分别用什么
答:一、python单行注释符号(#):#号右边的内容在执行的时候是不会被输出的
二、批量、多行注释符号:多行注释是用三引号''' '''包含,例如:
4.布尔值(bool)分别有什么
答:True 和Flase
5.声明变量注意事项有那些
答:声明变量:先赋值
下划线为官方命名方式。
6.如何查看变量在内存中的地址
答:id
(变量名)
#查看内存地址 , print(id(变量名))
7. 写代码
i. 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!
user_name=input('user_name:')
passwd=int(input('passwd:'))
if user_name=='seven' and passwd==123:
print('登陆成功')
else:
print('登陆失败')
i. 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
count=0
while count<3:
user_name = input('user_name:')
passwd = int(input('passwd:'))
if user_name=='seven' and passwd==123:
print('登陆成功')
break
else:
print('登陆失败')
count+=1
iii. 实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
count=0
while count<3:
user_name = input('user_name:')
passwd = int(input('passwd:'))
if user_name=='seven' or user_name=='alex' and passwd==123:
print('登陆成功')
break
else:
print('登陆失败')
count+=1
8.写代码
a. 使用while循环实现输出2-3+4-5+6...+100 的和
i=2
count1=0
count2=0
while i<=100:
if i%2==0:
count1+=i
else:
count2+=-i
i+=1
count=count1+count2
print(count)
i=2
h=0
while i <= 100:
if i%2 == 0:
h+=i
elif i%2 == 1:
h-=i
i+=1
print(h)
print(sum(map(lambda x: x * -1 if x % 2 == 0 else x, [x for x in range(100) if x != 88])))
b. 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12
i=1
while i<=12:
if i != 6 and i != 10:
print(i)
i+=1
c. 使用while 循环输出100-50,从大到小,如100,99,98...,到50时再从0循环输出到50,然后结束
count=100
while count>=50:
print(count)
count-=1
if count==50:
count=1
while count<=50:
print(count)
count+=1
break
d. 使用 while 循环实现输出 1-100 内的所有奇数
i=1
while i<=100:
print(i)
i+=2
i=1
while i<=100:
if i%2==1:
print(i)
i+=2
e. 使用 while 循环实现输出 1-100 内的所有偶数
i=2
while i<=100:
print(i)
i+=2
i=1
while i<=100:
if i%2==0:
print(i)
i+=1
f.分别用while和for range 循环实现输出1-2+3...-99的结果
i=1
h=0
while i<=99:
if i%2==0:
h+=i
elif i%2==1:
h-=i
i+=1
print(h)
h = 0
for i in range(100):
if i % 2 == 0:
h += i
if i % 2 == 1:
h -= i
print(h)
g.求1-100所有偶数的和
sum=0
for x in range(1,101):
if x % 2==0:
print(x)
sum=sum+x
print("累加和是:",sum)
9.现有如下两个变量,请简述 n1 和 n2 是什么关系?
n1 = 123456
n2 = n1
答:使用同一内存地址,只是变量名不同
10.制作趣味模板程序(编程题)
需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意显示
如:敬爱可爱的xxx,最喜欢在xxx地方干xxx
name=input('Name:')
address=input('Address:')
hobby=input('Hobby:')
print('敬爱可爱的%s,最喜欢在%s地方干%s' % (name,address,hobby))
11. 输入一年份,判断该年份是否是闰年并输出结果。(编程题)
注:凡符合下面两个条件之一的年份是闰年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。
year=int(input('Year:'))
if year%4==0 or year%400==0 and year%100!=0:
print('你猜的是闰年')
else:
print('你猜错了')
12.假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?(编程题)
持有=10000年=0
利率=0.0325
while 持有<20000:
年+=1
持有=持有*(1+利率)
print('%s年以后,存款会翻番'%year)
13.编写登陆接口
基础需求:
- 让用户输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后退出程序
升级需求:
- 可以支持多个用户登录 (提示,通过列表存多个账户信息)
- 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
一. 基础需求
user_name='alex'
passwd=123
count=0
while count<3:
n1=input('请输入你的用户名:')
n2= int(input('请输入你的密码:'))
if n1==user_name and n2==passwd:
print('Welocome '.center(20,'-'))
break
else:
if n1==user_name and n2!=passwd:
print('你的密码错误')
elif n1!=user_name and n2==passwd:
print('你的用户名错误')
else:
print('你的用户名和密码都错误')
count+=1
if count==1:
print('您还有两次机会')
elif count==2:
print('您还有一次机会')
elif count==3:
print('你的认证登陆失败'.center(20,'-'))
二. 升级需求
user_info = {
'alex': '123',
'shanshan': '456',
'longting': '789'
}
f = open('D:\lock_user\sa.txt', 'r', encoding='utf-8')
lock_users = f.readlines()
exit_flag = False
count = 0
def put():
global exit_flag
# 声明全局变量
exit_flag = True
while count < 3:
user_name = input('输入你的用户名:')
password = input('输入你的密码:')
if user_name in user_info and user_name not in lock_users:
if password == user_info[user_name]:
print('登陆成功'.center(30, '*'))
put()
break
else:
print('你的密码错误'.center(30, '*'))
count += 1
if count < 3:
print('你还有%s次登陆机会' % (3-count))
elif count == 3:
print('你的认证登陆失败,账号已被锁定'.center(20, '*'))
f = open('D:\lock_user\sa.txt', 'w', encoding='utf-8')
f.write(user_name)
f.close()
put()
break
elif user_name in lock_users:
print('对不起,你的用户已被锁定!')
put()
break
else:
print('用户名不存在!')
put()
14.猜年龄
练习1:猜年龄游戏
要求:
- 允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出
练习2:猜年龄游戏升级版
要求:
- 允许用户最多尝试3次
- 每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序
- 如何猜对了,就直接退出
count=0
age=22
while count<3:
guess=int(input("你猜的年龄是:"))
if guess==age:
print('--------恭喜你猜对了----------')
break
elif guess>age:
print('猜大了')
else :
print('猜小了')
count+=1
count=0
age=22
while count<3:
guess=int(input("你猜的年龄是:"))
if guess==age:
print('--------恭喜你猜对了----------')
break
elif guess>age:
print('猜大了')
else :
print('猜小了')
count+=1
if count==3:
print('-------游戏结束,你是否还想玩儿-------')
print('输入Y/y,继续玩儿游戏, 输入N/n则退出')
choice=input('请选择:')
if choice=='Y' or choice=='y':
count=0
elif choice=='N' or choice=='n':
print('你将退出游戏')