练习:
统计文件代码行数,不包括注释行.
"""
统计文件夹所有文件的代码
1.统计单个文件的代码!
打开文件
有#的不统计
遇到多行注释不统计
"""
#定义统计行数函数
def Iris_Code_Counter(file):
lines=0
#以读的方式打开文件
f=open(file,'r',encoding='utf-8')
f.seek(0)
content=f.readline()
#做一个开关
add = True
str=' """ '
while content !="" :
content=f.readline()
#开关,当遇到"""时,就把add置为false,下次再遇到"""则置为true
if str in content :
add = not add
#当add为false,行数不计算,当add为true则计算行数.
#如果遇到'#则行数不+1,.
if add :
if '#' not in content :
lines +=1
f.close()
#再做循环之前,已经读了一次文件,所以光标位置到了下一行,再循环中开始的行数是第二行,所以把第一行加上
lines +=1
return lines
print(Iris_Code_Counter('判断是否为水仙花数.py'))
输出结果:
29
名片管理系统
功能:
应完成以上功能
创建俩个文件,第一个主文件cards_main主要用来搭建框架,第二个文件cards_tool,主要用来实现各部分功能,通过主文件的调用,来完成此次实验.
cards_main文件代码:
#导入cards_tool文件
import cards_tool
while True:
#显示菜单
cards_tool.show_menu()
action=input("请您输入要选择的功能")
print("您选择的功能是{0}".format(action))
#判断用户所选择的功能
if action in ['1','2','3']:
#新建名片功能
if action == '1':
list1=cards_tool.new_card()
#显示全部名片信息
elif action =='2':
cards_tool.show_all()
#查询名片
else :
cards_tool.search_name()
#退出功能
elif action =='0' :
print("感谢您使用本名片管理系统,欢迎下次您的使用!")
break
#如果用户输入功能之外的数字,所执行的功能
else:
print("您输入的有误,请您重新输入")
cards_tool文件代码:
#存放数据的列表
list1=[{'姓名':'张三','手机号':'1223','公司名称':'数据'}]
#菜单功能
def show_menu():
print('*'*50)
print("欢迎使用【名片管理系统】 v1.0\n")
print("1. 新建名片\n2. 显示全部\n3. 查询名片\n\n0. 退出系统")
print('*'*50)
#新建名片功能
def new_card():
name=input("请输入姓名:")
num=input("请输入手机号:")
address=input("请输入公司名称:")
#将用户输入的信息,以字典的形式进行保存
dic1={'姓名':name,'手机号':num,'公司名称':address}
global list1
#将信息保存到列表中
list1.append(dic1)
#提示信息
print("恭喜您添加成功")
#return list1
#显示全部名片信息功能
def show_all():
#显示所有信息
for i in range(len(list1)):
print(list1[i])
#查询名片功能
def search_name():
name=input('请输入要查询的名字:')
t=0
for i in range(len(list1)):
#判断用户所要查找的是否在列表中
if name in list1[i]['姓名']:
t +=1
print(list1[i])
print("1.修改\n2.删除\n3. 退出")
action=input('请输入您要操作的步骤')
if action == '1':
name=input("请输入修改后的姓名,如果不修改请按回车")