python基础语法练习1
1.简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型;
编译型语言需要将代码进行编译后才能执行,编译的过程会浪费时间,但是执行编译后的代码,速度会很快。像C、C++ 都是编译型语言。编译型语言的优点:执行速度快 缺点:跨平台性差
解释型语言代码一边编译一边执行,不需要提前进行编译,但是执行速度慢。像Python、Java、JavaScript、Ruby都是解释型语言。解释语言的优点:跨平台性好 缺点:执行速度慢
编译型语言就像是将一本书进行一次性的翻译成一种外语,然后给那国家的人看,那国家的人不需要等待,可以从头到尾的快速的将书看完。但是要把书给另外的一个国家的人看的时候,就要进行重新的翻译。(即编译后才能执行、跨平台性差)
解释型语言就像是买书送万能翻译人员(解释器),买了书的外国人可以听翻译人员一句句的翻译书的内容,翻译的速度会比较慢,但是不管是哪个国家的人买书万能翻译人员(解释器)他都会翻译。(即边编译边执行、跨平台性好)
2.执行Python脚本的两种方式是什么;
在交互器中执行
保存成文件后执行
3.Pyhton单行注释和多行注释分别用什么;
单行注释用 #
多行注释用 """ """ (三引号)
4.布尔值分别有什么;
True
False
5.声明变量注意事项有那些;
变量可以用 字母、数字、下划线 组成,
数字不可以在前面,
不可以使用python中的关键字如:print、def、del 等,
变量名2种样式 MyName my_name,
劲量使用有意义的英文,不要太长
6.如何查看变量在内存中的地址;
name = "xiaoming"
print(id(name))
4300592
7. 写代码:
a. 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败;
a. 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败;
name = input("请输入姓名:").strip()
passwd = input("请输入密码:").strip()
if name =="seven" and passwd =="123":
print("登陆成功")
else:
print("登陆失败")
b. 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次;
passwd = input("请输入密码:").strip()
if name =="seven" and passwd =="123":
print("登陆成功")
else:
print("登陆失败")
b. 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次;
count = 0
while count < 3:
name = input("请输入姓名:").strip()
passwd = input("请输入密码:").strip()
if name =="seven" and passwd =="123":
print("登陆成功")
break
else:
count += 1
print("登陆失败")
c. 实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次;
accounts = {"seven":123, "alex":123}
count = 0
while count < 3:
name = input("请输入姓名:").strip()
passwd = input("请输入密码:").strip()
if passwd.isdigit():
passwd = int(passwd)
if name in accounts and passwd ==accounts[name]:
print("登陆成功")
break
else:
count += 1
print("登陆失败")
8. 写代码:
a. 使用while循环实现输出2-3+4-5+6...+100 的和;
a. 使用while循环实现输出2-3+4-5+6...+100 的和;
num = 1
total=0
while num<100:
num +=1
if num%2 ==1:
total = total-num
else:
total = total+num
print(total)
b. 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12;
num=0
while num< 12:
num +=1
if num == 6 or num == 10:
continue
print(num)
c.使用while 循环输出100-50,从大到小,如100,99,98...,到50时再从0循环输出到50,然后结束;
num = 101
count = 0
while count < 101:
count += 1
if num > 50:
num -= 1
print(num)
if num == 50:
num = -1
if num < 50:
num += 1
print(num)
d. 使用while 循环实现输出 1-100 内的所有奇数;
num = 0
while num <100 :
num += 1
if num%2 == 1:
print(num)
e. 使用 while 循环实现输出 1-100 内的所有偶数;
num = 0
while num <100 :
num += 1
if num%2 == 0:
print(num)
9. 现有如下两个变量,请简述 n1 和 n2 是什么关系:
n2 = n1
n1赋值为123456,n2指向n1指向的内存地址,即n2也为123456,即使n1变换时,n2不会改变。
10. 制作趣味模板程序(编程题) 需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意显示: 如:敬爱可爱的xxx,最喜欢在xxx地方干xxx。
name = input("请输入姓名:").strip()
address = input("请输入地址:").strip()
hobby = input("请输入爱好:").strip()
print("敬爱可爱的%s,最喜欢在%s,%s。"%(name, address, hobby))
11. 输入一年份,判断该年份是否是闰年并输出结果。(编程题) 注:凡符合下面两个条件之一的年份是闰年。
a. 能被4整除但不能被100整除;
b. 能被400整除;
a. 能被4整除但不能被100整除;
b. 能被400整除;
year = int(input("输入年份:").strip())
if year%4==0 and year%100 != 0:
print("该年份是闰年")
elif year%400==0:
print("该年份是闰年")
else:
print("该年份是平年")
12. 假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?(编程题)
money = 10000
interest = 3.25 * 0.01
total_year = 0
while money <= 20000:
money = money * (1+interest)
total_year += 1
print(total_year)
13. 使用while,完成以下图形的输出
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
i = 0
j = 10
while j > 0:
j -= 1
i += 1
if i <=5:
print("* " * i)
if i >=6 :
print("* " * j)
14. 路飞决定根据销售额给员工发提成,提成为阶梯制,假设一个销售人员基本工资为3000元,
每月业绩低于5万元,无提成;
5万至10万,提成3%;
10万至15万提成5%,15万-25万提成8%;
25万至35万提成10%,35万以上,提成15%;
从键盘获取用户当月业绩,计算其工资+提成的总额。
salary = 3000
total_salary = 0
achievement = int(input("请输入你的业绩:").strip())
if achievement < 50000:
total_salary = salary
elif 50000<= achievement <=100000:
total_salary = salary + achievement * 0.03
elif 100000 < achievement <= 150000:
total_salary = salary + achievement * 0.05
elif 150000< achievement <=250000:
total_salary = salary + achievement * 0.08
elif 250000 < achievement <= 350000:
total_salary = salary + achievement * 0.10
elif 350000 < achievement:
total_salary = salary + achievement * 0.15
print(total_salary)
15. 北京地铁交通价格调整为:
6公里(含)内3元;6公里至12公里(含)4元;12公里至22公里(含)5元;
22公里至32公里(含)6元;32公里以上部分, 每增加1元可乘坐20公里。
使用市政交通一卡通刷卡乘坐轨道交通,每自然月内每张卡支出累计满100元以后的乘次价格给予8折优惠;
满150元以后的乘次给予5折优惠,假设每个月,小明都需要上20天班,每次上班需要来回1次,即每天需要
乘坐2次同样路线的地铁,编写程序,从键盘获取距离,帮小明计算每月的总花费。
distance = int(input("请输入路程:").strip())
price = 0
if distance <= 6:
price = 3
elif 6 < distance <= 12:
price = 4
elif 12 < distance <= 22:
price = 5
elif 22 < distance <= 32:
price = 6
else:
price = 6+(distance - 32)/20*1
total_yuanjia = price*2*20
if total_yuanjia < 100:
total = total_yuanjia
elif 100 <= total_yuanjia <= 162.5: # 100+(50/0.8)
total = 100+(total_yuanjia-100)*0.8
elif 162.5 < total_yuanjia:
total = 150+(total_yuanjia-162.5)*0.5
print(total)
16. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
height = 50
meters = 100
for i in range(9):
meters += 2 * height
height = height / 2
print(meters)
print(height)