python基础入门1

字符编码

字符编码说明:为了解决乱码问题字符------------>编码------------->数字字符<------------编码<-------------数字编码解码要参考字符编码表,字符编码表上存放着字符与数字的对应关系;存取用的字符编码表必须要保持一致字符编码详细解释:ASCII码:用8个二进制数对应一个英文字符,只能识别英文字符gbk码:用16个二进制数对应一个字符,该字符可以是中文字符/英文字符utf-8:万国字符---------->内存:unicode格式的数字------------------>硬盘:utf-8格式的数字中文\英文字符------------>内存:unicode格式的数字------------>硬盘:gbk格式的数字unicode:1.用16个二进制数对应一个字符 1.兼容万国字符  2.兼容各种老的字符编码
目前形式:
1.内存固定是unicode格式的二进制,我们可以改变是存取硬盘的编码形式
2.存取用的字符编码表必须要保持一致
3.python3解释器已经解决了乱码问题
注意:读取和存储的硬盘编码必须一致x="上"   #unicode二进制字符
字符------>编码----->unicod------->编码--------->其他编码格式
res=x.encod("utf-8)
字符------>编码----->unicod------->编码--------->其他编码格式
res=x.decod("utf-8")

变量

1.什么是变量:变:事物的状态是发生改变的   量:事物的状态变量:把我们的事物状态记录下来,以后会改变;变量是一种存取内存的机制
2.为何要有变量为了让计算机像人一样己住事物状态
3.如何用变量原则:先定义,后引用定义变量:三大组成部分(变更名,赋值符号,变量值(事物的状态,存的数据))1.1变量名:用来访问值命名规则-见名知意:1.只能是字母,数字或下划线任意组合2.第一个字符不能是数字3.关键字不能用【and,as,assert,break,class等】命名风格:1.驼峰体  AgeName = 18  (类名)2.纯小写加下划线  age_name = 18 (变量名)3.越精简越好1.2赋值符号:把变更值得内存地址绑定给变量1.3变量值:就是我们记录的事物状态,存数据特征:1.类型:变量值类型            函数:type()2.身份ID:内存地址            函数:id()变量值类型:因为事物状态不同,所以对应着就应用用不同类型1.整型 182.浮点型  1.83.字符型  女GC垃圾回收机制:主要使用引用计数(reference counting)来跟踪和回收垃圾1.引用变量:               x=100  #引用计数为1y=x    #引用计数为2x=200  #引用计数为12. 循环引用带来的内存泄漏;在引用计数的基础上,使用“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用问题;3. 分代回收(使用“分代回收”(generation collection)以空间换时间的方法提高垃圾回收效率;分代回收是建立在标记清除技术基础之上)小整数池优化机制:常驻内存(整数:-5~256;字母;)
4.常量:不变化的量               写法:命名纯大写  AGE = 18

1.基本数据类型

python常用的类型和内置方法:(强类型语言需要类型转换)可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典;不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间);1.布尔值:True|False#所有数据类型都自带布尔值;布尔类型的值通常都是比较运算得到的None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False其余均为真     2.int:18:整型:不可变类型:记录人的年龄|等级|号码等;   定义方式: age = 10  类型转换: int(age)  #用int工厂函数来定义整型类型,将纯字符型10转为整型常用操作+内置方法:算法运算+比较运算3.float:3.8:浮点型:不可变类型:记录任得薪资|身高|体重等;  定义方式: level = 3.8 类型转换: float(level) #用float工厂函数来定义浮点型类型,将字符型3.8转为浮点型常用操作+内置方法:算法运算+比较运算 4.str:"age":字符型:不可变类型: 记录描述性值得状态等(利用'',"",""" """来定义字符,可利用符号不同进行嵌套);定义方式: name = "age" 类型转换: str(age)   #用str工厂函数来字符串类型,将任意类型转为字符型   常用操作:4.1: r:将特殊字符进行转译name1 = "\test\test"   >>>   est estname2 = r"\test\test"  >>>\test\test 4.2:按索引取值:1.只能取值2.可正向取值3.可反向取值name = "hello"print(name[0])     >>>hprint(name[-1])    >>>o4.3:切片(头,尾,步长):1.顾头不顾尾 2.复制操作,不是剪切操作name = "hello"print(name[0:-1:1]) >>>hellprint(name[:])     >>>helloprint(name[0:4:2]) >>>hlprint(name[::-1])  >>>olleh4.4:len():计算字符的个数函数print(len("hello"))  >>>54.5:in和not in:判断一个字符串是否在大字符串中4.6:for 循环内置方法:4.1 str1.strip():默认移除空白name1 = "hello"name2 = name1.strip('h')  >>>ello name3 = name1.rstrip('o') >>>hellname4 = name1.lstrip('h') >>>ello4.2 str1.split():切分成列表类型name1 = "helhlo"name2 = name1.split('h')  >>>['', 'el', 'lo']name3 = name1.rsplit('o') >>>['helhl', '']4.3 "".join(list):把一个纯字符串的列表拼接成字符串name1 = ['', 'el', 'lo']name2 = ";".join(name1)   >>>;el;loprint(type(name2))        >>><class 'str'>4.5 str1.lowser()|str.upper():大小写转换print("HELLO".lower())   >>>helloprint("hello".upper())   >>>HELLO不同方式转换大小            str1.capitalize():把首字母大写 str1.swapcase():翻转 string 中的大小写str1.title():所有单词都是以大写开始,其余字母均为小写(判断用istitle())4.6 str1.startswith()|str2.endwith():判断开头结尾字符print("hello".startswith("h"))  >>>Trueprint("hello".endswith("o"))    >>>True4.7 str1.replace():替换字符print("hello".replace("l", "w"))  >>>hewwo4.8 str1.format():格式化字符串print("hello  {y}  {x}".format(x=18, y="lili"))  >>>  hello lili 184.9 str1.find()与str.index()返回索引值区别:index方法不存在的时候报错;find()不存在返回-1msg = "hello world"print(msg.find("hello"))    >>>0print(msg.index("hello"))   >>>04.10str1.count():返回字符出现次数msg = "hello world"print(msg.count("hello"))   >>>14.11字符格式对齐str1.center()|ljust()|rjust:返回字符居中|左对齐|右对齐,用空格填充宽度msg = "hello world"print(msg.center(20, "*"))  >>>****hello world***** print(msg.ljust(20, "*"))   >>>hello world*********print(msg.rjust(20, "*"))   >>>*********hello worldstr1.zfill():右对齐,用0补充长度msg = "hello world"print(msg.zfill(20, "*"))   >>>000000000hello world4.12判断字符串(结果为布尔值)str1.isdigit():只能纯数字结果才为真,判断是否为数字print("113".isdigit())  >>>Truestr1.isalnum():至少有一个字符并且所有字符都是字母或数字str1.isalpha():至少有一个字符并且所有字符都是字母str1.isdecimal():只包含十进制数字str1.isnumeric():只包含数字字符str1.isspace():只包含空格5.tuple:(1,2,3):元组:不可变类型:按照位置(索引)存多种数据类型(元组是一种不可变的列表);定义方式: tuple1 = (1,2,3)   #注意当元组只用一个元素要加, 如:(1,)类型转换: tuple():将列表类型转为元组类型   常用操作: tuple1 = (1, 2, 3, 3, 5)5.1:按照索引取值1.可读值不可改值2.可正向取值3.可反向取值5.2:切片(同list相同)5.3:长度(同list相同)5.4:成员运算in和not in(同list相同)5.5: 循环(同list相同)内置方法:因为元组不可变类型,就有两种方法5.1:元素在元组中出现的次数print(tuple1.count(3))   >>>25.2:检索首次出现的元素,并返回其位置print(tuple1.index(5))   >>>46.list:[1,2,3]:列表:可变类型:按照位置(索引)存多种数据类型;定义方式: list1 = ["12",3,3,[666,777]]类型转换: list():将元组转换为列表常用操作:6.1:按照索引取值1.可读可改2.可正向取值3.可反向取值list1 = [1, 3, "test"]print(list1[2])  >>>testlist[2]="test2"  print(list1)     >>>[1,3,"test2"]6.2:切片list1 = [1, 3, "test"]print(list1[0:5:2])  >>>[1, 'test']print(list1[::-1])   >>>['test', 3, 1]print(list1[::1])    >>>[1, 3, 'test']   #同copy一样(浅拷贝)6.3:"".join(list):把一个纯字符串的列表拼接成字符串name1 = ['', 'el', 'lo']name2 = ";".join(name1)   >>>;el;loprint(type(name2))        >>><class 'str'>6.4:长度print(len(list1))        >>>36.5:成员运算in 和 not in  for i in list1:print(i)     6.6:循环for i in list1:print(i)     内置方法:               6.1:追加list1.append(67)       print(list1)    >>>[1, 3, 'test', 67]6.2:插入list1.insert(1,"xxxx")print(list1)    >>>[1, xxx, 3, 'test']6.3:统计某个元素个数list1 = [1, 3, "test"]print(list1.count(1))  >>>16.4:获取对象在列表中首次出现的位置list1 = [1, 3, "test"]print(list1.index(3))    >>>16.5:列表倒过来   #另一种表达方式为list3=list2[::-1]list1 = [1, 3, "test"]list1.reverse()print(list1)   >>>['test', 3, 1]6.6:拷贝(浅拷贝)test2 = list2.copy()  print(test2)    >>>[1, 3, "test"]6.7:把字符中的每个元素都加入列表list1 = [1, 3, "test"]print(list1.extend("hello"))  >>>[1, 3, "test", "h", "e", "l", "l", "o"]6.8:列表排序(元素中都为同种类型)list2 = [1, 3, 2]list2.sort()    print(list2)  >>> [1, 2, 3]6.9:清空列表list2.clear()print(list2)     >>>[]6.10:三种删除方式#三种方式#1.执行索引删除:res2 = list1.pop(-1)  #从尾删除res3 = list1.pop(0)   #从头删除print(res2)             #返回值为删除的值#2.指定元素删除:res1 = list1.remove("test")print(res1)  #返回none  单纯删除没有返回值#3.万能删除del list1[0]  #返回none  单纯删除没有返回值del list1     #返回none  单纯删除没有返回值7.dict:{"age"=1, "lihua"=2}:字典:可变类型:按照key:vlaue存多种上数据类型;说明:key必须为不可变类型,通常为字符串类型,字典是无序的定义方式: dic1  = {"age"=1, "lihua"=2}类型转换: print(dict())  >>>{} # 创建空字典print(dict(a='a', b='b', t='t'))    >>>{'a': 'a', 'b': 'b', 't': 't'}print(dict(zip(['one', 'two', 'three'], [1, 2, 3])))   # 映射函数方式来构造字典>>> {'three': 3, 'two': 2, 'one': 1} print(dict([('one', 1), ('two', 2), ('three', 3)]))    # 可迭代对象方式来构造字典>>> {'three': 3, 'two': 2, 'one': 1}        常用操作:对于字典来说,可以根据不存在值得可以,但是对于不存在值,列表会报错例如:dict1={"name":"lili"}1.按照key取值print(dict["name"])  >>lili2.添加dic1[key] ="value"         #对于字典类型来说,key不存在,但可以添加   dic1.append()3.成员运算in和not in(判断的是key)4.删除方法1.万能删除del  dict1["name"]print(dict1)    >>{}2.clear清空删除dic1.clear()     #清空字典print(dic1)                >>>13.字典独有的删除方法print(dict1.pop("name"))   >>>lili             #返回删除key得value值,此删除为有序删除dic1.popitem()  >>>("name","lili")             #返回删除值放在元组,此删除随机删除内置方法: dic1 = {"age"=1, "name"="lihua"}1.dic1.get()    #根据key取值,有利于判断取值pirnt(dic1.get("age"))   >>>1  print(dic1["age"])   >>>1#get()和[]的取值方法区别:当key不存在时,[]报错,而get()返回值为None2.dic1.len()    #长度print(len(dict1))        >>>23.字典独有遍历方式(默认遍历方法为key)dic1.keys      #取键key,dic1.values    #值valuedic1.items     #键值对items()#python2同python3返回值区别:python2返回值放在列表中耗费内存,而python3改良返回函数,有利于内存优化4.dic1.updata()  #更新字典;当key存在就更改值;当key不存在时添加key:valuedic1.update({"name" = "huali"})print(dic1)  >>>{"age"=1, "name"="huali"}5.dic1.copy()             #浅拷贝6.{}.fromkeys()  #快速遍历列表将值成字典dic1 = {}.fromkeys(["name" , "age"],[11,12])print(dic1)    >>>{'name': [11, 12], 'age': [11, 12]}    dic1["name"].append(111)      #formkeys后的字典,当append时候,所有值都会改变print(dic1)    >>>{'name': [11, 12, 111], 'age': [11, 12, 111]}9.dic.setdefault()         #如果字典中存在key,则不动value,如果不存则写入默认值;dic1 = {"name":"lihua"}dic2 = {"name":"lihua", "age":12}dic1.setdefault("age", 18)  dic1.setdefault("age", 18) print(dic1)       >>> {"name":"lihua", "age":18}print(dic2)       >>>{'name': 'lihua', 'age': 12}

