python基础知识
python输入输出
python输出
关键字print()
可以使用print加“…”或’…'或“‘…’”来打印内容
如果要在字符串中打印“或’要使用\
代码示例
print("He said \"Let\'s go!\"")
显示为He said “Let’s go!”
print中可以通过**+号**实现字符串拼接
代码示例
user_age=18
print("知道了你今年"+user_age+"岁了!")
对于一个字符串可以通过len(字符串名)来获取长度
也可通过print(字符串名[索引数])来获取单个字符但记住索引从0开始
在printh函数中保留小数点可用(‘%.保留位数’%数字)
代码示例
gpa_dict={"小明":3.251,"小花":3.869,"小李" :2.683 ,"小张" :3.685}
for name, gpa in gpa_dict.items():
print(str(name)+"你好,你的当前绩点为:"+str('%.2f' % gpa))
python输入
关键字input()
需要变量接收返回值
代码示例
user_age=int(input("请输入你的年龄:"))#转成int型才能进行下一步计算
user_age_after_10_year=user_age+10
print("您十年会是"+str(user_age_after_10_year)+"岁")
#user_age_after_10_year要转成字符串才能打印
代码图示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ApadfuBn-1676033163225)(C:\Users\y’z\Desktop\pyhton\屏幕截图 2022-12-16 103631.png)]
变量名命名
不可以有空格,开头不能有数字,不可以用“…”号包裹
图示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-52Wfva4V-1676033163225)(C:\Users\y’z\Desktop\pyhton\屏幕截图 2022-12-16 093729.png)]
命名法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OSOrLAbz-1676033163226)(C:\Users\y’z\Desktop\pyhton\屏幕截图 2022-12-17 212242.png)]
python数据类型
基本和C\C++相同,但是python字符串为str
也有bool类型真为True,假为False,记住T和F都要大写
None为NoneType类型
type可以查看返回的关键字
加入其他数据库
类似于C/C++中include<>
代码示例
import math#加入数学数据库
python注释
可以使用“”“…”“”或#
python条件语句
if语句(判断三符号)
if 判断条件
如果只有两个条件则使用else如果多个判断条件使用elif
逻辑图示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HjBLqocI-1676033163226)(C:\Users\y’z\Desktop\pyhton\屏幕截图 2022-12-16 104125.png)]
代码示例
def colculate_BMI(weight,height):
bmi=weight/(height**2)
if(bmi<=18.5):
print("您的BMI分类为偏瘦")
elif(18.5<bmi<=25):
print("您的BMI分类为正常")
elif(25<bmi<=30):
print("您的BMI分类为偏胖")
elif(bmi>30):
print("您的BMI分类为肥胖")
return bmi
person1=colculate_BMI(55,1.67)
print("您的BMI指数为"+str(person1))
#表示str()函数,将对象转化为适于人阅读的形式,
#语法是“str(object='')”,返回一个对象的string格式。
判断三符号(and,or,not)
and(与)同C\C++的&&
or(或)同C\C++的||
not(非)同C\C++的!
优先级not->and->or
for语句
使用方法 for 变量名 in 可迭代对象(例列表与元组和字典)
代码示例
temperature_ dict = {"111":36.4, "112":36.6, "113":36.2}
#变量名编号,体温in后即迭代每个键值对
for staff_id, temperature in temperature_ _dict.items( ):
if temperature>= 38:#存在第二个参数>= 38即输出key值
print(staff_id)
range关键字
range(起始值,结束值(但是只会到结束值前一个),步长(不写默认为1))
如果range(1,10,2)则输出1,3,5,7,9
效果图示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tANBSsAn-1676033163226)(C:\Users\y’z\Desktop\pyhton\屏幕截图 2022-12-16 213903.png)]
format函数的语法及用法
(1)语法:‘{}’.format()
(2)用法:用于格式化字符串。可以接受无限个参数,可以指定顺序。返回结果为字符串。
代码示例
不设置位置,按默认顺序(从左到右)输出。
#默认顺序
'学习{}中的{}函数'.format('python','format')
->'学习python中的format函数'
指定位置
#指定顺序
'学习{1}中的{0}函数'.format('format','python')
->'学习python中的format函数
设置参数
#①
#定义列表list1
list1 = ['hello','say','world','s']
'LiMing {0[1]}{0[3]} {0[0]} to {0[2]}'.format(list1)
->'LiMing says hello to world'
#②
#定义列表list1
list1 = ['hello','say']
list2 = ['world','s']
'LiMing {0[1]}{1[1]} {0[0]} to {1[0]}'.format(list1,list2)
->'LiMing says hello to world'
(4)数字格式化
#保留两位小数点
'{:.2f}'.format(314.541)
-> '314.54'
#保留一位小数点并携带正负符号
'{:+.1f}'.format(1.2684)
-> '+1.3'
print('{:+.1f}'.format(-45.62556)) #加入print函数输出可以去掉引号
-> -45.6
#不保留小数点
print('{:.0f}'.format(-45.62556))
-> -46
#说明:加上‘+’可以将数字的符号正确输出
while语句
使用示例
list1=["你","好","吗","兄","弟"]
i=0
while i<lan(list1)
print(list1[i])
i=i+1
for循环与while循环使用时机
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cdea2eEi-1676033163226)(C:\Users\y’z\Desktop\pyhton\屏幕截图 2022-12-16 214502.png)]
python列表与元组和字典
列表
创建列表
列表名=[“数据1,数据2”]
关键字append()
可以通过append()添加数据
代码示例
shopping_list = ["键盘""键帽"]
shopping_list.append("显示器")
#不可shopping_list=shopping_list.append("显示器")
方法和函数差别
图示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mULOQ6FW-1676033163227)(C:\Users\y’z\Desktop\pyhton\屏幕截图 2022-12-16 110308.png)]
关键字remove()
代码示例
shopping_list = ["键盘""显示器"]
shopping_list.remove("显示器")
其他常用关键字
max,min,num
代码图示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n1uvfxi7-1676033163227)(C:\Users\y’z\Desktop\pyhton\屏幕截图 2022-12-16 110527.png)]
元组
创建元组
元组名=(“数据1,数据2”)
和列表基本一致
注意点
列表是动态数组,它们可变且可以重设长度(改变其内部元素的个数)。
元组是静态数组,它们不可变,且其内部数据一旦创建便无法改变。
图示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F5vrvC5L-1676033163227)(C:\Users\y’z\Desktop\pyhton\屏幕截图 2022-12-16 212848.png)]
字典
创建字典
字典名={key:value,key:value}
可以通过in关键字来判断字典内key是否存在
代码示例
contacts={"小明":10001}
print("小明"in contacts)#返回True
print("小明明"in coutacts)#返回False
可以通过del关键字来删除字典内key和value
代码示例
contacts={"小明":10001}
print("小明"in contacts)#返回True
del contacts["小明"]
字典关键字
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M6dvfDsD-1676033163227)(C:\Users\y’z\Desktop\pyhton\屏幕截图 2022-12-16 213619.png)]
字典查询代码图示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xOQFCaYJ-1676033163227)(C:\Users\y’z\Desktop\pyhton\屏幕截图 2022-12-16 213358.png)]
python函数
python函数的定义
del(关键字) 函数名()内可以加形参
函数调用 函数名()
如果函数无返回语句return语句,默认为return None
引入其他外部函数方法
import语句
全部函数都引用(可能会出现与其他引入函数重名有风险)
代码示例
import statistics
print(statistics.median([19, -5,36]))
print(statistics.mean([19, -5, 36]))
from…import…语句
引入指定函数名
代码示例
from statistics import median, mean
print(median([19, -5, 36]))
print(mean([19, -5,36]))
from…import *语句
全部函数都引用(可能会出现与其他引入函数重名有风险)
代码示例
from statistics import *
print (median([19,-5,36]))
print(mean([19, -5,36]))
python类
类创建
代码示例
class ATM
def __init__(self,编号,银行,支行)#构造函数,编号,银行,支行为形参
self.编号=编号#self类似于C\C++this->
self.银行=银行
self.支行=支行
ATM1=ATM("001","招商银行","中山支行")
class Score:
def __inif__(self,Yuwen,Shux,Yingyu):
self.yuwen=Yuwen
self.shux=Shux
self.yingyu=Yingyu
class student:#创建一个学生类
def __init__(self,Name,Xhao):
self.name=Name#定义名字
self.xhao=Xhao#定义姓名
self.score={"语文":0,"数学":0,"英语":0}
#定义一个字典科目为key值,成绩为value
def set_Score(self,course,score):#改成绩成员函数
if course in self.score:#利用if语句判断是否存在科目
self.score[course]=score#将输入的成绩赋值给字典中的成绩
#score[course]即是value的值
def print_Score(self):
print(f"学生{Person.name}的学号为{Person.xhao}")
#不要忘记加上 f ,否侧输出的是单纯的字符串,不会进行变量替换
for course in self.score:#利用for循环来打印成绩
#即遍历self.score中的每个key值,在通过key值获得score
print(f"{course}:{self.score[course]}分")
Person=student("小明",10001)
Person.set_Score("语文",95)
Person.set_Score("数学",95)
Person.print_Score()
封装
即无法看到里面内容
继承
class 子类(父类)
当子类和父类同时有构造函数时优先调用子类
但是可以使用关键字super()._ init_(形参1,形参2)来优先调用父类构造函数
代码示例
class Employee:
def __init__(self,m_name,m_id):
self.name=m_name
self.id=m_id
def print_info(self):
print(f"员工姓名{self.name},员工编号{self.id}")
class FullTimeEmpoyee(Employee):
def __init__(self,m_name,m_id,m_monthly_salary):
super().__init__(m_name,m_id)
self.monthly_salary=m_monthly_salary
def calculate_monthly_pay(self):
return self.monthly_salary
class PartTimeEmpoyee(Employee):
def __init__(self,m_name,m_id,m_salary,m_days):
super().__init__(m_name,m_id)
self.daily_salary=m_salary
self.work_days=m_days
def calculate_days_pay(self):
return self.daily_salary*self.work_days
zs=PartTimeEmpoyee("张三",10001,90,24)
ls=FullTimeEmpoyee("李四",10002,3000)
zs.print_info()
ls.print_info()
lsgozhi=ls.calculate_monthly_pay()
print("李四工资为"+str(lsgozhi))
zsgozhi=zs.calculate_days_pay()
print("张三工资为"+str(zsgozhi))
使用继承时机
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-utEpnpMz-1676033163228)(C:\Users\y’z\Desktop\pyhton\屏幕截图 2022-12-18 124025.png)]
python读写文件
写入文件分为绝对路径和相对路径
绝对路径
Windows系统中C:\文件夹1\文件夹2\文件名.后缀名
Linux系统则不分盘直接\即可
相对路径
从当前文件位置出发向上为 . 向下为 /,同一文件夹下则文件名.后缀
图示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mW98cFyA-1676033163228)(C:\Users\y’z\Desktop\pyhton\屏幕截图 2022-12-18 193900.png)]
打开文件
第一种,with open(“文件路径”,“模式”,编码方式) as file:不用写关闭文件
第二种,f=open(“./data.txt”,“r”,encoding=“utf-8”)有返回值
要写f.close()关闭文件,释放资源
文件路径分为绝对路径和相对路径
模式有 (r,r+)读取,(w,w+)写入,(a,a+)追加
写入要手动加换行
编码方式一般为encoding=“utf-8”
图示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dslekpgh-1676033163228)(C:\Users\y’z\Desktop\pyhton\屏幕截图 2022-12-19 165210.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pcKQUxal-1676033163228)(C:\Users\y’z\Desktop\pyhton\1547003-20181206175954237-1334479314.png)]
读文件函数
自定义名.read(),会记录读取位置,第一次如果读取到文末则第二次读取读取为空
括号内可以指定读取字节数
自定义名.readline(),会根据换行符判断读取内容,可以和while即判断条件一起用输出全部内容即判断取出行是否为空
代码示例
f = open(". /data. txt","r", encoding="utf-8")
line = f.readline()
while line !=" ":
print(line)
line=f.readline()
自定义名.readlines(),一般和for循环一起使用
概念图示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LDGc1d35-1676033163228)(C:\Users\y’z\Desktop\pyhton\屏幕截图 2022-12-18 195208.png)]
代码图示
f = open(". /data. txt","r", encoding="utf-8")
lines=f.readlines()#把每一行内容储存到列表
for line in lines:#遍历每行内容
print(line)#打印
三种方法区别
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BABgarzy-1676033163229)(C:\Users\y’z\Desktop\pyhton\屏幕截图 2022-12-18 195255.png)]
文件读写代码示例
with open("./poem.txt","w",encoding="utf-8") as f:
f.write("我欲乘风归去,\n又恐琼楼玉宇,\n高处不胜寒。\n")
#with open("./poem.txt","a",encoding="utf-8") as f:
# f.write("起舞弄清影,\n何似在人间。")
#with open("./poem.txt","r",encoding="utf-8") as f:
# print(f.read())
with open("./poem.txt","a+",encoding="utf-8") as f:
print(f.tell())
f.write("起舞弄清影,\n何似在人间。")
#因为附加完文本后指针
#已经移到末尾故要使用 f.seek(0)将指针移到文件开头f.tell可以查看当前位置
f.seek(0)
print(f.tell())
print(f.read())
三种方法区别
[外链图片转存中…(img-BABgarzy-1676033163229)]
文件读写代码示例
with open("./poem.txt","w",encoding="utf-8") as f:
f.write("我欲乘风归去,\n又恐琼楼玉宇,\n高处不胜寒。\n")
#with open("./poem.txt","a",encoding="utf-8") as f:
# f.write("起舞弄清影,\n何似在人间。")
#with open("./poem.txt","r",encoding="utf-8") as f:
# print(f.read())
with open("./poem.txt","a+",encoding="utf-8") as f:
print(f.tell())
f.write("起舞弄清影,\n何似在人间。")
#因为附加完文本后指针
#已经移到末尾故要使用 f.seek(0)将指针移到文件开头f.tell可以查看当前位置
f.seek(0)
print(f.tell())
print(f.read())