Part 1 习题

1、简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型
2、执行 Python 脚本的两种方式是什么
3、Pyhton 单行注释和多行注释分别用什么?
4、布尔值分别有什么?
5、声明变量注意事项有那些?
6、如何查看变量在内存中的地址?
7、写代码
(1) 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!
(2)实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
(3)实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次 8、写代码
  a. 使用while循环实现输出2-3+4-5+6...+100 的和
  b. 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12
  c. 使用while 循环输出100-50,从大到小,如100,99,98...,到50时再从0循环输出到50,然后结束
  d. 使用 while 循环实现输出 1-100 内的所有奇数
  e. 使用 while 循环实现输出 1-100 内的所有偶数 9、现有如下两个变量,请简述 n1 和 n2 是什么关系?   n1 = 123456
  n2 = n1 10、制作趣味模板程序(编程题)
  需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意显示
  如:敬爱可爱的xxx,最喜欢在xxx地方干xxx 11、输入一年份,判断该年份是否是闰年并输出结果。(编程题)
  注:凡符合下面两个条件之一的年份是闰年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。 12、假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?(编程题) 13、使用while,完成以下图形的输出 *
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
14、路飞决定根据销售额给员工发提成,提成为阶梯制,假设一个销售人员基本工资为3000元, 每月业绩低于5万元,无提成,5万至10万,提成3%,10万至15万提成5%,15万-25万提成8%,25万至35万提成10%,35万以上,提成15%。 从键盘获取用户当月业绩,计算其工资+提成的总额。 15、北京地铁交通价格调整为:6公里(含)内3元;6公里至12公里(含)4元;12公里至22公里(含)5元;22公里至32公里(含)6元;32公里以上部分, 每增加1元可乘坐20公里。使用市政交通一卡通刷卡乘坐轨道交通,每自然月内每张卡支出累计满100元以后的乘次价格给予8折优惠;满150元以后的乘次给予5折优惠,假设每个月,小明都需要上20天班,每次上班需要来回1次,即每天需要乘坐2次同样路线的地铁,编写程序,从键盘获取距离,帮小明计算每月的总花费。 16、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 综合作业:
编写登陆接口 基础需求:
让用户输入用户名密码
认证成功后显示欢迎信息
输错三次后退出程序
升级需求:
可以支持多个用户登录 (提示,通过列表存多个账户信息)
用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)

Part2 习题一参考答案

  1:

编译型语言:
使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。
特点:
在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件。
执行方式:
源代码 --> 编译(一次)--> 目标代码 --> 执行(多次)-->输出 解释型语言:
使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。
特点:
解释型语言不需要事先编译,其直接将源代码解释成机器码并立即执行,所以只要某一平台提供了相应的解释器即可运行该程序。
执行方式:
源代码 --> 解释器(每次执行都需要解释)--> 输出 编译型:C、C++、C#
解释型:Python、PHP、Rudy、Java

  2:

方式一:
./hello.py.shell shell直接调用python脚本,shell把hello.py当成一般的脚本看待,不把它当成Python脚本。
示例:
#!/usr/bin/env python #指出代码的执行程序,同时为了防止操作系统用户没有将python装在默认的/usr/bin路径里 ,此时首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。
#-*- coding:utf-8 -*- #声明编码
print("Hello world!\n") # 输出:Hello world! 方式二:
python hello.py 调用Python解释器来调用Python脚本
示例:
#! /usr/bin/env python #此时可不需要
# -*- coding:utf-8 -*-
print("Hello world!\n")

  3:

单行注释:#
多行注释:''' ''' 或 """ """

  4:

布尔值:True 和 False
布尔值为False的有:[] 、()、{}、0、False等

  5:

模块名,包名:小写字母,单词之间用“_”分割
类名:首字母大写
全局变量:大写字母, 单词之间用“_”分割
普通变量:小写字母,单词之间用“_”分割
函数:小写字母,单词之间用“_”分割
实例变量:以"_"开头,其他和普通变量一样
私有实例变量(外部访问会报错):以“__”(2个下划线),其余和普通变量一样
专有变量:“__”(2个下划线)开头,“__”(2个下划线)结尾,一般为Python的自有变量(不要使用)

  6:

使用 id() 方法查看内存地址
#-*- coding:utf-8 -*-
n = 10
print(id(n)) # 打印变量 n 在内存中的地址

  7:

# -*- coding:utf-8 -*-
user1 = "seven"
user2 = "alex"
pwd = "" count = 0
while count < 3:
if count == 3:
print("You have try too much times...")
break
else:
user = input("Please input your name:")
password = input("password:")
if user == user1 or user2 and password == pwd:
print("Welcome !\n")
else:
print("Sorry,your name or password is wrong...\n")
count += 1

  8(1)

# -*- coding:utf-8 -*-
a = 2
sum = 0
while a < 101:
if a%2 == 0:
sum += a
else:
sum -= a
a += 1
print("2-3+4-5+6...+100的和:%d\n"%sum)

  (2) 

