1.简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型?

高级语言分为编译型与解释型两种,分别从执行速度、开发效率、跨平台性三个方面说它们的区别。
编译型语言因为执行的是机器码文件,所以执行速度快且不依赖解释器,但每次修改源代码都需要重新编译,所以导致开发效率低,不同的操作系统,调用的底层机器指令不同,所以跨平台性差。
解释型语言需要解释器边把源文件解释成机器指令边交给cpu执行,所以执行速度要比编译型慢很多,但是每次修改时立刻见效,所以开发效率很高,解释器已经做好了对不同操作系统的交互处理,天生跨平台。
C/C++/C#/Delphi/Go属于编译型,PHP/Java/JavaScript/Python/Perl/Ruby属于解释型。

2.执行 Python 脚本的两种方式?

(1).交互方式:启动python解释器,执行命令
(2).脚本方式:Python xxx.py 或者 chmod +x xxx.py && ./xxx.py

3.Python单行注释和多行注释分别用什么?

单行注释:#要注释内容
多行注释:"""要注释内容""" 或者'''要注释内容'''

4.声明变量注意事项有哪些?

(1).变量由数字、字母和下划线组成
(2).变量不能以数字开头
(3).变量不能使用Python关键字
(4).变量区分大小写
     模块名,包名 :小写字母, 单词之间用_分割。
类名:首字母大写。
全局变量: 大写字母, 单词之间用_分割。
普通变量: 小写字母, 单词之间用_分割。
函数: 小写字母, 单词之间用_分割。
实例变量: 以_开头,其他和普通变量一样 。
私有实例变量(外部访问会报错): 以__开头(2个下划线),其他和普通变量一样 。
专有变量: __开头,__结尾,一般为python的自有变量(不要以这种变量命名)。

5.如何查看变量在内存中的地址?

id(变量名)

6.写代码

a. 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!

#!/usr/bin/env python
#-*- coding:utf-8 -*- import getpass
_username = "seven"
_password = "123" username = input("username:")
password = getpass.getpass("password:") if username == _username and password == _password:
print("hello,seven")
else:
print("error,input again")

b. 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次

#!/usr/bin/env python
#-*- coding:utf-8 -*- import getpass
_username = "seven"
_password = "123"
count = 0
while count < 3:
count += 1
username = input("username:")
password = getpass.getpass("password:") if username == _username and password == _password:
print("hello,seven")
break
else:
print("error,input again")
#!/usr/bin/env python
#-*- coding:utf-8 -*- import getpass
_username = 'seven'
_password = '123'
count = 0
def login():
username = input('username:')
password = getpass.getpass('password:')
return username,password
while count<3:
username,password = login()
if username == _username and password == _password:
print('hello,seven')
break
else:
count += 1
print ('error,input again')

c. 实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import getpass
_username = ['seven','alex']
_password = "123"
count = 0
while count < 3:
count += 1
username = input("用户名:")
# password = input("密码:")
password = getpass.getpass("密码:") if username in _username and password == _password:
print("登陆成功!")
break
else:
print("登陆失败!")

7.写代码

a. 使用while循环实现输出2-3+4-5+6...+100 的和

# 2+4+6...+100
# -3-5...-99 count = 1
sum = 0
while count < 100:
count += 1
if count % 2 == 0 :
sum += count
else:
sum -= count
print(sum)
sum = 0
for count in range(2,101):
# print(count)
if count % 2 == 0 :
sum += count
else:
sum -= count
print(sum)

b. 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12

count = 0
while count <= 12:
if count == 6 or count == 10:
pass # 换成continue不行,因为会跳过本次循环,count不能+1,count永远==6,永远跳过本次循环。
else:
print(count)
count += 1
count = 0
while count < 12:
count += 1
if count == 6 or count == 10:
pass # 换成continue可以,因为虽然跳出了本次循环,但是下次循环的时候count可以+1。
else:
print(count)

c. 使用while 循环输出100-50,从大到小,如100,99,98...,到50时再从0循环输出到50,然后结束

count = 101
while count > 50:
count -= 1
print(count)
if count == 50:
count = 0
while count < 51:
print(count)
count += 1
break

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

count = 0
while count < 100:
count += 1
if count % 2 == 1:
print(count)
for count in range(1,101,2):
print(count)

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

count = 0
while count < 100:
count += 1
if count % 2 == 0:
print(count)
for count in range(2,101,2):
print(count)

8.现有如下两个变量,请简述 n1 和 n2 是什么关系?

n1 = 123456
n2 = n1

给数据123456起了另外一个别名n2,相当于n1和n2都指向该数据的内存地址

9.制作趣味模板程序(编程题)

需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意显示
如:敬爱可爱的xxx,最喜欢在xxx地方干xxx

#方法一:
name = input("请输入姓名:")
address = input("请输入地点:")
hobby = input("请输入爱好:") info = """
敬爱可爱的%s,最喜欢在%s地方干%s
"""% (name,address,hobby) print(info) #方法二:
name = input("请输入姓名:")
address = input("请输入地点:")
hobby = input("请输入爱好:") info = """
敬爱可爱的{0},最喜欢在{1}地方干{2}
""" print(info.format(name,address,hobby))