集合类型

    set:{111,222,333,(1,2,3)}:集合:可变类型:在{}内用,逗号分割开多个元素;类型函数:set()元素的值特点:1.必须是不可变类型 2.集合内元素无序 3.集合内元素不能重复set1 = {111,222,333,(1,2,3)}print(set1)   >>>{33, (1, 2, 0), 222, 111}常用操作:1.去重功能print(set{"hello"})  >>> {'o', 'h', 'e', 'l'}2.len()  #长度3.成员运算 in 和not in内置方法1.set1.add()  #添加元素set1 = {1,2,3,(1,2,3)}set1.add("test")print(set1)        >>>{1, 2, 3, 'test', (1, 2, 3)}2.s1.update() #更新元素set1 = {1,2,3,(1,2,3)}set1.update({1,10})print(set1)    >>>{1, 2, 3, 10, (1, 2, 3)}3.删除元素3.1set1.pop()           #随机删除,有返回值set1 = {1,2,3,(1,2,3)}print(set1.pop())   >>>1print(set1)         >>>{2, 3, (1, 2, 3)}3.2set1.remove(value)    #当值不在时,报错,无返回值set1 = {1,2,3,(1,2,3)}set1.remove(1)print(set1)    >>>{2, 3, (1, 2, 3)}3.3set1.discard()        #当值不在时,不报错set1 = {1,2,3,(1,2,3)}set1.discard(1)print(set1)    >>>{2, 3, (1, 2, 3)}3.3set1.clear()     #清空  set1 = {1,2,3,(1,2,3)}set1.clear()print(set1)   >>>set()