# -*- coding:utf-8 -*-
a = 0
while a<12:
a += 1
if a==6 or a==10:
continue
print("%d "%a)

  (3)

# -*- coding:utf-8 -*-
n = 100
while n>50:
print("从大到小:%d"%n)
n -= 1
if n==50:
print("从大到小停止:%d"%n)
n = 0
while n<=50:
print("从小到大:%d"%n)
n += 1
break

  (4)

# -*- coding:utf-8 -*-
n = 1
while n<101:
if n%2!=0:
print(">>>:%d"%n)
n += 1

  (5)

# -*- coding:utf-8 -*-
n = 1
while n<101:
if n%2==0:
print(">>>:%d"%n)
n += 1

  9:

关系:
变量n1指向了123456的内存地址,变量n2不是指向了n1地址,而是指向了123456内存地址。

  10:

# -*- coding:utf-8 -*-

name = input("姓名:")
address = input("地点:")
hobby = input("爱好:")
print("%s最喜欢在%s%s"%(name,address,hobby))

  11:

#-*- coding:utf-8 -*-

year = int(input("请输入任意年份:"))
if (year%4==0 and year%100!=0) or year%400==0:
print(">>>> %d为闰年!<<<<\n"%year)
else:
print(">>>> %d为平年。<<<<\n"%year)

  12:

# -*- coding:utf-8 -*-

rate = 0.0325 # 一年利率
sum = 10000 # 总和
n = 1 # 年限
while sum<20000:
sum += sum*rate
n += 1
print("需要经过%d年"%n)

  13:

# -*- coding:utf-8 -*-

n = 1
j = 4
while n <= 9:
if n <= 5:
print("*"*n)
else:
print("*"*j)
j -= 1
n += 1

  14:

# -*- coding:itf-8 -*-

salary = 3000 # 基本工资
sales = int(input("请输入你的当月业绩:"))
sum = 0 # 工资总额
if sales < 50000:
sum = salary
elif sales < 100000:
sum = salary+sales*0.03
elif sales < 150000:
sum = salary+sales*0.05
elif sales < 250000:
sum = salary+sales*0.08
elif sales < 350000:
sum = salary+sales*0.1
else:
sum = salary+sales*0.15
print("你的月工资总计:%d"%sum)

  15:

# -*- coding:utf-8 -*-

distance = int(input("乘坐距离:"))
if distance == 0:
print("你还在原地!")
exit()
cost = 0 # 费用
price = 0 # 价格
n = 0 # 乘车次数
while n<=40:
rate = 0 # 优惠率
if cost>=100 and cost<=150:
rate = 0.8
elif cost>=150 and cost<=400:
rate = 0.5
else:
rate = 1.0
if distance <= 6:
cost +=(3*rate)
elif distance <= 12:
cost +=(4*rate)
elif distance <= 22:
cost +=(5*rate)
elif distance <= 32:
cost +=(6*rate)
else:
if (distance-32)%20==0: #
cost += (6+(distance-32)/20)*rate
else:
cost += (6+(distance-32)/20+1)*rate
n += 1
print("你当月乘车的花费是:%d"%cost)

  16:

# -*- coding:utf-8 -*-

height = 100 # 下落高度
meter = 0 # 球总共经过的路程
n = 0 # 下落次数
while n<10:
meter += height # 下落高度
height /= 2 # 每次落下弹起后的高度
meter += height # 弹起高度
n += 1
print(meter,height)

综合作业

 编写登陆接口:

  首先我们先创建一个名为 Login的文件,包括“ create_user.py” 和 "login.py"两个文件,内容分别如下:

  create_user.py (首先运行,且只运行一次)

#-*-coding:utf-8-*-
# 创建用户文件
with open("Login/user_info.txt","w") as f:
f.write("Jack|123|0\n")
f.write("Rose|456|0\n")
f.write("Frank|789|0\n")
# 创建被锁用户文件
with open("Login/lock_user.txt","w") as f1:
f1.write("sample\n")

  login.py

# -*- coding:utf-8 -*-

