1 练习题
#
# 简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型
# 相同点:都是用人能理解的方式编写语言,代码不直接作用在硬件上,是通过翻译转换成计算机所能理解的语言。
# 编译型:类似与谷歌翻译,翻译一次以后不需要再次翻译,相对解释型语言而言,执行效率高。Java和c、c++
# 解释型语言:类似于同声传译,每次翻译每次都要重新翻译,相对编译型语言而言,执行效率低。python
# 执行 Python 脚本的两种方式是什么
# 交互式:优点是输入一行代码就可以看到一行代码,很快反馈cmd。缺点是暂时存储在内存,退出即消失。
# 命令行:是直接将代码写在硬盘上,需要用的时候直接调出去用,比如将代码存在D:\test.txt。
# 取用的时候就是python D:\test.txt。经过运行我们发现后缀名并不影响程序的使用,但是约定俗称我们一般将后缀名
# 命名为.py。
# 补:python解释器启动是的三个阶段:1、先启动python解释器 2、将在硬盘中的代码当成普通文本读入到内存
# 3、python解释器开始运行刚读入内存的代码
# Pyhton 单行注释和多行注释分别用什么?
# 单行注释是用来解释单行代码,多行注释是用来解释多行代码。多行注释可以分行
# 布尔值分别有什么?
# 在python中所有值都自带布尔值,只有0、none、空的布尔值为假,其余全为真。
# 声明变量注意事项有那些?
# 原则是先定义后引用
# 定义变量名时注意变量名的语法规定(1、变量名是由字母数字下划线组成2、变量名不能以数字开头3、变量名不能以python关键字命名)
# 变量值的三种特征(1、id:是变量名在内存中的唯一标识2、type类型:不同类型的值记录不同的状态3、值:就是值本身)
# 如何查看变量在内存中的地址?
# 查看变量值的id,id是变量值在内存中的唯一标识
# 写代码
# 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!
# name = input('用户名: ')
# pwd =int(input('密码: '))
# if name =='seven' and pwd ==123:
# print('登陆成功')
# else:
# print('登陆失败')
# 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
# count=0
# while count<3:
# name=input('用户名:')
# pwd=input('密码:')
# if name=='seven' and pwd =='123':
# print('登陆成功')
# break
# else:
# print('登陆失败')
# count+=1
# 实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
# count=0
# while count <3:
# name=input('用户名:')
# pwd=input('密码:')
# if name=='seven' or 'alex' and pwd =='123':
# print('登录成功')
# break
# else:
# print('登陆失败')
# count+=1
# 写代码
# a. 使用while循环实现输出2-3+4-5+6...+100 的和
# count=2
# res=0
# while count<=100:
# if count%2==0:
# res+=count
# else:
# res-=count
# count+=1
# print(res)
# b. 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12
# count=0
# while count<12:
# if count==5:
# count+=1
# continue
# # break
# count+=1
# print(count)
# 使用 while 循环实现输出 1-100 内的所有奇数
# count=0
# while count<100:
# if count%2==1:
# print(count)
# count+=1
# count=0
# while count<100:
# if count%2!=0:
# print(count)
# count+=1
# e. 使用 while 循环实现输出 1-100 内的所有偶数
# count=1
# while count<=100:
# if count%2==0:
# print(count)
# count+=1
# 现有如下两个变量,请简述 n1 和 n2 是什么关系?
# n1 = 123456
# n2 = n1
# n2就是将n1的值赋给n2,本质上值和id都没有改变,是一个浅copy。
# 打印九九乘法表
# 方法一:不换行打印
"""for i in range(1,10):
for j in range(1,i+1):
print('%s*%s=%s' %(j,i,j*i),end=' ')
print()
"""
# 方法二
# for i in range(1,10):
# x=""
# for j in range(1,i+1):
# x+='%s*%s=%s ' %(j,i,j*i)
# print(x)
# 打印金字塔
# #max_level=5
# * #current_level=1,空格数=4,*号数=1
# *** #current_level=2,空格数=3,*号数=3
# ***** #current_level=3,空格数=2,*号数=5
# ******* #current_level=4,空格数=1,*号数=7
# ********* #current_level=5,空格数=0,*号数=9
# 方法一:
# " "=max_level-current_level=hight-i
# '*'=2*current_level-1=2*i-1
# max_level=hight+i
#current_level=hight
# hight=int(input('层数:'))
# for i in range(1,hight+1):
# print(" "*(hight-i) +'*'*(2*i-1))
# 方法二:
# " "=hight-i #i 就是当前层
# "*"=2*i-1
# hight=int(input('层数:'))
# for i in range(1,hight+1):
# print(" "*(hight-i),end=" ")
# print("*"*(2*i-1),end=" ")
# print()
# 2 作业:编写登陆接口
# 基础需求:
# 让用户输入用户名密码
# 认证成功后显示欢迎信息
# 输错三次后退出程序
# count=0
# while count <3:
# name=input('用户名:')
# pwd=input('密码:')
# if name =='sybil' and pwd=='123123':
# print('欢迎您!')
# break
# else:
# print('用户名或者密码错误!')
# count+=1
# 用户名错误直接退出
# count=0
# while count <3:
# name=input('用户名:')
# if name =='sybil':
# pwd = input('密码:')
# count+=1
# if pwd=='123123':
# print('欢迎您!')
# break
# else:
# print('用户名错误!')
# count+=1
# 写代码,有如下变量,请按照要求实现每个功能 (共6分,每小题各0.5分)
# name = " aleX"
# 1) 移除 name 变量两边的变量,并输出处理结果
# name = "_aleX"
# print(name.strip('_')) alex
# 2) 判断 name 变量对应的值是否以 "al" 开头,并输出结果
# print(name.startswith('al')) False
# 3) 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
# print(name.endswith('X')) True
# 4) 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
# print(name.replace('l','p')) apeX
# 5) 将 name 变量对应的值根据 “l” 分割,并输出结果。
# print(name.split('l')) [' a', 'eX']
# 6) 将 name 变量对应的值变大写,并输出结果
# print(name.upper()) ALEX
# 7) 将 name 变量对应的值变小写,并输出结果
# print(name.lower()) alex
# 8) 请输出 name 变量对应的值的第 2 个字符?
# name = " aleX"
# print(name[2:3]) l
# 9) 请输出 name 变量对应的值的前 3 个字符?
# print(name[:4:]) ale
# 10) 请输出 name 变量对应的值的后 2 个字符?
# print(name[:2:-1]) Xe
# 11) 请输出 name 变量对应的值中 “e” 所在索引位置?
# print(name.find('e') ) 3
# print(name.index('e')) 3 应该是用index来做
# 12) 获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。
# name='oldboy'
# print(name[:(len(name)-1)]) oldbo