napianxinhai

博客园 首页 新随笔 联系 订阅 管理

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fruits=["apple","pear","orange"]

for x in fruits:
print(f"这叫{x}的水果")
print(f"我喜欢{x},它非常好吃")

'''结果如下,且 f必须写,不然结果就为 x:
这叫apple的水果
这叫pear的水果
这叫orange的水果
我喜欢orange,它非常好吃
'''



----------------------
fruits=["apple","pear","orange"]

for y in fruits:
print(f"这叫{y}的水果")
print(f"我喜欢{y},它非常好吃")
'''结果如下:
这叫apple的水果
我喜欢apple,它非常好吃
这叫pear的水果
我喜欢pear,它非常好吃
这叫orange的水果
我喜欢orange,它非常好吃
'''


 

 

 

 

'''----range 生成数字函数------'''
data=range(10)
print(data) # 结果:range(0, 10)
print(type(data)) # 结果:<class 'range'>

data1=list(data)
print(data1) # 结果 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(type(data1)) # 结果 <class 'list'>
print(data1,type(data1))  # 结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] <class 'list'>

 

 

'''----------统计数字的函数'''
data=range(100)
print("最小值:",min(data))
print("最大值:",max(data))
print("求和值:",sum(data))

print("长度值:",len(data))
print("平均值:",sum(data)/len(data))
'''-------结果如下:
最小值: 0
最大值: 99
求和值: 4950
长度值: 100
平均值: 49.5
-----'''


'''---------结算1--100数字的平方和'''
data=range(1,101)
sum=0
for i in data:
i=i*i
sum=sum+i

print("1--100的平方和",sum) #结果 1--100的平方和 338350

data1=list(range(1,101))
sum1=0
for i in data1:
sum1=sum1+i*i
print("1--100的平方和是",sum1) # 结果:1--100的平方和是 338350


 

 

'''-----------求前3名等'''
score11=[77,88,73,99,82,95,86,93]
score11.sort(reverse=True) # 倒叙排列

print("最高分",max(score11))
print("最低分",min(score11))

print("前3名:")
for w in score11[:3]:
print(w)




print("平均分",sum(score11)/len(score11)) # 平均分 86.625



---------------------------

 

 

 

 

 

 

 

'''----元组可拆包,不支持单个修改,支持整体修改---------'''

student=(1001,"小张",20,176)
print(student,type(student)) #结果 (1001, '小张', 20, 176) <class 'tuple'>


print("for循环遍历元组:")
for u in student:
print(u)
'''---结果:
for循环遍历元组:
1001
小张
20
176

'''

print("拆包后的多个变量:")
学号,姓名,年龄,身高=student
print("学号",学号)
print("姓名",姓名)
print("年龄",年龄)
print("身高",身高)

'''结果:
拆包后的多个变量:
学号 1001
姓名 小张
年龄 20
身高 176
'''

student[1]="张梅" # 报错:TypeError: 'tuple' object does not support item assignment

#student[1]="张梅"  # 报错:TypeError: 'tuple' object does not support item assignment  不允许单个修改

student=(1002,"小丽",20,176)
print("修改后:",student) #结果 :修改后: (1002, '小丽', 20, 176)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'''---以下是学生的爱好数据,实现代码,输出爱好名字的去重后的列表'''

#字段的value是列表,表达每个人列表类型信息
students={
"xiaozhang":{"足球","篮球"},
"xiaowang":{"篮球","兵乓球"},
"xiaoli":{"篮球","棒球","台球"},
"xiaozhao":{"羽毛球","兵乓球"},
}

likes=set()
for value in students.values():
for like in value:
likes.add(like)
print(likes)
'''结果:{'足球', '篮球'}
{'足球', '篮球', '兵乓球'}
{'棒球', '兵乓球', '足球', '台球', '篮球'}
{'棒球', '兵乓球', '羽毛球', '足球', '台球', '篮球'}'''

print(likes) # 结果 :{'台球', '羽毛球', '棒球', '足球', '兵乓球', '篮球'}

 

 

numbers=range(10)

#1个列表,里面是每个䦹数字的平方
data_list=[x*x for x in numbers if x%2==0]
print("data_list",data_list,type(data_list))

#1个字典,里面的key是偶数数字,value是它的平方,注意字典key是无序的

data_list={x:x*x for x in numbers if x%2==0}
print("data_list",data_list,type(data_list))

