Python基础学习
Posted <?ph7?>
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础学习相关的知识,希望对你有一定的参考价值。
安装完Python并且调试成功第一个Hello word,下面通过廖雪峰网站开始学习python基础。学习网址:https://www.liaoxuefeng.com
一、格式化输出
格式化输出就相一个占位符一样在一个字符串之中,最后通过可变的参数替换占位符。最终输出结果;Python中,采用的格式化方式和C语言是一样的都是通过 % 实现;
常用的占位符有:
案例:
print(\'这是整数%2d, 这个你知道吗%02d\' %(1, 2)) print(\'这是整数%d, 这个你知道吗%d\' %(1, 2)) print(\'这是整数%d, 这个你知道吗%d\' %(100, 200))
输出结果:
这是整数 1, 这个你知道吗02 这是整数1, 这个你知道吗2 这是整数100, 这个你知道吗200
分析:以上这些是格式化输出整数,%2d 代表的是占2位输出的坑,所以在输出结果可以看出第一个输出前面是一个空,另外 %02d 代表的是两位输出,用0补给占位,即可得到02的输出。
print(\'%.2f\' % 3.1415926)
输出:3.14
分析:浮点数保留两位小数的写法
如果不确定用那一个种格式化输出,记住%s 它永远起作用,它会把任何数据类型转换为字符串。
print(\'Age: %s. Gender: %s\' % (25, True))
输出:Age: 25. Gender: True
format() 也是一种格式化输出,它会将传入的参数依次嗲换字符串内的占位符{0} {1} {2} ...
print(\'这是一个坑:{0}, 这是浮点数坑:{1:.1f}%, 这是其他的坑:{2}\'.format(\'我是坑\', 17.125, 100))
输出:这是一个坑:我是坑, 这是浮点数坑:17.1%, 这是其他的坑:100
二、使用list 和 tuple
List 是一种有序集合,可以添加、删除其中的元素。
#LIST学习 #创建一个list listInfo = [\'aaa\', \'bbb\', \'ccc\']; print( listInfo ) #计算list的长度 len() print( len( listInfo ) ) #用索引访问list中的元素 print( listInfo[2] ) #通过负数倒着取元素 print( listInfo[-1] ) #list是一个可变的有序表 #往list里面追加元素 append() listInfo.append(\'ddd\') print( listInfo ) #也可以将插入的元素指定到指定的位置 insert() listInfo.insert(2, \'cici\') print( listInfo ) #删除list末尾的元素 pop(i) i是可变的位 listInfo.pop() print( listInfo ) #把某个元素替换成别的元素 listInfo[2] = \'replace\' print( listInfo ) #list的元素类型可以不同 True 区分大小写 setList = [\'aaa\', 111, True] print( setList ) #list元素也可以是另外一个元素 newList = [\'java\', \'php\', setList ] print( newList ) #拿取多维list中的元素 print( newList[2][1] )
输出结果如下:
[\'aaa\', \'bbb\', \'ccc\'] 3 ccc ccc [\'aaa\', \'bbb\', \'ccc\', \'ddd\'] [\'aaa\', \'bbb\', \'cici\', \'ccc\', \'ddd\'] [\'aaa\', \'bbb\', \'cici\', \'ccc\'] [\'aaa\', \'bbb\', \'replace\', \'ccc\'] [\'aaa\', 111, True] [\'java\', \'php\', [\'aaa\', 111, True]] 111
tuple 另外一种列表叫元组:tuple. tuple和list 比较相似,但是tuple 一旦初始化就不能修改
tuple 并没有 append() insert() 方法,因为它不可变。只能通过键位获取。 相对list 来说比较安全。特别注意的是在使用tuple的时候,tuple的元素就必须确定下来。
#tuple tupleInfo = ( 1, 2 ) print( tupleInfo )
输出:(1, 2)
#定义一个空的tuple tupleInfo = () print( tupleInfo )
输出:()
#定义一个只有1个元素的tuple tupleInfo = (1111) print( tupleInfo )
输出:1111
说明:如果下面这样定义才是真正的一个tuple,表示只有一个元素的tuple
tupleInfo = (1111, ) print( tupleInfo )
输出:(1111,)
下面看这个案例,间接性的通过list去改变tuple 其实,变的是可变的list 而 tuple 并没有变,只是间接性的像变了一样。
mylist = [\'php\', \'java\', \'c#\'] tupleInfo = (111,222,333, mylist ) print( tupleInfo ) tupleInfo[3][1] = \'mysql\' print( tupleInfo )
输出:(111, 222, 333, [\'php\', \'java\', \'c#\']) (111, 222, 333, [\'php\', \'mysql\', \'c#\'])
三、条件判断 循环
x = 70; if x <60 : print( \'这个分数小于60了\' ) elif x >= 60: print( \'这个分数大于60了\' ) else: print(\'优秀了呢\')
python 需要分为两种,第一种是 for ... in 的方式 将 list 货 tuple 总的数据列出来; 第二种是while的方式,只要满足条件就不断循环;
第一种案例:
for item in [\'111\', \'222\', \'333\']: print( item )
输出: 111
222
333
sum = 0 n = 99 while n > 0: sum = sum + n n = n - 2 print(sum)
输出:2500
说明: 在循环过程中可以根据条件提前结束循环 break,即可。或者根据条件继续循环 contionue 即可。
四、dist 和 set
dist 可以理解成map, 使用 键->值 对的形式存储,查询数据相对较快
#dict 和 set 的使用 dictInfo = {\'name\':\'cici\', \'age\': \'25\', \'sex\':\'女\'} print(dictInfo) print(dictInfo[\'name\'])
输出:{\'name\': \'cici\', \'age\': \'25\', \'sex\': \'女\'}
cici
dictInfo = {\'name\':\'cici\', \'age\': \'25\', \'sex\':\'女\'} print(dictInfo) dictInfo[\'name\'] = \'dada\' print(dictInfo)
输出:{\'sex\': \'女\', \'age\': \'25\', \'name\': \'cici\'}
{\'sex\': \'女\', \'age\': \'25\', \'name\': \'dada\'}
说明:如果定位查找某一个元素,如果元素不存在是会报错滴;
#验证key不存在的的方法 print( \'name\' in dictInfo ) print( \'test\' in dictInfo ) print( dictInfo.get(\'name\') ) print( dictInfo.get(\'test\') ) print( dictInfo.get(\'test\', \'没有\') )
输出:
True
False
dada
None
没有
删除的案例如下:
print( dictInfo ) dictInfo.pop(\'name\') print( dictInfo )
输出: {\'name\': \'dada\', \'sex\': \'女\', \'age\': \'25\'}
{\'sex\': \'女\', \'age\': \'25\'}
和list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
set
set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。
#set #初始化set赋值 setInfo1 = set( [ 111, 222, 333 ] ) print( setInfo1 ) #set没有vlue 只有key 切 key 不可重复 setInfo2 = set( [111,222,333,333,222] ) print( setInfo2 ) #给set添加元素 setInfo2.add(\'444\') print( setInfo2 ) #删除set元素 setInfo2.remove(\'444\') print( setInfo2 )
输出:
{333, 222, 111}
{333, 222, 111}
{\'444\', 333, 222, 111}
{333, 222, 111}
五、调用函数
#调用函数 print( abs(100 ) ) print( abs(-100) ) print( max(1,2,3,4,5,0,-1,-3) ) print( int(\'123\') ) print( float(\'12.34\') ) print( str(12.34) ) print( bool(1) ) print( bool(\'\') )
输出:
100
100
5
123
12.34
12.34
True
False
六、定义函数
#定义函数 def myFun(x): if x <= 60: print(\'小于60\') else : print(\'大于60\') print( myFun(30) )
输出:小于60
1)定义一个空函数,且什么都不做
def nop(): pass
pass的作用就是什么都不做也不会出错,如果没有pass会出错的,所以pass就是占了一个坑
2)检测不恰当的参数
def myFun(x): if not isinstance(x, (int, float)): raise TypeError(\'bad operand type\') if x >= 0: return x else: return -x
加了参数检查后,如果传入错误的参数类型,函数就可以抛出一个错误
输出:
Traceback (most recent call last): File "/mnt/hgfs/webspace/pythonStudy/one.py", line 240, in <module> myFun(\'你好\') File "/mnt/hgfs/webspace/pythonStudy/one.py", line 234, in myFun raise TypeError(\'bad operand type\') TypeError: bad operand type
2)返回多个参数
import math def move(x, y, step, angle=0): nx = x + step * math.cos(angle) ny = y - step * math.sin(angle) return nx, ny x, y = move(100, 100, 60, math.pi / 6) print( x, y)
import math
语句表示导入math
包,并允许后续代码引用math
包里的sin
、cos
等函数
七、函数参数
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple
#函数的参数 #默认参数,可变参数 #默认参数不做解释,可变参数案例如下 #可变参数就像定义一个list或者tuple一样,只是在参数的前面加了一个* def myFun(*number): for item in number: print( item ) myFun(111,222,333)
输出:
111
222
333
#关键字参数 #而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict def myFun( name, age, **kw) : print(\'name:\',name ) print(\'age:\', age) print(\'kw:\', kw) myFun(\'cici\', 18, nihao = \'aaaa\')
输出:
name: cici
age: 18
kw: {\'nihao\': \'aaaa\'}
以上是关于Python基础学习的主要内容,如果未能解决你的问题,请参考以下文章