python基本语法
1.print的语法
print("666"+"what can I say"+" .")#+的使用
print("He said \"Let's go\"")#打印“的方法
print("ok\nyou are right")#换行符和c语言一样
print("""床前明月光,
疑似地下霜。
举头望明月,
低头思故乡。""")#三引号的使用
2.变量使用
num=1233#int类型
num2="1233" #char类型
num3=1233.0 #float类型
import math
c=math.log2(7)
print(c)
d=6**4
print(d)
#求解一元二次方程
a=1
b=-2
c=1
print((-1*b+math.sqrt(b*b-4*a*c))/(2*a))
print((-1*b-math.sqrt(b*b-4*a*c))/(2*a))
eee="hello world"
print(eee[6]+eee[7])
#布尔类型
b1=True
b2=False
#空值类型
n1=None
#如果不太清楚变量类型可以通过type()来查看变量的类型
print(type(eee))
print(type(b1))
print(type(n1))
print(type(num))
print(type(num3))
3.条件语句
#mood_index=int(input("今天的心情指数为:"))
#单if语句
# if mood_index >=60:
# print("今天可以浅浅玩了")
# else:
# print("打不了一点")
#elif语句
weight=float(input("请输入你的体重(Kg):"))
height=float(input("请输入你的身高(m):"))
BMI=weight/(height**2)
if 28>BMI>25:
print("你的BMI属于偏胖范围")
elif BMI>=28:
print("你的BMI属于偏胖范围")
elif BMI <=18:
print("你的BMI属于偏廋范围")
elif 25>=BMI >18:
print("你的BMI属于正常范围")
4.列表
shopping_list=[]
#添加
shopping_list.append("manba")
shopping_list.append("牛奶")
shopping_list.append("牛马")
shopping_list.append("电脑")
shopping_list[2]="可莉"
#移除
shopping_list.remove("manba")
#打印整个列表
print(shopping_list)
#打印列表的长度
print(len(shopping_list))
#打印列表的第1个元素(打印列表的第i个数字,以i-1为索引表示)
print(shopping_list[0])
price=[10,20,50,100,80]
#求最大值
price_max=max(price)
#求最小值
price_min=min(price)
#让价格从小到大排序
price_sort=sorted(price)
print(price_max)
print(price_min)
print(price_sort)
5.字典
#字典可以通过大括号{}来创建,键和值之间使用冒号:分隔,项之间用逗号隔开
#第一个词条
slang_dict={"原神":"""《原神》是由上海米哈游网络科技股份有限公司制作发行的一款开放世界冒险游戏。游戏于2017年1月底立项,原初测试于2019年6月21日开启,再临测试于2020年3月19日开启,启程测试于2020年6月11日开启,PC版技术性开放测试于9月15日开启,公测于2020年9月28日开启。
游戏发生在一个被称作“提瓦特大陆”的幻想世界,在这里,被神选中的人将被授予“神之眼”,引导元素之力。玩家将扮演一位名为“旅行者”的神秘角色,在自由的旅行中邂逅性格各异、能力独特的同伴们,和他们一起击败强敌,找回失散的亲人——同时,逐步发掘“原神”的真相。
《原神》现已登录PS平台、iOS、Android、PC平台,并支持移动端、PC端以及PS平台数据互通,旅行者可自由选择平台和设备开启冒险。"""}
#第二个词条
slang_dict["manba"]="what can I say"
query=input("你要查找的词条是:")
if query in slang_dict:
print("你查询的"+query+"含义如下")
print(slang_dict[query])
else:
print("暂未收录该词条的信息")
print("当前收录的总词条数为"+str(len(slang_dict))+"条。")
6.for循环
#range的用法
"""
range(stop):生成从0开始到stop-1的整数序列。
range(start, stop):生成从start开始到stop-1的整数序列。
range(start, stop, step):生成从start开始到stop-1的整数序列,步长为step
"""
sum=0
#从1加到100
# for i in range(1,101):
# sum=sum+i
# print(sum)
#从1加到100,步长为2
for i in range(1,101,2):
sum=sum+i
print(sum)
7.while循环
print("这是一个求多数平均值的系统")
add=input("请输入要添加的数字(按‘q'退出添加): ")
total=0
count=0
while add != "q":
num=float(add)
add=input("请输入要添加的数字(按‘q'退出添加):")
total=total+num
count=count+1
if count==0:
print("数字之和为:0")
print("数字的数量为:0")
print("平均值为:0")
else:
ave=total/count
print("数字之和为:"+str(total))
print("数字的数量为:"+str(count))
print("平均值为:"+str(ave))
8.格式化字符串
name="老林"
year="虎"
message_content=f"""虎啸山林春意浓,福星高照喜临门。
一帆风顺吉星到,万事如意乐满心。
财源广进金满箱,事业腾飞步青云。
平安健康常相伴,幸福生活岁岁新。
{year}蹄为你开财路,{year}尾拂去忧愁痕。
{year}耳倾听喜讯至,{year}背驮来康寿春。
愿君{year}年添虎翼,壮志凌云展宏图。
合家欢乐人团圆,笑语盈盈满堂屋。
新春佳节倍思亲,祝福送到心坎里。
愿得清风软如梦,岁岁年年皆如意。
新的一年{name}祝你们新春快乐。
"""
print(message_content)
9.函数
#def 定义一个函数
def caculator_BMI(weight,height):
BMI = float((weight / (height ** 2)))
print("你的BMI指数为:" + str(BMI))
if 28 > BMI > 25:
print("你的BMI属于偏胖范围")
elif BMI >= 28:
print("你的BMI属于偏胖范围")
elif BMI <= 18:
print("你的BMI属于偏廋范围")
elif 25 >= BMI > 18:
print("你的BMI属于正常范围")
caculator_BMI(74,1.73)
10.类
#class来定义一个类
# class cutesnake:
# def __init__(self,snake_name,snake_age):
# self.name=snake_name
# self.age=snake_age
# def speak(self):
# print("嘶"*self.age)
# def have_class(self):
# print("都给我看过来,我手指到哪里,哪里就有问题")
#
# snake1=cutesnake("张征",12)
# print(f"小蛇的名字叫{snake1.name},它的年龄是{snake1.age}岁")
# snake1.speak()
# snake1.have_class()
#
class student:
def __init__(self,student_ID,student_name):
self.name=student_name
self.ID=student_ID
def score(self,stu_Math,stu_English,stu_Chinese):
self.math=stu_Math
self.English=stu_English
self.Chinese=stu_Chinese
def print_score(self):
print("英语成绩为:"+str(self.English))
print("数学成绩为:"+str(self.math))
print("语文成绩为:"+str(self.Chinese))
student1=student(66,"张征")
student1.score(92,66,29)
student1.print_score()
11.类继承
class employee:
def __init__(self,emp_name,emp_id):
self.name=emp_name
self.id=emp_id
def print_info(self):
print(f"姓名:{self.name} id:{self.id}")
class fulltime(employee):
def __init__ (self,name,id,monthly_salary):
super().__init__(name,id)
self.monthly_salary=monthly_salary
class parttime(employee):
def __init__(self, name, id, daily_salary,work_days):
super().__init__(name,id)
self.all_daily_salary = daily_salary*work_days
emp1=employee("张征",2024002391)
emp1.print_info()
emp1=fulltime("张征",2020200202,6600)
emp2=parttime("zhangzheng",66,100,20)
print(emp2.print_info())
print(f"总工资为{emp2.all_daily_salary}")
12读取文件
运行之前,提前在当前文件路径下准备一个名为data.txt的文件
#打开文件
file1=open("./data.txt","r",encoding="utf-8")#r是只读,encoding=utf-8是编码方式为utf-8
#读取文件所有内容
lines=file1.readlines()
#按行一行一行输出
for line in lines:
print(line)
13写入文件
#以诗为例
f=open("./poem.txt","r+",encoding="utf-8")
f.write("我欲乘风归去\n")
f.write("又恐琼楼玉宇\n")
f.write("高处不胜寒\n")
f.write("起舞弄清影\n")
f.write("何似在人间\n")
f.close()
14.装饰器
'''装饰器是Python语言中的一种高级语法,它可以在不改变原有代码的情况下,动态地为函数或者类添加功能。装饰器本质上是一个Python函数或类,它可以接受一个函数或类作为输入,并返回一个新的函数或类,这个新的函数或类通常会在原有功能的基础上增加一些额外的功能。
装饰器的实现原理是利用了Python中的闭包和函数对象特性。在Python中,函数和类都是一等公民,它们可以像普通变量一样被传递、赋值、作为参数和返回值。装饰器实际上就是一个函数,它接受一个函数作为参数,并返回一个新的函数。在返回的新函数中,我们可以添加一些额外的功能,如缓存函数、认证用户、记录日志、计时、权限验证等。然后再将这个新函数返回,从而实现对原有函数的装饰。
装饰器的语法使用`@`符号来表示,例如:
@decorator
def my_function():
pass
这里的`@decorator`就是装饰器语法,它告诉Python解释器在调用`my_function`之前,先调用`decorator`函数。装饰器函数通常会接收被装饰的函数作为参数,然后返回一个新的函数,这个新函数会在执行原有函数之前或之后执行一些额外的代码。
装饰器可以用于多种场景,如日志记录、计时器、缓存、权限/身份验证、错误处理等。它们使得代码更加简洁、优雅,并且提高了代码的复用性和可维护性。
除了基本的装饰器语法外,还有一些高阶的用法,如带参数的装饰器、类装饰器、多装饰器嵌套等,这些高级用法可以让装饰器更加灵活和强大。例如,带参数的装饰器允许我们给装饰器传递一些参数,比如日志的级别、缓存的大小等;而类装饰器则是使用类来实现装饰器功能,它们接受的参数是一个类,而不是一个函数。
在实际开发中,我们可以根据具体的需求来选择合适的装饰器,并使用高阶用法来实现更加灵活和强大的功能。
'''
import functools
# def square(x):
# return x*x
#
# def print_running(f,x):
# print(f'{f.__name__} is running')
# return f(x)
#
#
# ret=print_running(square,2)
"""
在Python中,*args和**kwargs是用于处理可变数量参数的语法。
*args用于接收任意数量的非关键字参数(位置参数),
**kwargs用于接收任意数量的关键字参数。这两种语法允许函数接受不确定数量的参数,增强了函数的灵活性。
"""
import time
#做一个判断函数运行时间的装饰器
# def decorator(func):
# def wrapper(*args,**kwargs):#包装器
# start_time=time.time()
# result=func(*args,**kwargs)
# print(f'{func.__name__} is running')
# end_time=time.time()
# print(f'{func.__name__} execution time: {end_time-start_time}')
# return result
# return wrapper
#
# decorator_square=decorator(square)
# decorator_square(100343244234423423)
"""装饰器生成器是一种在Python中用于创建装饰器的函数,它允许你根据不同的参数来生成不同的装饰器"""
#定义一个装饰器生成器
def timer(threshold):
def decorator(func):
@functools.wraps(func)#加上这个语句,输出的就是传进来的函数名,而不是wrapper
def wrapper(*args,**kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
if end_time - start_time>threshold:
print(f'{func.__name__} took longer than {threshold}')
return result
return wrapper
return decorator
@timer(0.2)
def sleep_04():
time.sleep(0.4)
# sleep_04=timer(0.2)(sleep_04)
sleep_04()
参考视频
1-13参考了该视频
【你觉得自己这辈子都学不会编程?超超超基础Python课程,3小时快速入门 【自学Python教程合集】【3小时快速入门Python】】 https://www.bilibili.com/video/BV1944y1x7SW/?share_source=copy_web&vd_source=b743161248f2812166d8471922edab74
14装饰器参考视频
【【Python 高级特性】装饰器:不修改代码,就能改变函数功能的强大特性】 https://www.bilibili.com/video/BV1Uz421Z79L/?share_source=copy_web&vd_source=b743161248f2812166d8471922edab74