数据蛙第一期课程已经进行了两周了,最近一周学习的内容是 python 相关,这里总结性地概况课程内容,以作知识回顾参考。
一、python 的基础知识
1、数据类型
数字型:int、float、Boolean
非数字型:字符串、列表、元组、字典
可变类型:列表、字典
不可变类型:数字、字符串、元组
格式化字符串:两种写法
a、python 的格式化字符串 ,使用%
如果希望输出文字信息的同时输出数据,那就需要使用到格式化操作符,%被称为格式化操作符,钻们用来处理字符串中的格式。包含%的字符串,被称为格式化字符串。不同类型的数据需要使用不同的格式化字符。
- 常用格式化字符: 含义
%s :字符串
%d :有符号十进制整数,%06d 表示输出的整数显示位数,不足的地方使用 0 补全
%f :浮点数,%.2f 表示小数点后只显示两位
%%: 输出 %
使用方法:
print("格式化字符串"%变量1)
print("格式化字符串"%(变量1,变量2))
name='datafrog'
stu_no=1
print("我是%s"%name)
print("我的学号是%06d"%stu_no)
print("%s的级别是%s,分数是%s"%(score,grade,score))
# 关键字参数形式,注意后面是参数字典不是参数元组了
print("%(score)s的级别是%(grade)s,分数是"%{"score":score,"grade":grade})
######b、使用 format 来进行格式化字符串:
a、使用位置参数,{}的值对应填充 fromat 后面的变量
print("{}的级别是{}".format(score,grade))
还可以使用 0、1 编号进行多个引用,0、1分别大表 format 后面变量的位置
print("{0}的级别是{1},分数是{0}".format(score,grade))
甚至还可以使用参数列表,但是 format 后面要用 *list
list=[score,grade]
print("{0}的级别是{1},分数是{0}".format(*list))
b、使用关键字参数:
print("{score}的级别是{grade},分数是{score}".format(score=score,grade=grade))
可以使用字典来传递关键字参数,但是要用 **hash
hash = {'name':'hoho','age':18}```
'my name is {name},age is {age}'.format(**hash)
'my name is hoho,age is 18'
c、其他一些用法,引用变量时加上冒号,然后写规则即可
右对齐,改成< 就是左对齐,这里1 是位置参数,不写就是对应的第一位即8
print("{1:*>10}".format(8,9))
结果是
*********9
精度与进制:变量后面加上冒号就可以指定输出形式
'{0:.2f}'.format(1/3)
'0.33'
千分位格式化:
print("{1:,}".format(8,9))
2、变量
通常数据都是让变量来引用和保存的
变量是 python 中的重要概念,python 作为一门动态语言,就是体现在变量命名时不需要指定类型,而是可以指向任意类型的数据。变量命名也是有规则的,即必须是有数字、字母、下划线组成且不能数字开头,除此之外变量名还有一个写法上的通用原则:驼峰命名法
小驼峰:首字母小写后面单词首字母大写
大驼峰:每个单词的首字母都大写
一般函数、变量名用小驼峰,模块和类名用大驼峰
3、控制流
python 程序运行都是从上到下依次运行,但是可以通过控制流来人为改变运行逻辑。
if :条件判断
while、for:两种循环
而如果要在循环体内再次人为改变逻辑,就需要用到 breake、continue了,特别注意这两个破坏循环规则的语句都只作用在最近一层的 for、while 循环上。
4.函数
函数的出现是为了节省代码,减少冗余。
def func():
print(' 调用了函数')
匿名函数:
常用来构建列表 list=[i for i in range(6)]
还可以搭配 map 函数来使用,map(func,[1,2,3,4,5])
会将列表中得数组依次传入 func 函数得到结果,得到一个map 值,再用 list 转换一下就可以得到一个列表
函数参数(重点理解):
函数的参数:形式参数的定义以及实际参数的写法
a、位置参数:实参+定义。就是实参会一一对应到形参上
def func(num1)
print(num1)
func(10)
b、默认参数:定义。有默认值,如果传入了实参就用实参,定义的时候要在非默认参数后面
正确:def func(num1,num2=10)
错误:def func(num1=10,num2)
c、关键字参数:实参。传入实际参数时,指定参数名字来传递数据,一般有一个实参用的是关键字参数,其余也要用,不然容易造成一个参数多个值的错误。
func(num1=12,num2=10)
func(12,num2=10)
d、元组可变参数:定义。可以接收任意数量的位置参数。使用 *args 来接收,会将接收到的值自动组包成一个元组赋给args,参数变成元组了
def func(num1,*args,name):
print(num1)
print(args)
print(name)
func(10,2,3,4,name='lan')
结果:这里是位置参数+元组可变参数
10
(2, 3, 4)
lan
e、字典可变参数:定义。可以接收多余的关键字参数,用 **kwargs 来接收。必须放到参数列表最后,不然报错。参数变成字典了
def func(num1=0,**kwargs):
print(num1)
print(kwargs)
func(2,a=3,b=4)
结果:
2
{'a': 3, 'b': 4}
注意:
a、如果实参用了关键字参数,最好就都用关键字参数。字典可变参数必须要放到最后面(比默认参数还要后),元组可变没有顺序要求。
左右:普通参数《==元组可变《==默认参数(应该靠后)《==字典可变(必须最后)
除了字典可变,其他顺序不是绝对,如果顺序有变化,实参中可以用关键字参数来调节
b、如果形参里面既有 默认参数,又有可变参数,那么要将默认参数放到最后面,并且赋值时必须要用关键字参数。这也符合默认参数放到非默认参数后面的原则
def func(num1=0,*args):
print(num1)
print(args)
# 像这里本来时像把 2,3,4 都给 args ,可以由于位置参数的原因,最终是num1=2,rags=(3,4))
func(2,3,4)
变成如下就好了
def func(*args,num1=0):
func(2,3,4,num1=10)
二、python 2、python3 的一些区别
1、python2:print 函数可以不加括号
python3:print 函数必须要加括号
2、python2:使用中文时,代码开头要加声明 # encoding:utf-8
python 3:可以直接使用中文
3、python2:/ 除法只保留整数部分,除非有 float 数据参数运算
python3:/ 除法得到完整结果,// 得到结果的整数部分
4、python2:python2 有两个输入函数
input() : 返回的结果类型会自动推导
raw_input():返回的结果都是字符串
python3::只有一个输入函数,input() ,返回的结果一定是字符串
5、字典的 keys,values,items 属性
python2:返回的都是列表
python3:返回的是视图对象,可以理解为列表,可以转换成列表使用,也可以直接使用