#1个集合,每个元素是偶数数字的平方,注意集合是无序的
data_set={x*x for x in numbers if x%2==0}
print("data_set",data_set,type(data_set))

'''结果如下:
data_list [0, 4, 16, 36, 64] <class 'list'>
data_list {0: 0, 2: 4, 4: 16, 6: 36, 8: 64} <class 'dict'>
data_set {0, 64, 4, 36, 16} <class 'set'>
'''

 

 

 

 

 

 


number1=input("请输入数字:")
print("类型:",type(number1),"值:",number1)
number1=int(number1)
print("类型:",type(number1),"值:",number1*number1)

''' 结果如下,注意:input返回的都是str字符串类型,想计算则需要转换:
请输入数字:8
类型: <class 'str'> 值: 8
类型: <class 'int'> 值: 64
'''

 

 

 


number1=input("请输入数字:")
print("类型:",type(number1),"值:",number1)
number1=int(number1)
if number1%2==0:
print(f"你输入的{number1}是偶数")
else:
print(f"你输入的{number1}是奇数")

'''
类型: <class 'str'> 值: 8
你输入的8是偶数
类型: <class 'str'> 值: 7
你输入的7是奇数

'''

 

 

 

 

 

 

 

 

'''-----------------'''
while True:
print("#"*20)
info=input("请输入一个你喜欢的颜色,输入quit则是退出:")
if info=="quit":
break
else:
print("很好,你喜欢的颜色是{info")

'''结果如下:
####################
请输入一个你喜欢的颜色,输入quit则是退出:red
很好,你喜欢的颜色是{info
####################
请输入一个你喜欢的颜色,输入quit则是退出:quit
'''


 

 

 

 

 

 

 

 

 

 

 

 

 ---------------------------函数  如下:------------------------------------

 

 

 

 

 

 

 

 

 

 

def  print_hello(name):
print(f"大家好,我叫{name}") # f 必须有,不然结果为大家好,我叫{name}


print_hello("小王") # 结果 大家好,我叫小王
print_hello("小李") # 结果 大家好,我叫小李


------------------------------------------------------
def sum_numbers(number):
sum_values=0
for i in range(1,number+1):
sum_values+=i
print(f"{number}的和:",sum_values)
print(number,sum_values)
    print(f"{number}的和:",f"{sum_values}")
   print(f"{number}的和:,{sum_values}")


sum_numbers(100)
sum_numbers(1000)

'''结果如下:

100的和: 5050
100 5050
100的和: 5050
1000的和: 500500
1000 500500
1000的和: 500500


'''

 

 

 

 

 

 

 

 

 

 


'''-----位置实参需要按顺序、关键字参数用key-value可以换顺序、默认值参数可以不填-------'''

def introduce(name,age=6):
print(f"大家好,我的名字是:{name},我今年{age}岁了")

#如下的调用方式都可以
introduce("小明")
introduce(name="小张")
introduce("小白",5)
introduce(name="小丽",age=5)
introduce(age=5,name="小王")

'''----结果如下:---
大家好,我的名字是:小明,我今年6岁了
大家好,我的名字是:小张,我今年6岁了
大家好,我的名字是:小白,我今年5岁了
大家好,我的名字是:小丽,我今年5岁了
大家好,我的名字是:小王,我今年5岁了
'''


 

 

 

'''-----------------'''
def compute(x,y,method="add"):
if method=="add":
print(f"{x}+{y}=",x+y)

elif method=="sub":
print(f"{x}-{y}=", x - y)
elif method=="mul":
print(f"{x}*{y}=", x * y)
elif method=="div":
print(f"{x}/{y}=", x / y)

compute(3,4,"add") # 结果 3+4= 7
compute(3,4,"sub") # 结果 3-4= -1

compute(x=3,y=4,method="sub") # 结果 3-4= -1
compute(3,y=4,method="sub") # 结果 3-4= -1
compute(3,4,method="sub") # 结果 3-4= -1

compute(3,4) # 结果 3+4= 7
compute(3,y=4) # 结果 3+4= 7
compute(x=3,y=4) # 结果 3+4= 7

 

 

 

 

 

 

'''----------函数可以放开变量接收 、可以单个变量接收,这时候返回的是一个元组------------'''
student1={
"小明": {"id": 101, "age": 18,"gender":"boy"},
"小张": {"id": 102, "age": 19, "gender": "girl"},
"小明": {"id": 103, "age": 17, "gender": "boy"}

}

