前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 基础篇(一)

python 基础篇(一)

作者头像
py3study
发布2020-01-14 11:25:17
3320
发布2020-01-14 11:25:17
举报
文章被收录于专栏:python3python3

默认的python的文件为:文件名.py #!/usr/bin/env python    # coding=utf-8     对中文的支持(切记:等号两边没有空格) 执行python 文件: [root@localhost Desktop]# python test1.py [root@localhost Desktop]# chmod +x test1.py [root@localhost Desktop]# ./ test1.py 变量: 指向内存的一个符号 不同文件系统也是属于不同的类型   它作用于磁盘 python:强类型的动态语言  “变量可以替换,包括变量的类型” 数据类型分为两大类: 数字类型和字符串类型 >>> a = 1 >>> type(a) <type 'int'> >>> a= 'str' >>> type(a) <type 'str'> 不同的数据类型时不能做变换的 >>> a='hello' >>> b= 'world' >>> a+b 'helloworld' 同其他语言一样 在python中: 从高精度向低精度转换时会存在数据损失,在低精度向高精度转换时不会存在 程序=数据结构+算法 优先级: 单目>双目  (单目:! 双目运算符:+ - * / ;在python里面没有三目运算符) 算术运算符 > 位操作运算符>比较运算符>逻辑运算符   算术运算符: + - * / % 位操作运算符: << >> & ^ | ~ 比较运算符: < <= > >= != 逻辑运算符:and or not 赋值= () 优先级最大  赋值= 优先级最小 表达式: 除法运算: >>> 10/3 3 >>> 10/3.0 3.3333333333333335 >>> 10.0/3 3.3333333333333335 幂运算: >>> 2**4 16 除法取整运算: >>> 10//3.0 3.0 >>> 10.0//3 3.0 >>> 10//3 3 取模运算: >>> 10%3 1 >>> 10%3.0 1.0 按位与   &   全为真则为真 或      |   有一个为真则为真 异或     ^   有两个不同时则为真,相同时则为假 >>> 2<<3  00010 左移3位 10 000=2**4 16 >>> 2>>3  00010 右移三位出界则为零 0 >>> 3&2   按位与:11&10 => 10 2 >>> 3^2      异或: 11^10 => 01 1 >>> 3|2   按位或:11|10 => 11 3 程序结构: if 语句   只能进入一个分支执行且执行完跳出     在if语句中只有一个 else  可有多个 elif 分支语句只有一个if 循环语句:while   for     break continue   且循环里面可以有else while condition:     expression for item in  迭代器(列表,元组等)     expression break     退出整个循环体 continue  退出当前循环 python的内置容器有: 列表,元组,字典,集和, >>> a= [1,4,5,'lo']    ##定义一个列表   列表中的元素没有要求 且列表可以嵌套 >>> type(a)           ##type() 查看类型 <type 'list'> range() 得到一个列表 >>> range(0,2) [0, 1] >>> dir(a)    ##可以查看对于一个容器能够执行的操作   ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] >>> help (a.count)   ##查看帮助 >>> a.append(3)     >>> a [1, 3, [1, 2, 3], 3] >>> a.count(3)    ##统计某个数在列表中出现的次数 2 >>> a.extend(b)   ##将两个容器追加到一个当中 >>> a [1, 3, [1, 2, 3], 45, 3, 'hello', 'world', 23] >>> b.insert(2,45)   在所个下标前插入所给的数 >>> b ['hello', 'world', 45, 23] >>> b.index(23)     返回该数的下标 3 >>> b.remove(45)   删除一个数 >>> b [666, 'hello', 'world', 23] >>> b=[1,23,24,13,24,44,]   ##pop 删除一个下标为几的数 并将该数返回 >>> b.pop()    44 >>> b [1, 23, 24, 13, 24] >>> b.pop(2) 24 >>> b [1, 23, 13, 24] >>> b.reverse()  将列表中的数逆序显示出 >>> b [24, 13, 23, 1] >>> b.sort()    将列表中的数按照大小排列出来 >>> b [1, 13, 23, 24] >>> 23 in a     ##判断某一个元素在列表中 True >>> a [1, 3, 'lo', [1, 2, 3]] >>> len(a)   ##得到列表长度 4 >>> del a[2]  ##del 删除列表中下表为几的元素 >>> a [1, 3, [1, 2, 3]] 列表切片:  ##列表切片不会改变列表的本身, li[a:b:c]  从下标a开始,到下标b结束,但不会包含b,c表示为布长 >>> a [1, 3, [1, 2, 3], 45, 3, 'hello', 'world', 23] >>> a[1:7] [3, [1, 2, 3], 45, 3, 'hello', 'world'] >>> a[:6] [1, 3, [1, 2, 3], 45, 3, 'hello'] >>> a[:: -1]     ##实现逆序显示一个列表: [23, 'world', 'hello', 3, 45, [1, 2, 3], 3, 1] ### >>> a [1, 3, [1, 2, 3], 45, 3, 'hello', 'world', 23] >>> a1=a[:] >>> a[2][1]=100 >>> a [1, 3, [1, 100, 3], 45, 3, 'hello', 'world', 23] >>> a1 [1, 3, [1, 100, 3], 45, 3, 'hello', 'world', 23] #######注意: 列表赋值相当于引用 它与切片赋值不一样 >>> l2 [4, 5, 6] >>> l5=l2 >>> id(l2) 11948832 >>> id(l5) 11948832 >>> l6=l2[:] >>> id(l6) 11948976 元组: 元组是不可改变的对象,不能对元组的内容作修改。 >>> c=(1,23,45) >>> type(c) <type 'tuple'> 根据元组的不可改变的性质,元组只能执行:count,index 的操作,且元组支持下标和切片。 >>> c ([1.23, 34, 'hello'], [34, 54]) >>> c[0][2]=230 >>> c ([1.23, 34, 230], [34, 54]) 表明了元组的不可改变是相对的。 集和: >>> c set([32, 1, 2, 'kitty', 21])      ##定义一个集和    >>> type(c) <type 'set'> >> a = set()    ##定义一个空集和 >>> type(a) <type 'set'> >>> c={}      ##定义出来的为字典 >>> type(c) <type 'dict'> 集和保持着数学中的集和性质: 无序性, 唯一性, >>> d={1,3,1,2,'kitty',23,1,'hello'} >>> d set([1, 2, 3, 'kitty', 23, 'hello']) 集和不支持切片 >>> c.add(100)     ##集和元素的添加 >>> c set([32, 1, 2, 100, 'kitty', 21]) >>> c.update([12,'world',78])    ##增加一个集和 >>> c set([32, 1, 2, 100, 12, 'kitty', 78, 21, 'world']) >> c.remove(12)     ##删除集和中一个元素   但该元素在集和中不存在时报错 >>> c set([32, 1, 2, 100, 'kitty', 78, 21, 'world']) >>> c.remove(43) Traceback (most recent call last):   File "<stdin>", line 1, in <module> KeyError: 43 >>> c.discard(43)    ##删除一个元素,没有该元素时不执行任何操作。 >>> c set([32, 1, 2, 100, 'kitty', 78, 21, 'world']) >>> c.pop()      ##随机的删除集和中的某个元素。 2 >>> c         ##清除某个集和 set([100, 'kitty', 78, 21, 'world']) >>> c.clear() >>> c set([]) 集和的运算: 差集:difference   ##求出差集    a-b      difference_update    ##求出差集,但修改了原来的集和,不返回值 >>> c set(['world', 2, 1, 45, 23]) >>> d set([1, 2, 3, 'kitty', 23, 'hello']) >>> c.difference(d) set(['world', 45]) >>> c.difference_update(d) >>> c set(['world', 45]) 交集:intersection      intersection_update         & >>> c.intersection(d) set([1, 2, 23]) >>> c.intersection_update(d) >>> c set([1, 2, 23]) >>> c&d set([1, 2, 23]) 并集:union | >>> c.union(d) set([1, 2, 3, 'kitty', 45, 23, 'world', 'hello']) >>> c|d set([1, 2, 3, 'kitty', 45, 23, 'world', 'hello']) 判断是否有交集:isdisjoint 查看两个集和是否有交集,返回的为布尔值 >>> c set(['world', 2, 1, 45, 23]) >>> d set([1, 2, 3, 'kitty', 23, 'hello']) >>> c.isdisjoint(d) False >>> e={'lll',666} >>> c.isdisjoint(e) True 容器之间的转换: 元组与列表: >>> t=(1,2,3) >>> type(t) <type 'tuple'> >>> list(t) [1, 2, 3] >>> t1.append(24) >>> t1 [1, 2, 3, 'hello', 24] >>> t (1, 2, 3, 'hello') >>> t=tuple(t1) >>> t1 [1, 2, 3, 'hello', 24] 列表与集和的转换 >>> l=[1,22,23,'hello'] >>> a=set(l) >>> a set([1, 'hello', 22, 23]) >>> a.add(45) >>> a set([1, 45, 'hello', 22, 23]) >>> l [1, 22, 23, 'hello'] >>> l=list(a) >>> l [1, 45, 'hello', 22, 23] >>> p=set(t) >>> p set([24, 1, 2, 3, 'hello']) set,list,tuple,三个函数可以转换,但是由于集和的性质,在list或tuple转换成set时,有重复的元素,则进行删除。 字典: d=dict();  d=("key":"value") d 中key值是可hash 的。key是唯一的 >>> d {'age': 100, 'name': 'tom'} >>> d.keys() ['age', 'name'] >>> d.values() [100, 'tom'] >>> it= d.iterkeys()   iterkeys 将字典的所有key作为一个迭代器返回 >>> it.next() 'age' >>> it.next() 'name' >>> it2=d.items()    items返回一个列表, 并用元组的形式成对输出 >>> it2 [('age', '23'), ('name', 'tom')] >>> for i in d.keys(): ...     print i,d[i] ... age 23 name tom >> for k,v in d.items(): ...     print k, v ... age 23 name tom >>> d['sex']=2   ###给字典增加一个值 >>> d {'age': '23', 'name': 'tom', 'sex': 2} #############注意:引用传值与复制的区别: >>> d {'age': '23', 'name': 'tom', 'sex': 2} >>> d1=d >>> d1['age']=66 >>> d1 {'age': 66, 'name': 'tom', 'sex': 2} >>> d {'age': 66, 'name': 'tom', 'sex': 2} >>> d2=d.copy() >>> d2 {'age': 66, 'name': 'tom', 'sex': 2} >>> d2['age']=99 >>> d2 {'age': 99, 'name': 'tom', 'sex': 2} >>> d {'age': 66, 'name': 'tom', 'sex': 2} >>> id(d) 9777488 >>> id(d1) 9777488 >>> id(d2) 10605344 列表解析: >>> li=[1, 2, 3, 4, 5] >>> li1=[ i+1 for i in li] >>> print li1 [2, 3, 4, 5, 6] >>> l1=[1,2,3] >>> l2=[4,5,6] >>> l3=(i+1 for i in l1) >>> l3 <generator object <genexpr> at 0x9b60f0>     ##返回的是一个迭代器 >>> l3.next() 2 >>> l3.next() 3 >>> l3.next() 4 迭代器(iterator):执行一次给一次结果《被动的》(他不相当于循环《主动的》) 它是一个惰性的

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档