2.基本运算符号

在等号左边为赋值行为,不在左边都是取值行为
1.算术运算符:用于数字类型用+:加法(也可以用于其他类型)-:减法*:乘法(也可以用于其他类型)/:除法//:整除(取整数)%:取余数**:取平方
2.比较运算符:==:等于(所有类型,不报错)!=:不等于(所有类型,不报错)>=:大于等于(主要用于数字类型,字符按照编码表比大小,列表按照对应位置比大小)<=:小于等于(主要用于数字类型,字符按照编码表比大小,列表按照对应位置比大小)
3.赋值运算符=:赋值+=:增量赋值   (age +=1 等同于 age = age + 1  )   系列:-=,*=,/=等: 链式赋值   (x=y=z=10 说明:连续将10给x,y,z): 交叉赋值   (x,y=y,x 说明:将x值给y,y值给x): 解压赋值   1.size = [1,2,3,4]  x1,x2.x3,x4=size   说明将size[0]给x1 size[1]给x2 size[2]给x3 size[4]给x4  必须赋值与取值个数相同2.size = [1,2,3,4]  x1,*x,x3=size   说明将size[0]给x1 size[2]给x2 size[1]给x3.size = [1,2,3,4]  x1,*_=size   说明将size[0]给x1 size[2]给x2 size[1]给x
4.逻辑运算符(只要结果为布尔值,都可以作为条件)
短路运算:尽可能让优先级提前,优先级:()>not>and>ornot:条件取反结果为true:not 条件1and:同时满足两个条件即为true:条件1 and 条件2 or:满足其中一个条件即为true: 条件1 or  条件2
5.身份运算符(如果id相同,值一定相同;值相同,id不一定相同)is:判断的是id是否相同==: 判断的是值是否相同注意:当判断是否为None时候用is