def get_student(name):
if name in student1:
return student1[name]["age"],student1[name]["gender"]
else:
return None,None

age,gender=get_student("小明")
print(age,gender,type(age),type(gender)) # 结果 17 boy <class 'int'> <class 'str'>

info=get_student("小明")
print(info,type(info)) # 结果 (17, 'boy') <class 'tuple'>

 

 

'''------------第2个函数add(x,y)调用第1个函数compute(x,y,method=add)得到结果返回----------------------'''
def compute(x,y,method1):
if method1=='add':
return x+y
elif method1=='sub':
return x-y
elif method1=='mul':
return x*y
elif method1 == 'div':
return x / y

def add(x,y):
return compute(x,y,"add")

def sub(x,y):
return compute(x,y,"sub")

print("相加的和为",add(3,4)) # 结果 相加的和为 7
print("相减的差为",sub(8,3)) # 结果 相减的差为 5

 

 

 

 

 

 

该57节了


 

 

compute.py模块如下:

def add(x,y):
return x+y


def sub(x,y):
return x-y


def mul(x,y):
return x*y


def div(x,y):
return x/y


另一个模块调用 compute.py此模块的函数人 add sub等:
''---引用模块的函数'''
import compute
print(compute.add(3,5))
print(compute.sub(3,5))

import compute as cp
print(cp.add(3,5))
print(cp.sub(3,5))


from compute import add,sub
print(add(3,5))
print(sub(3,5))

from compute import * # 尽量不用*的
print(add(3,5))
print(sub(3,5))

 

 

 

 

 

 

 

 

 

'''-----------lambda函数和列表的排序----------'''

'''------对学生数据按成绩排序-------'''
sqrades=[("xiaoming",89),("xiaozhao",77),("xiaoxiaozhang",99)]

print(sqrades.sort()) #结果为 None 不能这样用print,
print(sqrades) #结果 [('xiaoming', 89), ('xiaoxiaozhang', 99), ('xiaozhao', 77)]
#此种方法结果不错,它只会按照第一项排序 不可行的方法
sqrades.sort(key=lambda x:x[1])
print(sqrades) # 结果为 [('xiaozhao', 77), ('xiaoming', 89), ('xiaoxiaozhang', 99)]

new_list=sorted(sqrades,key=lambda x:x[1],reverse=True)
print(new_list)            # 结果为 [('xiaoxiaozhang', 99), ('xiaoming', 89), ('xiaozhao', 77)]

print(sorted(sqrades,key=lambda  x:x[1],reverse=True))  # 结果为[('xiaoxiaozhang', 99), ('xiaoming', 89), ('xiaozhao', 77)]
 

def mfunc(x):
return x[1]
mfunc(sqrades) # 结果 [('xiaoxiaozhang', 99), ('xiaoming', 89), ('xiaozhao', 77)]

 

 -----------------------9、面向对象编程--------------------

 

 

 

 

 

 

 

 

 

 

 

对象这个函数叫方法,如果一个函数属于某个对象,则叫方法, 如果不属于对象,则叫函数



'''对象这个函数叫方法,如果一个函数属于某个对象,则叫方法, 如果不属于对象,则叫函数'''

class Student:
def __init__(self, name, age):
# 初始化方法 构造函数
# 普通实例变量,每个实例独有'''
self.name = name
self.age = age

def introduce(self):
#普通方法
return f"大家伙,我叫{self.name},我{self.age}岁了" #此处需是return 不然返回none

xiaoming=Student("小明",18)
xiaozhang=Student("小张",17)
xiaozhao=Student("小赵",19)

#使用对象.属性来访问属性:使用对象.方法来调用方法

print(xiaoming.name,xiaoming.age,xiaoming.introduce()) # 小明 18 大家伙,我叫小明,我18岁了

print(xiaozhang.name,xiaozhang.age,xiaozhang.introduce()) # 小张 17 大家伙,我叫小张,我17岁了


 

 


'''------------类与对象练习题'-----------'''

class Phone:
def __init__(self,model,price):
self.model=model
self.price=price

def describe(self):
return f"这是{self.model}手机,价格是{self.price}"
# print(f"这是{self.model}手机,价格是{self.price}") # print(f"这是{self.model}手机,价格是{self.price}")时,则返回None 不能用

