Python总是从第一行代码开始逐步执行,而C是从main函数开始执行。

 
    在Python中,一切东西都是对象。
 
 在Python中,没有C的花括号,不能任意排版,属于同一个语句块的语句需要使用相同的对齐方式(前面的空格数应该一样)否则会报错。

 
固定的数据类型

    str是一种类型,字符串类型,一个字符序列。在Python中,str和基本的数值类型(比如int)都是固定的,也就是一旦设定,其值便不能改变,虽然我们可以通过方括号取得序列中的数据项,但无法改变其中的字符。
 
    在Python中,字符是指长度为1的字符串。
 
内置函数:
    内置函数是Python语言内置的一部分,我们不需要从某个库文件中对其进行import,就可以直接引用该函数。
 
Python整数大小:
    Python所表示的整数大小只受机器的内存大小的限制,而非固定的字节数。
 
    字符串可以使用双引号或单引号封装,只要字符串头尾使用的符号相同或对称即可,Python字符串使用的是Unicode编码,所以字符串内容不局限于ASCII字符。
 
方括号:
    Python使用[]提取字符串等任意序列中的某一项,从0开始。方括号存取使用与任意数据类型(只要构成一个序列)的数据项。
 
对象引用:
    定义了数据类型之后,我们就可以定义存储某种数据类型的变量,但是在Python中没有这样的变量,而是使用“对象引用”。
    x = "blue"
    执行时,Python会先创建一个str对象(放在堆区),str对象存储的就是“blue”的这些字符,同时还创建了一个名为x的对象引用,x引用的就是str对象。
    x=2
    在C中,会开辟一段内存(占4个字节),里面存储着2这个数字,这段内存的引用名为x。
    在Python中,会开辟两段内存,在堆上开辟的内存存储着2这个数字,是一个int对象,另一段开辟的内存存储着int对象的地址,该段内存的引用名为x。
 
操作符=:
    在Python中,“=”的作用是将对象引用和内存中的某对象进行绑定。如果对象引用已经存在,那么就简单的进行重绑定,以便引用“=”操作符后面的对象。如果对象引用尚未存在,就由“=”操作符创建对象引用。
 
垃圾回收:
    如果内存中的一个对象,没有任何一个对象引用引用此对象,那么这个无引用的对象,就由Python进行垃圾回收处理
 
动态类型机制:
    Python使用的的是“动态类型”机制,即在任何时刻,只要需要,某个对象引用可以重新引用一个不同的对象;某个对象引用可以重新绑定到不同的数据类型的对象。
    x="blue"     #x对象引用引用的是str对象
    x=1              #x对象引用重新与int对象进行绑定,同时str对象“blue”进入垃圾回收流程,因为没有对象引用再对其进行引用
 
    如果某个类型的对象使用了不合法的操作符,就会导致产生了一个TypeError
 
    type()函数会返回给定数据项的数据类型。
 
元组和列表:
    列表有点像C中的数组,不过Python的组合数据类型支持一个组合数据类型中包含多种类型。
    元组是固定的,创建后就不能改变;列表是可变的,在需要的时候可以插入或移除数据项;
    元组使用逗号创建,x=1,2,3,"123"
    在输出元组时,Python使用圆括号将其封装在一起,可以结合圆括号和逗号创建元组,x=(1,2,3,"123"),如果元组只有一个数据项,又需要圆括号,就需要在第一个数据项后面加上一个“多余”的逗号,如x=(1,)。这个逗号如果省略了,那么创建的只是一个普通的数据项,而不是一个元组对象。
    空元组使用空的()创建。
 
    逗号:
    逗号有两个用处:1,分隔函数参数,2,分隔元组中数据项
    由于函数参数和元组都是用圆括号封装,因此如果需要将元组常值作为参数传递,就必须使用圆括号对其进行封装,以免混淆。如:
    func(1,2,(3,4)),第三个参数是元组,如果元组不加圆括号,则会发生混淆。
    
    列表的创建使用方括号进行分封装,看来方括号不仅可以取序列中的某项数据项,还可以来定义列表。
 