集合关系运算

关系运算:一个集合体和另一个集合体的运算关系linux = {"liu", 'bai', "lin"}python = {"guo", "bai", "yu"}1.|  并集print(linux | python)        >>>{'guo', 'lin', 'bai', 'liu', 'yu'}print(python.union(linux))   >>>{'lin', 'bai', 'liu', 'guo', 'yu'}2.&  交集print(linux & python)              >>>{'bai'}print(python.intersection(linux))  >>>{'bai'}#s1.isdisjoint判断是否没有交集s1 = {1,2,3}s2 = {1,2,4}s3 = {4,5,6}print(s1.isdisjoint(s2))   >>>Falseprint(s1.isdisjoint(s3))   >>>True3.-  差集print(linux - python)          >>>{'liu', 'lin'}print(python - linux)          >>>{'guo', 'yu'}print(python.difference(linux))  >>>{'guo', 'yu'}python.difference_update(linux)print(linux)    >>>{'liu', 'lin', 'bai'}4.^  对称差集print (python ^ linux) >>>{'guo', 'lin', 'yu', 'liu'}5.==     相等互为父子集s1={1,2,3}s2={1,2,3}print(s1 == s2)  >>>True5.1>,>=  父集   s1={1,2,3}s2={1,2}print(s1 >= s2)         >>>Trueprint(s1.issuperset(s2))>>>True5.2<,<=  子集print(s2 <= s1)         >>>Trueprint(s2.issubset(s1))  >>>True