def call_friend(self,friend_name):
print(f"我在用手机{self.model}打电话给{friend_name}")

iphone13=Phone("iphone",6000)
huawei=Phone("huawe",3000)

print(iphone13.describe())
iphone13.call_friend("小明")

 

 

# iphone13.describe()  # 如果 函数中 print(f"这是{self.model}手机,价格是{self.price}") 则用此结果正确这是iphone手机,价格是6000
'''运行结果如下:
这是iphone手机,价格是6000
我在用手机iphone打电话给小明

'''

 


 

'''**************修改对象的属性值***********'''
class StundentGrade:
"学生成绩"

def __init__(self,name,yuwen,shuxue):
self.name=name
self.yuwen=yuwen
self.shuxue=shuxue

def update(self,course,grade):
if course=="语文":
self.yuwen=grade
if course=="数学":
self.shuxue=grade

xiaoming=StundentGrade("小明",88,99)
xiaoming.yuwen=10
xiaoming.shuxue=60
print("小明",xiaoming.yuwen,xiaoming.shuxue) # 小明 10 60


xiaoming.update("语文",66)
xiaoming.update("数学",56)

print("小明",xiaoming.yuwen,xiaoming.shuxue) # 结果:小明 66 56


 

 


'''---------------对象存到列表或字典中--------------'''
class StundentGrade1:
"学生成绩"

def __init__(self,name,yuwen,shuxue):
self.name=name
self.yuwen=yuwen
self.shuxue=shuxue

def update(self,course,grade):
if course=="语文":
self.yuwen=grade
if course=="数学":
self.shuxue=grade

xiaoming=StundentGrade1("小明",88,99)
xiaozhang=StundentGrade1("小张",100,100)
xiaozhao=StundentGrade1("小赵",60,70)

#把对象放列表里
student_list=[xiaoming,xiaozhang,xiaozhao]
print("--------#把对象放列表里----------------------------")
for student in student_list:
print(student.name,student.yuwen,student.shuxue)

'''结果如下:------------------------------------
--------#把对象放列表里----------------------------
小明 88 99
小张 100 100
小赵 60 70
'''

#--------把对象放到字典中----------
student_dict={
"小明":xiaoming,
"小张": xiaozhang,
"小赵": xiaozhao

}
print("*****把类的对象放到字典中*********")
for name,student in student_dict.items():

print(f"学生{name}的成绩是语文{student.yuwen},数学是{student.shuxue}")

'''
*****把类的对象放到字典中*********
学生小明的成绩是语文88,数学是99
学生小张的成绩是语文100,数学是100
学生小赵的成绩是语文60,数学是70

Process finished with exit code 0

'''


 

 

'''''''''-----------面向对象编程类的练习题  课时64  礼金-----------'''
class Customer:
def __init__(self,name,money):
self.name=name
self.money=money

customers=[]
while True:
print("*"*20)
info=input("请输入来人姓名和金额:")
if info=="quit" :
break
name,money=info.split()
money=int(money)
customer=Customer(name,money)
customers.append(customer)

print("请客总人数:",len(customers))
moneys=[c.money for c in customers]
print("总金额:",sum(moneys))
print("最大金额:", max(moneys))
print("最小金额:", min(moneys))
print("平均金额:", sum(moneys)/len(moneys))




'''结果如下 1000 2000 3000:
请客总人数: 3
总金额: 6000
最大金额: 3000
最小金额: 1000
平均金额: 2000.0
'''

 


 

 

 

 

'''------------面向类的继承--------------'''

class Car: #父类
def __init__(self,model,price):
self.model=model
self.price=price

def info(self):
print(f"车型是{self.model},价格是{self.price}万元")

class OilCar(Car):
def __init__(self,model,price,box_size):
super().__init__(model,price) #子类继承父类
self.box_size=box_size

def add_oil(self,money):
print(f"老板,加{money}元的汽油")

def info(self):
super().info()
print("我的油车,跑起来比电脑车动力更足")


class ElectricCar(Car):
def __init__(self,model,price,battery_size):
super().__init__(model,price)
self.battery_size=battery_size

def add_electric(self,money):
print(f"车是{self.price}元,充电花了{money}元")

print("------面向类的继承------")
ocar01=OilCar("路虎",60,80)
print(ocar01.model,ocar01.price,ocar01.box_size)
ocar01.info()
ocar01.add_oil(200)


