1、print()
1、()内部带双引号、单引号,可以输出字符串。
2、若里面单词含有单引号,建议用双引号大括。
3、字符串+数字,两个都要括起来,输出才是两者和。
4、数字之间求和是不用引号,直接int就可以。
5、如果是小数要用float+单独括号,括号内上双引号。另一个整数不用管。
2、数学符号
1、平方用两个**、//代表取整数、%代表取余数。
2.1、数据类型
1、布尔类型(只有true和false)
2、空值类型
None什么也不代表,如果要对一个变量赋值,但是并不知道赋什么值,可以先用变量名=None来代替。
不确定某个对象类型的时候,可以使用 type
3、自变量variable
变量名字 内部不可以有空格、不可以数字开头、否则会直接报错
3.1、关于命名形式
对于大小写很敏感,user_ada 不等于user_Ada
变量命名尽量不要占用关键字,比print='688',此时不能再用print打印。
4、while循环
while更加通用,在条件 何时结束 未知的情况下,while比for更合适
一直输入某函数,直到某函数为假的时候停止,这个适合while
print('哈喽啊!我是一个求平均值的程序。')
user_input=input("请输入数字(完成所有数字输入后,请输入M终止程序)")
while user_input !='M':
user_input =input ("请输入数字(完成所有数字输入后,请输入M终止程序)")
print('哈喽啊!我是一个求平均值的程序。')
total=0
count=0
user_input=input("请输入数字(完成所有数字输入后,请输入M终止程序)")
while user_input !='M':
num=float(user_input)
#total=total+num
total+=num
count+=1
user_input =input ("请输入数字(完成所有数字输入后,请输入M终止程序)")
if count==0:
result=0
else:
result=total/count
print('您输入的数字平均值为'+str(result))
5、for循环
在有明确的循环对象挥着次数的时候更加方便
迭代
5.1、for+range
for和range 结合起来,其中结束值并不包含在里面。比如这个中只到 9 .
从1加到100
其中range (1,10)代表123456789,并不包含10。后面的2,代表间距是2
6、if循环
首先if后面是用:写接下来的话
其次,if后面是true 才会输出print里面的内容。
在if语句中,不能用一个=,要用两个等号才表示判断的等号。
不等于的符号是感叹号!表示否
7、if else
其中 if 和 else 地位是同等的,后面都加 :
而且在运行出现一个问题,运行后 print那一行要自己手动空格
8、if elif else
三个条件是同等效力
elif可以加多个。
按照顺序执行
当他第一次满足条件后,就会直接忽略后面的条件,直接跳出整个if 循环。
上图和下图是调整 x<-1 和 x<1 的顺序
x=-2
y=2
z=3
if x>1:
print('x >1')
elif x<1:
print('x <1')
elif x<-1:
print('x<-1')
else:
print('x =1')
print('finish running')
9、如何定义函数,def函数
在 python 当中 定义一个函数要用def 其中def是define的缩写。
命名加上括号才是函数,function()
上面四行是定义函数 第六行是调用
!!!注意空格问题,本次运行结果出错原因,2.3.4行的前面空格全部删除再重新排列才解除错误。
9.1全局、局部变量
9.2、数字运算
10、注释
1、注释只是单行的,每次注释都要在开头加上 #
2、如果想要多行注释,选中段落然后按住 ctrl+/ 这样一段都会被注释,如果取消则需要再次按住。
3、多行注释也可以用三引号,如果没需要执行的东西,比如没有print 那么 """ 三引号可以用来表示注释。
11、数据类型
索引从0开始的:012345....
空值类型
在这其中,n=True /n=False/n=None 开头大写!!!
12、交互模式和命令行模式
交互模式:输入一行后会立即执行
数字转换成字符串,需要用str()
转化为浮点数float()
13,input函数
可以从用户那里获取输入信息,用法 input() 即input(’这里是给用户的一些提示信息‘),函数名后面放括号,括号里面放参数也即是要传输的数据,是标准的调用函数的方式。
input一律返回字符串。python也有函数能把字符串str类型转换成整数int类型,在进行运算。
int 将其他函数转换成数字
float 转换成浮点数
str可以把其他类型转换成字符串
如果用年龄进行数学计算,先用 int 函数转换成整数,如果还需要打印出来,用 str 函数转换成字符串
15、python条件语句
15.1、单纯条件语句
比较运算是两个等号, ‘==’ ex: 3==3 (true) ‘a’==‘b’(false)
不等于号是感叹号和一个等号, ‘!=’ ex: 3!=3 (false)
条件后面有个冒号 : 表示条件结束
下面缩进要缩进四个空格。这些都是条件为真的判断,如果想条件为假时什么都不做就停止。
若条件为假执行其他语句,那就 else
每行都要有缩进,因为 python 会根据缩进来判断是 if 管的还是 else 管的或者都不属于。
mood_index=int(input('超级无敌麦旋风美女今天心情指数是:'))
if mood_index >= 60:
print('恭喜,今晚可以看python庆祝一下,去吧皮卡丘')
print('❤')
else:
print('心情不好学点python调节一下,去吧大美女')
15.2、嵌套条件语句
空格很重要,用来判决到底执行哪个条件
除了嵌套,还可以使用多个条件判断即 elif
由于python是从上往下读,那么它只会执行最早满足条件的语句。
elif 语句
mood_index=int(input('超级无敌麦旋风美女今天心情指数是:'))
if mood_index >= 60:
print('恭喜,今晚可以看python庆祝一下,去吧皮卡丘')
print('❤')
else:
print('心情不好学点python调节一下,去吧大美女')
在python中也可以用数学当中的不等式
15.3、python逻辑运算
当用嵌套或者elif很长的时候,考虑用逻辑运算
逻辑运算符号只有三个 :and or not
and用来连接几个项目,类似于交集只要有一个false 就是错的
or 用来连接几个项目,类似于并集,只要有一个true,就是true
not 只能对 一个对象 进行操作
16、python列表
不同变量一个个赋值太麻烦了,直接用python的列表
如果要在列表里面放多个数据,用方括号把他们框住,用逗号在之间进行分隔
shopping_list =[“键盘”,“键帽”]
如果要往定义好的列表里加东西,就用一个针对列表的方法,叫 append
shopping_list.append(“显示器”)
以不可变的字符为例
如果想要将字符串转换成大写打印出来
s='hello'
print(s.upper())#原先的字符串变成大写并打印出来,但是原先的字符串s没有任何变化,因此如果想对S进行变换,要把新的字符串再赋值给变量S才行
s='hello'
print(s.upper())
s = s.upper ()
print(s)
但是 列表 是可变的,直接把原本的东西都给改了,从本质改变。不是仅仅换衣服那么简单
因此用 append 时候 不需要也没必要再对 shopping_list 重新赋值,因为原先的列表已经改变了
删除用 remove
列表和字符串一样,都可以通过 len 函数求字符串长度
列表的索引同样从0开始,用列表长度减去1
如果想要修改某个数,直接索引赋值,直接修改列表中的某个数
空列表用一对方括号表示 [ ]
shopping_list =[]
shopping_list.append ('键盘')
shopping_list.append('键帽')
shopping_list.remove('键帽')
shopping_list.append('音响')
shopping_list.append('电竞椅')
print(shopping_list)
print(len(shopping_list))
print(shopping_list[1])
列表是 从0 开始的,当想要打印1的时候其实是在列表中是第二个
如果想要在列表中替换某一个,shopping_list[1]='键盘' 用这个工具子就可以直接替换
16.1、排序、最大、最小
price=[799,199,399,899]
max_price=max(price)
min_price=min(price)
sorted_price=sorted(price)
print(max_price)
print(min_price)
print(sorted_price)
17、数据结构 字典dictionary
contacts={}
键:值
key:value
字典用于储存键值对,键会有对应的值,键是用来查找值的
空的字典用一对花括号表示{}
contacts={}
键是不可变的,列表作为可变数据类型,不能作为键
元组 tuple 圆括号
列表 list 方括号
用来查,是否已经存在这个键,如果直接再输入,就会覆盖
slang_dict={"我看不懂,但我大受震撼":"震惊的意思"}
slang_dict['YYDS']='博主'
slang_dict['尊嘟假嘟']='真的假的啊(可爱萌新版,but博主这样的老阿姨禁用)'
slang_dict['xswl']='😀'
slang_dict['无语']='对某件事情表示很赞'
query=input('请输入你想要查询的网络语言:')
if query in slang_dict:
print('您查询的'+query+'含义如下')
print(slang_dict[query])
else:
print('您查询的网络语未收录')
print('当前本词典收录词条数目为:'+str(len(slang_dict))+"条。")
18.格式化字符串
如果想要保留几位小数
9、函数
9.3、函数
定义函数的时候里面的代码都不会被执行,只有在调用函数的时候才会被执行
局部变量只做用于函数里面,在函数外面无定义
9.4、return
return写在函数最后一行,后面跟上我们想要他返回的东西
给我们在函数之外继续用这个值的机会。
def calculate_BMI(weight, height):
BMI=weight / height**2
if BMI<=18.5:
category='偏瘦'
elif BMI<=25:
category='正常'
elif BMI<=30:
category='偏胖'
else:
category='肥胖'
print(f'您的BMI分类为:{category}')
return BMI
calculate_BMI(45,1.68)
def calculate_BMI(weight, height):
BMI=weight / height**2
if BMI<=18.5:
category='偏瘦'
elif BMI<=25:
category='正常'
elif BMI<=30:
category='偏胖'
else:
category='肥胖'
print(f'您的BMI分类为:{category}')
return BMI
result=calculate_BMI(45,1.68)
print(result)
想要知道计算结果,并且打印,就再加上一句话
20、模块
后面带 * 不建议使用,因为会直接导入所有的函数,会分不清哪个模块里的函数
21、面向对象编程
方法 就是放在 类 里面的函数
属性,就是放在 类 里面的 变量
三个被反复提及的属性: 封装 继承 多态
多态:
21.1、类 class NameofClass:
类是创建对象的模板
对象是类的实例
类定义了对象有何种属性和方法
对象拥有的具体属性则可以不尽相同
python 在定义类名时候 用的是Pascal命名风格
特点是用首字母大写来分隔单词
后面要跟上冒号: 表示下方是定义类的代码
必须要有 self
通过class 关键字 可以创建一个类
通过 _init_ 这给构造方法,可以定义对象拥有哪些属性
通过 class 名字后面加括号 ,可以调用 _init_ 来创建新对象,并且把对应属性进行赋值
21.2、类继承
class Employee:
def __init__(self,name,id):
self.name=name
self.id=id
def print_info(self):
print(f'员工名字:{self.name},工号:{self.id}')
class FullTimeEmployee(Employee):
def __init__(self,name,id,monthly_salary):
super().__init__(name,id)
self.monthly_salary = monthly_salary
def calculate_monthly_pay(self):
return self.monthly_salary
class PartTimeEmployee(Employee):
def __init__(self,name,id,daily_salary,work_days):
super ().__init__(name, id)
self.daily_salary = daily_salary
self.work_days = work_days
def calculate_monthly_pay(self):
return self.daily_salary *self.work_days
zhangsan=FullTimeEmployee("张三","1001",3000)
lisi=PartTimeEmployee('里斯','1002',230,15)
zhangsan.print_info()
lisi.print_info()
print(zhangsan.calculate_monthly_pay())
print(lisi.calculate_monthly_pay())
22、文件
22.1、文件路径
22.2、文件操作open(“./xyz.txt”,"r")
不写默认是读取文件
用with open 省去调用close函数
f=open('./data.txt',"r",encoding="utf-8")
content = f.read()
print(content)
f.close()
如果用 with 的话对于该文件 所属所有的操作都应该有缩进
用 W 模式会把之前的都清空
用 a 模式则不会
with open('./data.txt','w',encoding="utf-8") as f:
f.write('嘿嘿嘿,\n嘿嘿,\n嘿 \n ')
with open('./data.txt','a',encoding='utf-8') as f:
f.write('嘎嘎嘎。\n')
f.write('嘎嘎嘎嘎嘎。')
23、异常处理
24、测试 unittest
结束