# 第一步:读取用户信息
user = {} # 定义一个储存用户信息的字典
with open("Login/user_info.txt","r") as f2:
for line in f2:
user_info = line.strip().split("|")
# print(user_info)
user[user_info[0]]={"username":user_info[0],
"password":user_info[1],
"try_times":user_info[2]}
# print(user) # 第二步:读取被锁用户信息
with open("Login/lock_user.txt","r") as f3:
locked_user = []
for line in f3:
locked_user.append(line.strip())
# print(locked_user) # 第三步:判断用户是否注册或被锁
while True:
username = input("用户名:").strip()
password = input("密码:").strip()
# 若用户已被锁定
if username in locked_user:
print("抱歉,该账户已被锁定,请解锁后再登陆!")
break #直接退出
# 若用户已注册,且未被锁定
elif username in user:
count = int(user[username]["try_times"])
if count<3 and(password==user[username]["password"]):
print("欢迎登陆,%s!"%username)
user[username]["try_times"] = 0
# 将修改的信息写入用户信息
with open("Login/user_info.txt","w") as f4:
for i in user:
f4.write(i+"|"+user[i]["password"]+"|"+str(user[i]["try_times"])+"\n")
break
else:
count += 1
print("用户名或密码错误!")
user[username]["try_times"] = count
# 将修改信息写入用户信息
with open("Login/user_info.txt","w") as f5:
for i in user:
f5.write(i+"|"+user[i]["password"]+"|"+str(user[i]["try_times"])+"\n")
if count==3:
locked_user.append(username)
print("登陆错误次数过多,你的账号已被锁定!")
# 将修改信息写入锁定信息表中
with open("lock_user.txt","w") as f6:
for i in locked_user:
f6.write(i+"\n")
break
else:
print("你尚未注册...")
break

综合作业一:

一、三级菜单:
数据结构: menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车站':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}
需求: 可依次选择进入各子菜单
可从任意一层往回退到上一层
可从任意一层退出程序
所需新知识点:列表、字典

综合作业二:

二、购物车程序:
数据结构:
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
......
]
功能要求:
1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表 2、允许用户根据商品编号购买商品 3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4、可随时退出,退出时,打印已购买商品和余额 5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示 扩展需求:
1、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买 2、允许查询之前的消费记录

Python基础语法习题一的更多相关文章

  1. Python基础语法习题二

    习题: 1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex', 'eric', 'rain'] 2.查找列表中元素,移除每个元素的空格,并查找以a或A开头并且以c结尾的所有 ...

  2. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  3. Python 基础语法(三)

    Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)------------------------- ...

  4. Python 基础语法(四)

    Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ...

  5. Python 基础语法(二)

    Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...

  6. Python 基础语法

    Python 基础语法 Python语言与Perl,C和Java等语言有许多相似之处.但是,也存在一些差异. 第一个Python程序 E:\Python>python Python 3.3.5 ...

  7. 吾八哥学Python(四):了解Python基础语法(下)

    咱们接着上篇的语法学习,继续了解学习Python基础语法. 数据类型大体上把Python中的数据类型分为如下几类:Number(数字),String(字符串).List(列表).Dictionary( ...

  8. python学习第五讲,python基础语法之函数语法,与Import导入模块.

    目录 python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 1.函数语法定义 2.函数的调用 3.函数的文档注释 4.函数的参数 5.函数的形参跟实参 6.函 ...

  9. python学习第四讲,python基础语法之判断语句,循环语句

    目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...

随机推荐

  1. 《DSP using MATLAB》示例Example 8.30

    %% ------------------------------------------------------------------------ %% Output Info about thi ...

  2. 纯 as3 项目中引用 fl 包下的类

    如果安装了 Flash IDE, 将下面的文件添加到项目的 libs 中即可:D:\Program Files\Adobe\Adobe Flash CS6\Common\Configuration\A ...

  3. RabbitMQ消息的消费与持久化

    作为消费者的客户端要消费Rabbitmq的消息,首先要建立与它某个队列的连接,具体连接时可指定队列的BindingKey和关系的exchange标识,Rabbitmq判断若已有队列通过BindingK ...

  4. 小小的学习FPGA建议

    学习FPGA,一点小小的 建议或者总结分享. 语法层面搞懂阻塞和非阻塞语句,以及Verilog语言的时序描述方法,把自己想象成编译器,尝试去编译自己写的Module,不断总结自己设计的逻辑会综合出怎么 ...

  5. Java里的常用运算符及其优先级顺序

    知道了八种基本数据类型后,在使用中弄清运算符的优先级是很有必要的.具体如下图:  这里需要注意的是,强制类型转换的优先级是位于乘除前面而处于单目运算符后面的,这是比较容易出错的地方.比如用Math.R ...

  6. Django缓存,信号,序列化

    缓存 1.缓存的简介 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作 ...

  7. html5的canvas方法的总结

    canvas的方法 save()保存当前环境的状态 restore() 返回之前保存过的路径状态和属性 createEvent() getContext()返回一个对象,指出访问绘图功能必要的API ...

  8. 【UVa】1374 Power Calculus(IDA*)

    题目 题目     分析 IDA*大法好,抄了lrj代码.     代码 #include <cstdio> #include <cstring> #include <a ...

  9. php-7.1和apache httpd-2.4.29 windows环境配置

    一.apaceh2.4配置 (一).修改apache2.4.29的httpd.conf安装目录文件,第38行 原Define SRVROOT "/Apache24" 修改为(你自己 ...

  10. 解析 Ceph: FileJournal 的作用

      很多的用户在提到 Ceph 性能的时候都会提到“写放大”这点,实际上就是 FileJournal 在起作用.只要使用默认的 FileStore,所有数据包括 metadata 都会在 FileJo ...