ecar01=OilCar("特斯拉",100,200)
print(ecar01.model,ecar01.price,ecar01.box_size)
ecar01.info()
ecar01.add_oil(300)

'''结果如下:
------面向类的继承------
路虎 60 80
车型是路虎,价格是60万元
我的油车,跑起来比电脑车动力更足
老板,加200元的汽油
特斯拉 100 200
车型是特斯拉,价格是100万元
我的油车,跑起来比电脑车动力更足
老板,加300元的汽油

'''

 


 


66课时:


 

 

 

 

 

 


'''---------66节 继承练习题------'''
print("--------------66节 继承练习题-------------")
class User: #父类
def __init__(self,name,password):
self.name=name
self.password=password

def welcome(self):
print(f"你好{self.name},欢迎到来")

class Admin(User): #子类
def __init__(self,name,password):
super().__init__(name,password)

def manager(self):
print("我在管理系统")

class VipUser(User):
def __init__(self,name,password,money):
super().__init__(name,password)
self.money=money

def welcome(self):
print(f"你好,尊贵的Vip用户{self.name},欢迎归来")

def vip_service(self):
print("您好,尊贵的贵宾服务")

admin01=Admin("Admin01",1234)
admin02=Admin("Admin02",1234)
Vip01=VipUser("Vip01",1234,1000)
Vip02=VipUser("Vip02",1234,2000)
user01=User("user01",1234)
user02=User("user02",1234)

admin01.welcome()
admin01.manager()
admin02.welcome()
admin02.manager()

Vip01.welcome()
Vip01.vip_service()
Vip02.welcome()
Vip02.vip_service()

user01.welcome()
user02.welcome()

'''
你好Admin01,欢迎到来
我在管理系统
你好Admin02,欢迎到来
我在管理系统
你好,尊贵的Vip用户Vip01,欢迎归来
您好,尊贵的贵宾服务
你好,尊贵的Vip用户Vip02,欢迎归来
您好,尊贵的贵宾服务
你好user01,欢迎到来
你好user02,欢迎到来

'''

 

 

 

 

 

 

 

car.py  # 把类写到不同文件(模块)中

class Car:
def __init__(self,model,price):
self.model=model
self.price=price

def info(self):
print(f"车型是{self.model},价格是{self.price}万元")

#以下为 引用文件/模块的类:

import  car
my_car=car.Car("路虎",60)
my_car.info() # 结果 车型是路虎,价格是60万元

import car as c
my_car=c.Car("红旗",70)
my_car.info() # 结果 车型是红旗,价格是70万元

from car import Car
my_car=Car("宝马",100)
my_car.info() # 结果 车型是宝马,价格是100万元

from car import *
my_car=Car("五菱",10)
my_car.info() # 结果 车型是五菱,价格是10万元

 


 #  -------------以下为68节 将类写到不同模块中-------------------------

animal.py:
class Animal:
def __init__(self,name):
self.name=name

def run(self):
print(f"我是动物,爱奔跑")

sheep.py:
import  animal

class Sheep(animal.Animal):
def __init__(self,name):
super().__init__(name)

def eat_grass(self):
print(f"我是羊,在吃草")

tiger.py:
from animal import  Animal

class Tiger(Animal):
def __init__(self,name):
self.name=name

def eat_meat(self,param_animals):
print(f"我是老虎,在吃{param_animals.name}") #?????

main.py:
from sheep import  Sheep
from tiger import Tiger

one_sheep=Sheep("小羊")
one_sheep.eat_grass()

one_tiger=Tiger("大老虎") # 结果:我是羊,在吃草
one_tiger.eat_meat(one_sheep) # 结果:我是老虎,在吃小羊


该文件处理操作:

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


读取文件方法如下:

'''-----读取方法一:-----------'''
f=open("input.txt",encoding='utf8')
content=f.read()
print(content)
f.close()

'''-----读取方法二:用with 此方法不用f.close()-----------'''
print("------读取方法二:用with 此方法不用f.close()-----------")
with open("input.txt",encoding='utf8') as f:
content=f.read()
print(content)

'''-----读取方法三:按行读取-----------'''
print("-------读取方法三:按行读取-----------")
with open("input.txt",encoding='utf8') as f:
for line in f:
# line=line[:-1] #去掉行尾空格方法1
line=line.rstrip() #去掉行尾空格方法1
print(line)