10.输入一年份,判断该年份是否是闰年并输出结果。(编程题)

注:凡符合下面两个条件之一的年份是闰年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。

year = int(input("Please input the year:"))
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
print(year,"is a leap year")
else:
print(year,"is not a leap year")

11.假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?(编程题)

money = 10000
years = 0
rate = 0.0325
while money <= 20000:
years += 1
money = money * (1+rate)
print(str(years)+"年以后,一万元的一年定期存款连本带息能翻番")

作业

编写登陆接口

基础需求:

让用户输入用户名密码
认证成功后显示欢迎信息
输错三次后退出程序

#!/usr/bin/env python3
# -*- encoding: utf8 -*-
# 输错用户名和输错密码的次数总共最多为3次
import getpass exit_flag = False
count = 0
while count < 3 and not exit_flag:
user = input('\n请输入用户名:')
if user != "wss":
count += 1
print("\n用户名错误")
else:
while count < 3 and not exit_flag:
pwd = getpass.getpass('\n请输入密码:')
# pwd = input('\n请输入密码:')
if pwd == "123":
print('\n欢迎登陆')
print('..........')
exit_flag = True
else:
count += 1
print('\n密码错误')
continue
if count >= 3: # 尝试次数大于等于3时锁定用户
if user == "":
print("\n您输入的错误次数过多,且用户为空")
elif user != "wss":
print("\n您输入的错误次数过多,且用户 %s 不存在" % user)
else:
print("\n您输入的错误次数过多")
#!/usr/bin/python3
#-*- coding:utf-8 -*-
# 输错用户名和输错密码的次数分别最多为3次
# import getpass _username = "wss"
_password = "123" count = 0
exit_flag = False
while count < 3 and not exit_flag:
count += 1
username = input("\nPlease input your username:")
if username == _username:
exit_flag = True # 当密码正确时,跳过第一层循环,不再询问用户名
count = 0
while count < 3:
count += 1
password = input("\nPlease input your password:")
# password = getpass.getpass("\nPlease input your password:")
if password == _password:
print("\nhello,%s" % username)
break # 密码正确,跳过第二层循环,不再询问密码
else:
print("\nYour password is wrong")
else:
print("\nYour username is wrong")
if count >= 3: # 尝试次数大于等于3时强制退出
print("\nYou try more than 3 times,be forced to quit")

升级需求:

可以支持多个用户登录 (提示,通过列表存多个账户信息)
用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)

#!/usr/bin/env python3
# -*- encoding: utf8 -*-
# 输错用户名和输错密码的次数总共最多为3次
import getpass user_list = {
"wss": "123",
"alex": "456",
"jay": "789"
} f = open("deny_user_list.txt", "a", encoding="utf-8") # 没有此文件时创建
f.close()
with open("deny_user_list.txt", "r", encoding="utf-8") as deny_user_list_file:
deny_user_list = deny_user_list_file.readlines() exit_flag = False
count = 0
while count < 3 and not exit_flag:
user = input('\n请输入用户名:')
if user not in user_list:
count += 1
print("\n用户名错误")
elif user + "\n" in deny_user_list:
print("\n用户已被锁定,请联系管理员解锁后重新尝试")
break
else:
while count < 3 and not exit_flag:
pwd = getpass.getpass('\n请输入密码:')
# pwd = input('\n请输入密码:')
if pwd == user_list[user]:
print('\n欢迎登陆')
print('..........')
exit_flag = True
else:
count += 1
print('\n密码错误')
continue
if count >= 3: # 尝试次数大于等于3时锁定用户
if user == "":
print("\n您输入的错误次数过多,且用户为空")
elif user not in user_list:
print("\n您输入的错误次数过多,且用户 %s 不存在" % user)
else:
with open("deny_user_list.txt", "a", encoding="utf-8") as deny_user_list_file:
if user + "\n" not in deny_user_list:
deny_user_list_file.write(user + "\n")
print("\n您输入的错误次数过多,%s 已经被锁定" % user)
#!/usr/bin/env python
# -*- coding:utf-8 -*- # 输错用户名和输错密码的次数分别最多为3次 # import getpass user_dict = dict([("wss", "123"), ("alex", "456"), ("jay", "789")]) # 存储用户信息
deny_user_list = [] # 初始化拒绝用户列表
f = open("deny_user_list.txt", "a", encoding="utf-8") # 没有此文件时创建
f.close() with open("deny_user_list.txt", "r", encoding="utf-8") as deny_user_list_txt:
for deny_user in deny_user_list_txt.readlines(): # 将文件内容转换为列表
deny_user = deny_user.strip() # 去掉换行符
deny_user_list.append(deny_user)
count = 0
exit_flag = False
while count < 3 and not exit_flag:
count += 1
username = input("\nPlease input your username:")
if username in user_dict and username not in deny_user_list:
exit_flag = True # 当用户名正确时,跳过第一层循环,不再询问用户名
count = 0
while count < 3:
count += 1
password = input("\nPlease input your password:")
# password = getpass.getpass("\nPlease input your password:")
if password == user_dict[username]:
print("\nhello,%s" % username)
break # 当密码正确时,跳过第二层循环,不再循环密码
else:
print("\nYour password is wrong")
elif username in deny_user_list:
print("\n%s is locked,please contact the administrator" % username)
break
else:
print("\nYour username is wrong")
if count >= 3: # 当尝试次数大于等于3时强制退出并锁定用户
if username not in user_dict or username == "":
print("\nYou try more than 3 times,be forced to quit")
else:
with open("deny_user_list.txt", "a", encoding="utf-8") as deny_user_list_file:
if username not in deny_user_list:
deny_user_list_file.write(username + "\n")
print("\nYou try more than 3 times,%s has been locked" % username)