元组和列表实质:
    实质上元组和列表并不存储真正的数据项,而是存储对象引用,这样做会浪费一点空间。
    x=1
    y=2
    z=3
    a=[x,y,z]
    创建列表或元组时,实际上是使用给定对象引用的副本而已。
    b=[1,2,3]
    这又和上面的创建方法不一样,这是在字面意义项(比如整数或字符串)的情况下,会在内存中创建一个适当数据类型的对象,而存放在列表或元组的才是对象引用。
 
    组合数据类型也是一种对象的类:
    因此可以将某种组合数据类型嵌套在其他组合数据类型中,比如创建一个列表,列表的数据项仍是列表。
 
    元组,列表以及字符串等数据类型的长度——len()函数:
    这长度对该数据类型是有意义的,将数据项作为参数传递给len()函数即可得到该数据项的长度。
 
    数据项知道自己的类型!:
    对象知道自己的数据类型,因此不需要明确指定数据类型,比如定义的时候
 
    列表的扩建:
    1,创建一个新的列表,再与新的列表对象的对象引用进行重新的绑定;2,使用对象自带的append方法,具有更高的效率,对于长列表更是如此。
 
方法调用:
    1,x.append("more")
    2,list.append(x,"more")
    第一种形式在实际中应用得更加广泛;第二种指定了数据类型、该数据类型的方法,并将要调用该方法的数据项本身作为第一个参数,其后再跟随一些其他参数。(在继承方面,语义存在稍微差别)
 
点(存储属性)操作符:
    用于存储某个对象的属性,属性不仅可以是方法,常量,也可以是任意类型的对象。由于属性可以是对象,该对象包含其他属性,这些属性又是对象,以此类推。
 
成员操作符in:
    对于序列或集合这一数据类型,比如字符串、列表、元组,我们可以使用操作符in来测试成员关系,用not in测试非成员关系。
    对于列表或元组,in使用的是线性搜索,对于较大的组合数据类型,速度可能会较慢;
    对于字典或集合,in的速度可以非常快;
    对于字符串数据类型,in可以很方便的测试任意长度的字符串。
 
逻辑运算符返回值:
    and or not:and or使用的是短路逻辑,比如A and B,如果A为假,那么该表达式一定为假,B不会被计算;or也是如此;
    上面的和C一样,但有一点最不一样的是,逻辑表达式的返回值:not返回的是True或False,而and or 返回的是决定结果的操作数,而不是布尔值(除非实际上是布尔操作数),比如 3 and 5表达式返回的是5.
 
a=1
a=a+1的过程分析:
    第一条语句:a=1,Python会先创建一个存储1的int对象,这个对象存储在堆内,此时用户还无法使用它,Python再创建一个名字为a的对象引用指向堆内的对象,用户通过a便可以使用堆内的存储1的对象。
    第二条语句:a=a+1,由于int类型是固定的,也就是a引用的对象一旦赋值就不能改变,因此对固定的对象使用增强的赋值操作符时,实际上是创建一个对象来存储结果,之后目标对象引用重新绑定,以便引用上面创建的结果对象,而不再引用以前的对象,以前的对象如果没有其他对象引用,便会进入垃圾回收流程。
 
a+=b和a=a+b的微妙差别:
    前者只查询了一次a的值,因而速度更快,此外,如果a是一个复杂的表达式(有副作用的表达式),那么使用增强的赋值操作符较少出错。因为计算的过程,维护者只需要改变一次,而不是两次。
 
+=和序列:
    在序列中,+=的右边必须是可迭代的操作数,否则会产生TypeError,比如 a+=[2]或a+=[2,3,4],而不是a+=2;
    在字符串序列里,a+="ABC",和a+=["ABC"]是不一样的,如:
    a=["A","BC"]
    a+="ABC"    #Python会迭代字符串序列的每个字母,最后结果是a为["A","BC","A","B","C"]
    a+=["ABC"]    #Python会迭代字符串列表的每一个数据项,最后结果是a为["A","BC","ABC"]
    
+=对于固定的数据类型和可变的数据类型:
    对于固定的数据类型,使用增强的赋值操作符,会创建一个新的对象,并且表达式的左边的对象引用将重新绑定到新的对象;
    对于可变的数据类型,原始的对象会被修改。
 
固定的数据类型和可变的数据类型:
    性能差别,固定的数据类型具有比可变的数据类型更高的潜力;有些组合数据类型(比如集合)只能操纵固定的数据类型;这就是Python规定两种数据类型的原因。
 