'''-----读取方法四:按行读取并把各行整合为1行显示----------'''
print("-------读取方法四:按行读取并把各行整合为1行显示-----------")
with open("input.txt",encoding='utf8') as f:
lines=f.readlines()
print(lines) # 结果 ['小王\n', '小张\n', '小赵\n', '小李\n']


'''-----读取方法五:按行读取并把各行整合为1行显示,且去掉了换行符-------'''
print("-------读取方法五:按行读取并把各行整合为1行显示-----------")
with open("input.txt",encoding='utf8') as f:
lines=f.readlines()
lines=[x[:-1] for x in lines]
print(lines) # 结果 ['小王', '小张', '小赵', '小李']



'''----结合文件实现英汉互译------'''
eng_dict={}
with open("英汉字典.txt",encoding='utf8') as f:
for line in f:
line=line.rstrip()
fields=line.split(",") # 重点,拆分到各字段
if len(fields)!=2: #????
continue
          print(f"fields的值是{fields}")
        english,chinese=fields
eng_dict[english]=chinese

while True:
print("***结合文件实现英汉互译***")
info=input("请输入英文词语:")
if info=="quit":
break
if info in eng_dict:
print("查询结果,汉语是:",eng_dict[info])
else:
print("没有这个词语",info)

'''结果如下:
***结合文件实现英汉互译***
fields的值是['sheep', '羊']
fields的值是['tiger', '老虎']
fields的值是['duck', '鸭子']
fields的值是['fish', '鱼']
请输入英文词语:fish
查询结果,汉语是: 鱼
请输入英文词语:
'''


 

 

 

 


'''----写数据到文件----'''
print("******写数据到文件******")
with open("写到数字列表.txt","w",encoding="utf8") as f:
for number in range(10):
# f.write(str(number)) # 结果 0123456789
f.write(str(number)+"\n")

'''
# 结果
01
2
3
4
5
6
7
8
9
'''

 

 


 


fname="婚礼礼金.txt"
print("--------婚礼礼金-------")
with open(fname,"w",encoding="utf8") as f:
while True:

info=input("请输入来人和金额:")
if info=='quit':
break
fields=info.split()
if len(fields)==2:
name,money=fields
else:
continue

money=int(money)
f.write(f"{name},{money}\n")
'''----------以上为把姓名和礼金写到txt文档中--------'''


with open(fname,encoding="utf8") as f:
moneys=[] #列表
for line in f:
line=line[:-1]
fields=line.split(",")
if len(fields)==2:
name,money=fields
else:
continue
moneys.append(int(money))

print("加和:",sum(moneys))
print("最高:",max(moneys))
print("最低:",min(moneys))
print("平均值:",sum(moneys)/len(moneys))


'''结果如下:
-------婚礼礼金-------
请输入来人和金额:小张 1000
请输入来人和金额:小李 2000
请输入来人和金额:小王 3000
请输入来人和金额:小赵 4000
请输入来人和金额:quit
加和: 10000
最高: 4000
最低: 1000
平均值: 2500.0

Process finished with exit code 0

'''

 

 

 

 

 

 

 

 


'''---------判断礼金是否存在---------'''
file='婚礼礼金.txt'

import os
print(f"{file}",os.path.exists(file)) # 结果 婚礼礼金.txt True

print(f"xx.txt",os.path.exists("xx.txt")) # 结果 xx.txt False

file=r"C:\Users\Administrator\PycharmProjects\视频2023.04\一、入门基础\compute.py"
print(f"{file}",os.path.exists(file)) # 结果 C:\Users\Administrator\PycharmProjects\视频2023.04\一、入门基础\compute.py True

 


 

 


 

 


 

 

 

 


 

 

 

'''------json格式与文件,json.dumps()用来将对象转换为大字符串----'''

import json
data=list(range(5))
print(json.dumps(data),type(json.dumps(data))) # [0, 1, 2, 3, 4] <class 'str'>
# 使用dumps函数将Python数据结构转换成字符串
# 如要处理的是文件而不是字符串,你可以使用 json.dump() 和 json.load() 来编码和解码JSON数据

data_dict={
number:number*number
for number in data
if number%2==0
}

print(json.dumps(data_dict),type(json.dumps(data_dict))) # 结果 {"0": 0, "2": 4, "4": 16} <class 'str'>



 

 


 

 

 

