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,12c. 使用while 循环输出100-50,从大到小,如100,99,98...,到50时再从0循环输出到50,然后结束

d. 使用while 循环实现输出 1-100内的所有奇数

e. 使用while 循环实现输出 1-100内的所有偶数9、现有如下两个变量,请简述 n1 和 n2 是什么关系?

n1= 123456n2=n110、制作趣味模板程序(编程题)

需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意显示

如:敬爱可爱的xxx,最喜欢在xxx地方干xxx11、输入一年份,判断该年份是否是闰年并输出结果。(编程题)

注:凡符合下面两个条件之一的年份是闰年。 (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

View Code

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! ") # 输出:Hello world!

方式二:

python hello.py 调用Python解释器来调用Python脚本

示例:

#! /usr/bin/env python #此时可不需要

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

print("Hello world! ")

View Code

3:

单行注释:#

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

View Code

4:

布尔值:True 和 False

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

View Code

5:

模块名,包名:小写字母,单词之间用“_”分割

类名:首字母大写

全局变量:大写字母, 单词之间用“_”分割

普通变量:小写字母,单词之间用“_”分割

函数:小写字母,单词之间用“_”分割

实例变量:以"_"开头,其他和普通变量一样

私有实例变量(外部访问会报错):以“__”(2个下划线),其余和普通变量一样

专有变量:“__”(2个下划线)开头,“__”(2个下划线)结尾,一般为Python的自有变量(不要使用)

View Code

6:

使用 id() 方法查看内存地址

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

n = 10

print(id(n)) # 打印变量 n 在内存中的地址

View Code

7:

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

user1 = "seven"user2= "alex"pwd= "123"count=0while 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 ! ")else:print("Sorry,your name or password is wrong... ")

count+= 1

View Code

8(1)

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

a = 2sum=0while a < 101:if a%2 ==0:

sum+=aelse:

sum-=a

a+= 1

print("2-3+4-5+6...+100的和:%d "%sum)

View Code

(2)

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

a =0while a<12:

a+= 1

if a==6 or a==10:continue

print("%d"%a)

View Code

(3)

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

n = 100

while n>50:print("从大到小:%d"%n)

n-= 1

if n==50:print("从大到小停止:%d"%n)

n=0while n<=50:print("从小到大:%d"%n)

n+= 1

break

View Code

(4)

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

n = 1

while n<101:if n%2!=0:print(">>>:%d"%n)

n+= 1

View Code

(5)

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

n = 1

while n<101:if n%2==0:print(">>>:%d"%n)

n+= 1

View Code

9:

关系:

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

View Code

10:

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

name = input("姓名:")

address = input("地点:")

hobby = input("爱好:")

print("%s最喜欢在%s%s"%(name,address,hobby))

View Code

11:

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

year = int(input("请输入任意年份:"))

if (year%4==0 and year%100!=0) or year%400==0:

print(">>>> %d为闰年!<<<< "%year)

else:

print(">>>> %d为平年。<<<< "%year)

View Code

12:

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

rate = 0.0325 # 一年利率

sum = 10000 # 总和

n = 1 # 年限

while sum<20000:sum += sum*raten += 1print("需要经过%d年"%n)

View Code

13:

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

n = 1

j = 4

while n<= 9:if n <= 5:print("*"*n)

else:

print("*"*j)

j -= 1n += 1

View Code

14:

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

salary = 3000 # 基本工资

sales = int(input("请输入你的当月业绩:"))

sum = 0 # 工资总额

if sales<50000:sum= salaryelif sales < 100000:

sum= salary+sales*0.03elif sales < 150000:

sum= salary+sales*0.05elif sales < 250000:

sum= salary+sales*0.08elif sales < 350000:

sum= salary+sales*0.1else:

sum= salary+sales*0.15print("你的月工资总计:%d"%sum)

View Code

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.8elif cost>=150 and cost<=400:rate= 0.5else:

rate= 1.0if 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)*rateelse:

cost += (6+(distance-32)/20+1)*raten += 1print("你当月乘车的花费是:%d"%cost)

View Code

16:

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

height = 100 # 下落高度

meter = 0 # 球总共经过的路程

n = 0 # 下落次数

while n<10:meter += height# 下落高度

height /= 2# 每次落下弹起后的高度

meter += height# 弹起高度

n += 1print(meter,height)

View Code

综合作业

编写登陆接口:

首先我们先创建一个名为 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 ")

f.write("Rose|456|0 ")

f.write("Frank|789|0 ")#创建被锁用户文件

with open("Login/lock_user.txt","w") as f1:

f1.write("sample ")

View Code

login.py

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

#第一步:读取用户信息

user = {} #定义一个储存用户信息的字典

with open("Login/user_info.txt","r") as f2:for line inf2:

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 inf3:

locked_user.append(line.strip())#print(locked_user)

#第三步:判断用户是否注册或被锁

whileTrue:

username= input("用户名:").strip()

password= input("密码:").strip()#若用户已被锁定

if username inlocked_user:print("抱歉,该账户已被锁定,请解锁后再登陆!")break #直接退出

#若用户已注册,且未被锁定

elif username inuser:

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 inuser:

f4.write(i+"|"+user[i]["password"]+"|"+str(user[i]["try_times"])+" ")break