python基础入门1相关推荐

  1. 万字长文爆肝Python基础入门【巨详细,一学就会】

    目录 数据的名字和种类--变量和类型 初探数据种类 数据类型 数值运算 比较运算 变量和赋值 变量的好处 用赋值更新变量 变量和数据类型的关系 总结 数据类型 数值运算 数值比较 变量和赋值 一串数据 ...

  2. python免费入门手册-Python 基础入门教程

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年. <Python 基础入 ...

  3. Python基础入门教程:使用 Python 3 协程快速获得一个代理池

    Python基础入门教程:使用 Python 3 协程快速获得一个代理池 前言 在执行 IO 密集型任务的时候,程序会因为等待 IO 而阻塞.比如我们使用 requests 库来进行网络爬虫请求的话, ...

  4. Python基础入门之解释器安装

    Python基础入门之解释器安装 一.Python简介 1.python介绍 2.python特点 3.编程相关概念 4.python的用处 5.pyhton官网 二.python解释器在Window ...

  5. Python基础入门必学内容:判断语句与循环语句

    一.if语句 关键字:if.elif.else,写法如下: # if if 条件: # (条件可以是任意表达式)# 条件成立,执行此处代码,条件不成立,跳过此处代码,继续往下执行其他diamante# ...

  6. 超全面Python基础入门教程【十天课程】博客笔记汇总表

    目录 1.学习地址 2.下载地址[视频.源码.课件.软件] 3.详细博客笔记 Day 01 Day 02 Day 03 Day 04 Day 05 Day 06 Day 07 Day 08 Day 0 ...

  7. [新手必备]Python 基础入门必学知识点笔记

    Python 作为近几年越来越流行的语言,吸引了大量的学员开始学习,为了方便新手小白在学习过程中,更加快捷方便的查漏补缺.根据网上各种乱七八糟的资料以及实验楼的 Python 基础内容整理了一份极度适 ...

  8. Python基础入门笔记(二)

    前言 本文主要为 Python基础入门笔记(一)内容的补充. 一.迭代器和生成器 1.1 Python迭代器 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元 ...

  9. Python基础入门6_文件和异常

    Python 基础入门前五篇: Python 基础入门–简介和环境配置 Python基础入门_2基础语法和变量类型 Python基础入门_3条件语句和迭代循环 Python基础入门_4函数 Pytho ...

  10. Python基础入门_5面向对象基础

    Python 基础入门前四篇: Python 基础入门–简介和环境配置 Python基础入门_2基础语法和变量类型 Python基础入门_3条件语句和迭代循环 Python基础入门_4函数 第五篇主要 ...

最新文章

  1. 原生JS添加类名 删除类名
  2. EXCEL公式、函数、图表应用技巧800问
  3. 基于Vue+Nodejs实现宿舍管理系统
  4. linux基础(day19)
  5. 零基础python必背代码-编程零基础应当如何开始学习 Python?
  6. gdb+pwndbg使用初探
  7. Anaconda-- conda 创建、激活、退出、删除虚拟环境
  8. python中数组的维度_Python数组维度问题
  9. linux rpm 删除
  10. python mssql session_python的web框架webpy【session amp; cookie】五 - 莫激动 - ITeye博客
  11. 《Linux内核设计与实现》读书笔记 第一章 Linux内核简介
  12. java wait 执行顺序_JAVA 的wait(), notify()与synchronized同步机制
  13. 中国高性能计算服务器排名,2007中国高性能计算100强出炉
  14. 学习perl点滴(二)
  15. 电脑网页长截图怎么弄的?电脑上怎么截图?
  16. 路由器登录校园网解决终端限制问题
  17. 劝学篇翻译软件测试,汪洙《神童诗劝学篇》原文与译文
  18. 今天电脑突然出现问题: 请安装 TCP/IP 协议 错误 10106 【已解决·】
  19. 初次面试初生牛犊不怕虎,居然觉得面试就是聊天?
  20. html给页面添加艺术型边框,如何为2016word的页面设置艺术型页面边框

热门文章

  1. 学习了pr后的收获_我的PR小结
  2. tomcat安装以及部署jpress
  3. 2016/5/21 Seperate by *
  4. Exp5 MSF基础应用 20164302 王一帆
  5. oracle 命令 执行job_Oracle中job的使用详解
  6. 后台打log(便于查看问题和调试)方法
  7. 编写一个程序,完成字符大小写的转换。
  8. 网络语言上多个C是什么意思,今年流行的网络用语,个个都很有意思,你知道几个呢?...
  9. Win32学习笔记 - WndProc回调函数
  10. FIPS 140-3与140-2的差异-2