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. Quartz 2D编程指南(2) - 图形上下文

    一个Graphics Context表示一个绘制目标.它包含绘制系统用于完成绘制指令的绘制参数和设备相关信息.Graphics Context定义了基本的绘制属性,如颜色.裁减区域.线条宽度和样式信息 ...

  2. hadoop下远程调试方法

    JPDA 简介Sun Microsystem 的 Java Platform Debugger Architecture (JPDA) 技术是一个多层架构,使您能够在各种环境中轻松调试 Java 应用 ...

  3. Apache报错You don't have permission to access on this server

    解决方法: 打开httpd.conf文件 <Directory /> AllowOverride none Require all denied </Directory> 修改 ...

  4. CH1801 括号画家

    题意 Candela是一名漫画家,她有一个奇特的爱好,就是在纸上画括号.这一天,刚刚起床的Candela画了一排括号序列,其中包含小括号( ).中括号[ ]和大括号{ },总长度为N.这排随意绘制的括 ...

  5. lapis 路由

    1. 路由以及url 模式 参考如下: local lapis = require("lapis") local app = lapis.Application() app:mat ...

  6. linux 磁盘挂载操作

    1. fdisk  -l      查看磁盘   2. fisk  /dev/vdb   进行分区        依次输入  n  p  1   两次回车  wq   3. fdisk -l  查看分 ...

  7. Attribute的妙用 ---- 拦截器(过滤器)

    一.何为Attribute 下面是微软官方对Attribute的解释: 公共语言运行时允许你添加类似关键字的描述声明,叫做Attributes,它对程序中的元素进行标注,如类型.字段.方法和属性等.A ...

  8. bzoj 1670 [Usaco2006 Oct]Building the Moat护城河的挖掘——凸包

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1670 用叉积判断.注意两端的平行于 y 轴的. #include<cstdio> ...

  9. Java 设计模式之抽象工厂模式(三)

    原文地址:Java 设计模式之抽象工厂模式(三) 博客地址:http://www.extlight.com 一.前言 上篇文章 <Java 设计模式之工厂模式(二)>,介绍了简单工厂模式和 ...

  10. 【备忘:待完善】nsq集群初体验

    本机的一个节点及监控与管理后台 虚拟机中的一个节点 命令: [root@vm-vagrant nsq]# nsqd --lookupd-tcp-address=192.168.23.150:4160 ...