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. 剑指offer第四章

    剑指offer第四章 1.二叉树的镜像 二叉树的镜像:输入一个二叉树,输出它的镜像 分析:求树的镜像过程其实就是在遍历树的同时,交换非叶结点的左右子结点. 求镜像的过程:先前序遍历这棵树的每个结点,如 ...

  2. python string 之 format, join, split

    功能太强大. 经常看到很多简洁, 高级的用法. 但是基本思路是{}代替了以前的%. In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2] ...

  3. ORACLE 12C RMAN 功能增强

    在ORACLE 12C中对rman的功能有了不少增强,在以前的文章中写过RMAN RECOVER TABLE功能,这里另外补充rman增强的两个小功能(sql语句和数据文件分割)数据库版本 SQL&g ...

  4. Mongodb简单介绍安装

    具体详细内容,请查阅 Mongodb官方文档 一.简单介绍 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. M ...

  5. ABP学习之路

    ABP文档介绍 http://www.cnblogs.com/kid1412/p/AbpDocumentContent.html [ABP开源项目]--vue+vuex+vue-router+EF的权 ...

  6. 从汇编的角度看待const与#define

    先观察一下的代码: #include<stdio.h> int main(){ ; int y; int *pi=(int*)&i; *pi=; y=*pi; int tempi; ...

  7. Java安全 – JCE Blowfish算法报错

    代码里用Blowfish算法加解密,结果jdk升到1.7后算法初始化失败 java.lang.RuntimeException: java.lang.RuntimeException: PANIC: ...

  8. (转) Docker EE/Docker CE简介与版本规划

    随着Docker的不断流行与发展,docker公司(或称为组织)也开启了商业化之路,Docker 从 17.03版本之后分为 CE(Community Edition) 和 EE(Enterprise ...

  9. node的socket.io类库概述

    socket.io是一个简单的小类库,该类库实现的功能类似于node中的net模块所实现的功能. 这些功能包括websocket通信,xhr轮询,jsonp轮询等. socket类库可以接受所有与服务 ...

  10. mysql的配置(图解)

    一.配置MySQL数据库 1.解压绿色版mysql,如下图 二.安装服务 1.运行cmd(管理员版本,否则没有权限),如下图 2.运行命令mysqld –install安装服务,如下图: 如果不需要m ...