函数库的导入顺序:
    先导入Python的标准库模块,之后导入第三方库模块,最后才导入自己编写的模块。

本文链接:http://www.cnblogs.com/cposture/p/4514634.html

【原创】Python第一章的更多相关文章

  1. 简学Python第一章__进入PY的世界

    #cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...

  2. python第一章计算机基础

    第一章 计算机基础 1.1 硬件 计算机基本的硬件由:CPU / 内存 / 主板 / 硬盘 / 网卡 / 显卡 / 显示器 等组成,只有硬件但硬件之间无法进行交流和通信. 1.2 操作系统 操作系统用 ...

  3. Python第一章-基础知识

    第一章:基础知识 1.1 安装python.     直接官网下载最新的python然后默认安装就可以了,然后开始菜单里找到pyhton *.*.* Shell.exe运行python的交互shell ...

  4. python第一章:简介与安装--小白博客

    Python简介 Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项 ...

  5. 学习python 第一章

    目录 第一章... 1 1:新建项目... 1 2:修改默认模板... 3 3:什么是变量... 3 4:重指向... 3 5:常量的表示... 4 6:格式化输出(三种方法)... 4 7:打印一个 ...

  6. python第一章练习题

    本章总节 练习题 1.简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释 编译型:把源代码编译成机器语言的可执行文件,程序执行的时候执行可执行文件即可. 优点:程序执行不 ...

  7. python:第一章

    完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行. 代码少的代价是运行速度慢,C程序运行1秒钟,Java程序可能需要2秒,而Python程序可能就需要1 ...

  8. Python第一章概述与环境安装

    Python简介 Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项 ...

  9. python第一章 python基础编程

    第一次学习python 首先python对于我来说是我学习的第三门语言,之前大一学习过了c和c++这两门语言. 接触一个新语言,首先应该的是搭载一下编译的环境.我们是老师给我们上传了的python3安 ...

随机推荐

  1. 小白的CTF学习之路3——二进制数据基础与运算(下)

    处理了二进制的整数运算,下面我们来进行令人绝望的浮点数运算 我们先来看一下float事列程序: #include<"stdio.sh"> int main() { fl ...

  2. 贪心-Wooden Sticks

    先将火柴按照长度(或重量)优先排序,在不断遍历数组,找出其中重量(长度)递增子序列,并标记 Problem Description There is a pile of n wooden sticks ...

  3. bootstrap的引用和注意事项

    1,在https://v3.bootcss.com/getting-started/#download下载bootstrap的压缩包: 2,将压缩包解压到自己的工程文件中,会得到如下结果: 3,打开这 ...

  4. ceph删除pool提示(you must first set the mon_allow_pool_delete config option to true)解决办法

    现象: 1.在mon节点打开/etc/ceph/ceph.conf,增加以下 2.重启ceph-mon systemctl restart ceph-mon.target 3.删除pool [root ...

  5. 中标麒麟(linux)下Qt调用python数据转换

    转自:https://blog.csdn.net/itas109/article/details/78733478 mytest.py文件 # -*- coding: utf-8 -*- def he ...

  6. go 函数类型

    在go中,函数也可以被当成数据类型 e.g:下面有两个函数,+.-,然后定义了一个函数类型FuncType1,然后对funcType1附于不同的函数,则funcType1就可以执行相应的函数 pack ...

  7. Day09 (黑客成长日记) 爬虫入门

    爬虫的基本流程: 发起请求通过HTTP库向目标站点发起请求,也就是发送一个Request,请求可以包含额外的header等信息,等待服务器响应 获取响应内容如果服务器能正常响应,会得到一个Respon ...

  8. C# 获取外网IP地址

    很多情况下我们需要获取外网的IP地址,一般用自带的方法获取到的都是不准确,往往获取到的是内网的IP地址,所以需要采用外部网站接口来获取. 代码 通过访问第三方接口来获取真实的ip地址 public s ...

  9. 出错with root cause

    [背景:] 我自己写了一个项目,主页可以看到一个数据库里的一个应用的users用户表的所有数据,包括用户的年龄,姓名,出生日期等信息.后来又想再增加一个注册功能,写好了之后进行单元测试,结果就出现了w ...

  10. spring整合mybatis框架

    1.导入jar包 2.配置文件 a.    applicationContext.xml文件 <beans xmlns="http://www.springframework.org/ ...