第1章 Python基础-Python介绍&循环语句 练习题&作业的更多相关文章

  1. python基础之条件循环语句

    前两篇说的是数据类型和数据运算,本篇来讲讲条件语句和循环语句. 0x00. 条件语句 条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语 ...

  2. python基础语法_8循环语句

    http://www.runoob.com/python3/python3-loop.html while 循环 Python中while语句的一般形式: while 判断条件: 语句 无限循环 我们 ...

  3. 【Python基础】while循环语句

    Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务.其基本形式为: while 判断条件: 执行语句…… 执行语句可以是单个语句或语句 ...

  4. python基础学习笔记——循环语句(while、for)

    while 循环 流程控制语句 while 1.基本循环 while 条件: # 循环体 # 如果条件为真,那么循环则执行 # 如果条件为假,那么循环不执行   2.break break 用于退出当 ...

  5. python基础知识(循环语句)

    for循环.while循环.循环嵌套 for 迭代变量 In 对象: 循环体 range(start,end,step) 第一个和第三个可以省略生成一系列的连续整数 start 包括起始值 end  ...

  6. Python 3基础教程5-while循环语句

    本文开始介绍循环语句,和其他编程语言一样,Python中有while循环和for循环,这里介绍while循环. 语法: while 条件表达式为真: 做一些事情 实际生活中有很多这样的循环场景,这里举 ...

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

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

  8. Python基础【while循环】

    Python基础[while循环] 1.while循环: 格式 while 条件: ...... print(......) 注意,在while语句也可以嵌套else,但是else不执行循环,执行后直 ...

  9. Python - 条件控制、循环语句 - 第十二天

    Python 条件控制.循环语句 end 关键字 关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符,实例如下: Python 条件语句是通过一条或多条语句的执行结果(True 或 ...

随机推荐

  1. ZH奶酪:利用CSS将checkbox选项放大

    在Hybrid App开发过程中,html中默认的checkbox选项在手机屏幕上显得比较小,app不能像web page那样放大缩小,所以要通过CSS将checkbox选项放大: 例如HTML代码: ...

  2. MACD判断定背离,底背离

    MACD背离: 价格创新高而指标却下跌 价格创新低而指标却上涨 缠中说禅背离 多次缠绕中唇吻的面积更小 看图说话:

  3. Eclipse远程连接HBase

    在Eclipse下新建一个Map/Reduce项目,并将以下jar添加到Build path: 程序代码: package thathbase; import java.io.IOException; ...

  4. tcmalloc asan

    http://blog.csdn.net/jinzhuojun/article/details/46659155 http://blog.csdn.net/hanlizhong85/article/d ...

  5. MongoDB内存管理机制

    目前,MongoDB使用的是内存映射存储引擎,它会把磁盘IO操作转换成内存操作,如果是读操作,内存中的数据起到缓存的作用,如果是写操作,内存还可以把随机的写操作转换成顺序的写操作,总之可以大幅度提升性 ...

  6. django之异常错误3(Student matching query does not exist.)

    错误提示: DoesNotExist at /blog/test2/ Student matching query does not exist. 说明:错误提示说明错误在test2中,查找数据库的表 ...

  7. Appium原理及版本变化细节

    Appium原理小结 Api接口调用selenium的接口,Android底层用android的instrumentation(API2.3+ 通过绑定另外一个独立的selendroid项目来实现的) ...

  8. RHEL6.5 grub修复测试

    RHEL6.5 grub修复测试 1.删除系统中的grub.conf配置文件,然后重启系统#rm -f /boot/grub/grub.conf#reboot 2.重启后,系统进入到grub界面:gr ...

  9. linux-shell脚本高并发对文本url批量下载

    实践出真知 样例 http://xxxx.file.myqcloud.com/yyy/xxxxx/xxxx.jpg #注意xxx,yyy都是马赛克 需求: 1.url条数130万左右,图片都说16kB ...

  10. hibernate联合主键注解方式

    方法一:主键类用@Embeddable,pojo类仍然用@Entity但是引用主键类的对象用@Id 主键pojo类: @Embeddable public class composeIdPK impl ...