#---------------------
print("-------json格式与文件,json.loads()用来将字符串加载成对象,直接变成Python对象,如字典--------")
info1="""
{"0":0,"2":4,"4":16}
"""
print(type(info1)) #结果 :<class 'str'>

import json
data=json.loads(info1)
print(data,type(data)) # 结果:{'0': 0, '2': 4, '4': 16} <class 'dict'>
print(f"值为:{data},类型为:{type(data)}") # 结果:值为:{'0': 0, '2': 4, '4': 16},类型为:<class 'dict'>
print(type(data)) # 结果 <class 'dict'>


 
 
 

 

 

 

 

 

 

 

 

 

 

 

try:
a=5
b=1
print(a/b)
except ZeroDivisionError as e:
print("出现问题了:",e)

print("异常处理的方法一")

try:
with open("xxxx.txt") as f:
print(f.read())
except Exception as e:
print("读取文件错误",e)

print("异常处理方法二")

'''结果如下:
5.0
异常处理的方法一
读取文件错误 [Errno 2] No such file or directory: 'xxxx.txt'
异常处理方法二

'''


 

 

 

78节 异常处理练习题  print("---练习学生成绩带异常处理---")

file_name="学生成绩带异常处理.txt"
with open(file_name,"w",encoding="utf8") as f:
while True:

info=input("请输入姓名和成绩:")
try:
if info=="quit":
break
name,grade=info.split()
grade=int(grade)
print(f"姓名:{name},成绩:{grade}")
except Exception as e:
print("出现问题了:",e,"你输入的是:",info)
continue
f.write(f"姓名是:{name},成绩为:{grade}\n")
print("success")

'''结果如下:

---练习学生成绩带异常处理---
请输入姓名和成绩:小张 100
姓名:小张,成绩:100
请输入姓名和成绩:小李 90
姓名:小李,成绩:90
请输入姓名和成绩:小王 80
姓名:小王,成绩:80
请输入姓名和成绩:孙老师
出现问题了: not enough values to unpack (expected 2, got 1) 你输入的是: 孙老师
请输入姓名和成绩:quit
success
'''

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

import  requests

r=requests.get("https://www.baidu.com/") # 发送get请求获取url返回结果
print(r.status_code) # 结果 200 查看返回状态码,如果==200代表返回成功
print(r.text) #获取返回王爷的内容

 

 

"""
有个网站地址是:http://antpython.net/
用requests.get请求这个网页,查看状态码和结果文件
讲文本存储到一个本地的电脑文件antpyton.html文件中
打开自己的电脑文件夹,双击该文件,查看效果
"""

'''----------用requests来抓取网站的内容,存到电脑,并可查看效果---'''
print("----用requests来抓取网站的内容,存到电脑,并可查看效果-----")
import requests
url="http://antpython.net"
r1=requests.get(url)
print(r1.status_code)



with open("antpyton.html","w",encoding="utf8") as f:
f.write(r1.text)

 

 

 

 

 

 

 

 

 

 

 

'''''-----------------------'''
print("---Python数据分析库 pandas 用于数据运算,如整理、清洗、归并等---")

print("---讲数据生成一个Excel文件---")

data1=[
["s001", "小明",89],
["s002", "小张", 90],
["s003", "小赵", 66],

]

import pandas as pd
df=pd.DataFrame(data1,columns=["学号","姓名","成绩"])
df.to_excel("学生成绩Excel文件.xlsx")

 

文件打开如图:

 

 

 

 

 

 

 

 

 

 

 

 

#------pandas练习题:结婚礼金录入后存到Excele文件------

# 编写结婚礼金录入程序,存到Excele文件
# 建立datas一个列表,将来要存储成["小明:"1000],["小张:"2000]的形式
# while True循环
# 输入quit退出循环
# 输入小明 1000,分割姓名,金额字段,存入列表
# 退出循环
# 创建pd.DataFrame
# 存入Excel文件


import pandas as pd
datas=[]


while True:
info = input("请输入随礼人员姓名,金额:")
if info=="quit":
break

fields=info.split()
print(fields)
if len(fields)!=2:
print("输入有问题,请再次输入")
continue

name,money=fields
datas.append([name,money])



df=pd.DataFrame(datas, columns=["姓名", "金额"])
df.to_excel("结婚礼金汇总表.xlsx")

 

 

df.to_excel("结婚礼金汇总表.xlsx",index=False)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2023-03-29 22:25  那片心海  阅读(123)  评论(0)    收藏  举报