else:

count+= 1

print("用户名或密码错误!")

user[username]["try_times"] =count#将修改信息写入用户信息

with open("Login/user_info.txt","w") as f5:for i inuser:

f5.write(i+"|"+user[i]["password"]+"|"+str(user[i]["try_times"])+" ")if count==3:

locked_user.append(username)print("登陆错误次数过多,你的账号已被锁定!")#将修改信息写入锁定信息表中

with open("lock_user.txt","w") as f6:for i inlocked_user:

f6.write(i+" ")break

else:print("你尚未注册...")break

View Code

综合作业一:

一、三级菜单:

数据结构:

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基础语法第10关作业-Python基础语法习题一相关推荐

  1. python基础语法第10关作业-Python基础作业一

    一.python变量命名规范: 1.变量名主要由字母,数字,下划线组成 2.变量名不能以数字作为开头,更不能全部由数字组成 3.变量名不能以中文命名 4.变量名需简洁明了 5,变量名不能过长 6.py ...

  2. python基础语法第10关作业-Python基础语法习题

    1.~12为什么是-13? 解1:12 二进制:0000 1100 补码: 0000 1100 按位取反 :1111 0011 求这个原码,即负数求补码的逆过程:先减1,再取反 (符号位不变) -1 ...

  3. python基础语法第10关作业-关于一些Python的一些基础语法训练

    1:已知a和b元素 a = 'pyer' b = 'apple' 用字典和format方法实现:效果:my name is pyer, i love apple. 1.format的方法 c =&qu ...

  4. python基础语法第10关作业-【python基础语法】第8天作业练习题

    """# 第一题: # 要求:请将数据读取出来,转换为以下格式 {'data0': '数据aaa', 'data1': '数据bbb', 'data2': '数据ccc' ...

  5. python基础语法第10关作业-【python基础语法】第11天作业练习题

    '''1.上课的代码全部敲一遍(不要求提交) 2.有一组数据,如下格式: [ {'case_id': 1, 'method': 'post', 'url': '/member/login', 'dat ...

  6. 5年Python生涯总结出10个玩Python必备的网站

    "玩Python必备的10大精品网站" 5年Python沉淀,总结一下作为一个Python玩家,必须要知道的十大精品网站. 无用请吐槽! 有用请点赞!! 爱我请三连!!! 目录 一 ...

  7. 输入python出现商店_Win 10 中使用 Python 碰到的奇怪现象

    点击上方"编程派",选择设为"设为星标" 优质文章,第一时间送达! 作者:流光飞舞 来源:https://shuhari.dev/blog/2019/11/wi ...

  8. 计算机应用基础第3次平时作业,计算机应用基础第三次作业

    1 在PowerPoint2010中,需要在幻灯片中同时移动多个对象时( ). 选择一项: a. 修改演示文稿中各个幻灯片的布局 b. 可以将这些对象编组,把它们视为一个整体 c. 一次只能移动一个对 ...

  9. python入门之函数调用第一关_零基础学习 Python 之与函数的初次相见

    写在之前 大家好,这是首发在我公众号「Python空间」的第 26 篇文章,欢迎关注. 大家好,这里是零基础学习 Python 系列,在这里我将从最基本的Python 写起,然后再慢慢涉及到高阶以及具 ...

最新文章

  1. 【设置Oracle 11Gr2 RAC的归档模式】
  2. ant java build_Ant--基于java的build工具
  3. bat里如何用相对路径
  4. this指针不全等于对象地址
  5. 无限踩坑系列(8)--猿界神猿
  6. Redis HyperLogLog常用命令
  7. Java中多实现接口的一个好处
  8. Myeclipse学习总结(10)——MyEclipse2014导入项目时The project was not built since its build问题
  9. Fence Repair (poj3253)
  10. java static final泛型类对象
  11. 使用IntelliJ IDEA开发Maven初始化创建流程
  12. window.print()
  13. php混淆解密,关于php混淆加密解密详解
  14. xp 游戏计算机没有了怎么办,我的xp系统没有自带游戏怎么办
  15. 2022半入耳式蓝牙耳机怎么选?半入耳式耳机排行榜
  16. 什么软件测试苹果手机循环电池,如何检查iPhone电池的电池循环次数,看完你就明白了...
  17. 10-38 A4-7在订单详细信息表中查找包含产品种类数超过特定值的订单信息 (20 分)
  18. [Java经典题目] 随机得到一个[ 1-100]之间的年龄
  19. Linux常用命令和操作
  20. 将qlv格式转换为mp4格式视频

热门文章

  1. linux yum nginx 安装,Linux下 yum 安装 nginx 以及运维
  2. linux函数怎么判断文件已更改,Linux下使用md5sum查看文件及程序是否被修改
  3. matlab根轨迹法串联超前校正,4.7基于根轨迹法的串联超前校正.ppt
  4. 开发日记-20190622 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
  5. android studio插件相关(逐步完成系列)
  6. OCWA提高组模拟赛一 Solution
  7. keybd_event 被 SendInput 替代
  8. shell脚本 定期删除日志
  9. 自定义数字软键盘--封装版
  10. 【Oracle】ORA 01810 格式代码出现两次-转