C++和python的学习总结

        在假期中学习了python和c++语言的一部分后收获挺多,学到很多的东西,也发现了一些两者之间也有一定的联系。

        其中就对于两者的语言的作用就有些不同。Python是一种基于解释器的语言,解释器会逐行读取代码;首先将Python编译为字节码,然后由大型C程序解释。C是一种编译语言,完整的源代码将直接编译为机器代码,由CPU直接执行。

        因为在上学期学过了c语言,所以在学习python的时候就发现了不是那么费劲,就感觉能看懂一些东西,在c语言中学到的语句也能在python中用到,二者相辅相成吧。

        在c语言中我学会了一些基本的语言知识,还有就是语句的用法,包括顺序语句,条件语句,选择语句,以及一些字符串,数组,指针的用法。其次就是函数的调用等等,其中感觉指针的里面的用法自我感觉比较难。不好理解和用。函数调用是每个语法里面都可以用的,所以自我感觉比较重要。

        在c语言我感觉还有的重点就在于两种排列方法,一种是冒泡法排序,另一种是选择法排序,这两种排列方法我感觉它能用好几种方式来写,自我认为最难的就是里面加入指针的时候,特别是在用指针作为函数参数的方式时我就不知道该怎么写了。

学到的c语言的一些内容如下

常量:常量包括字面常量、直接常量和符号常量;

  变量:C语言规定标志符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或者下划线;必须压迫先定义后使用;每一个变量被定义以确定类型后,在编译时就能为其分配相应的存储单元;

  整数类型:整数常量有十进制、八进制和十六进制;“%d”

  整形变量:数据在内存中存放形式是以二进制形式存放;有int型、short int型和long int型,无符号整型变量的范围是-32768—32767,有符号型为0~65535.通常把long定义为32位,把short定义为16位,int可以是32位也可以为16位,这都主要取决于机器字长。

  实型常量的表示方法:(1)十进制,0.0;(2)指数形式,123e3

  实型变量:实数型数据在内存中的存放形式,一般在内存中占4个字节,分成整数部分和小数部分存放。实型变量分为float型、double型long double型。实型数据会存在舍入误差。

  实型常量的类型:C编译系统将实型常量作为双精度来处理。

  字符型数组:(一)字符常量:转义字符(\n——换行,\t——tab,\r——回车,\f——换页,\b——退格,\ddd——1到3位8进制的数代表的字符)

  (二)字符变量:字符数据存储形式实际是以ASCII码存储。“%c”

  字符串常量:双撇号括起来的一系列字符序列。

C的运算符有以下几种:

  1、算术运算符(+ - * /  %)结合方向自左向右

  2、关系运算符(> < == >= <= !=)

  3、逻辑运算符(! && ||)

  4、位运算符(<< >> ~ | ^ &)

  5、赋值运算符(=及符号扩展赋值运算符)

  6、条件运算符(? : )

  7、逗号运算符( , )

  8、指针运算符(* &)

  9、求字节运算符(sizeof)

  10、强制类型转换运算符((类型))

  11、分量运算符( . ->)

  12、下标运算符([])

  13、其他

控制语句:

  完成一定的控制功能。

  1、if()~else~  2、for()~    3、while()~   4、do~while()   5、continue   6、break  7、switch 8、goto  9、return

字符数据的输入输出:

  1、putchar()输入字符变量

  2、getchar()只能接受一个字符

格式化输入输出:

  1、printf(%d—整型,%c—字符型,%ld,%md,%o,%u,%s,%-m.nf,%e,%g)

  2、scanf(格式控制,地址列表)

数组

  一维数组的定义:类型说明符 数组名【常量表达式】;先定义后引用;一维数组初始化时可以只对一部分元素初始化,在对全部数组元素初始化的时候可以部规定长度;但是若被定义的数组长度与提供的初始值不一样时,则数组长度不能省略。

  二维数组的定义:类型说明符 数组名【常量表达式】【常量表达式】C语言中存放二维数组是先存放第一行的元素,紧接着是第二行,其实也是以一维的方式存放。如果初始化时能指定所有元素的初始值,第一维大小可以省略,但是第二维不能省略。

  字符数组:定义和初始化跟数组差不多,只是需要加单引号。字符和字符串结束标志,C语言规定,以‘\0’代表。

字符串处理函数:

  1、puts()将一个字符串输出到终端

  2、gets()从终端输入一个字符串到字符数组,并且得到一个函数值。

  3、strcat()链接两个字符数组中的字符串。

  4、strcpy()字符串复制函数。

  5、strcmp()比较字符串作用。

  6、strlen()测试字符串长度的函数不包括“\0”

  7、strlwr()将字符串中的大写字母转换为小写字母。

  8、strupr()将字符串中的小写字母转换为大写字母。

函数

  (1)一个源程序由多个函数组成。

  (2)C程序的执行从main()函数开始;

  (3)所有函数都是平行的;

  (4)函数分类;可以分为标准和自定义,还可以分为有参函数和无参函数。

关于函数形参和函数实参的说明:

  (1) 在定义函数中指定的形参,在未出现函数调用时,他们并不占用内存中的存储单元,只有发生调用时,才会分配内存。

  (2) 实参可以是常量、变量或者表达式;有时传递的时地址;

  (3) 在被定义中,形参必须指定类型;

  (4) 实参与形参的类型应相同或赋值兼容;

  (5) C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只有实参传递给形参,而不能由形参传递给实参。

函数的返回值:

  希望通过函数调用使主调函数得到一个确定的值。(1)函数的返回值是通过函数中的return语句获取的。(2)函数值的类型;(3)如果函数值的类型和return语句中表达式的值不一样,则以函数类型为准。(4)如果调用函数中没有return语句,并不带回一个确定的用户需要的值,函数不是不带回值,而只是不带回有用的值,带回一个不确定的值。(5)如不需要带回任何值,用void。

函数的调用:

  调用方式1、函数语句;2、函数表达式;3、函数参数。

被调用的函数的声明:

  一个函数调用另一个函数所具备的条件:

  1、首先被调用的函数必须是已经存在的函数;

  2、如果使用库函数,一般应该在本文件开头用#include命令将调用有关库函数时在所需要用到的信息“包含”到本文件中。.h文件是头文件所用的后缀。

  3、如果使用用户自己定义的函数,而且该函数与使用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明。

  4、如果被调用的函数定义出现在主调函数之前可以不必声明。

  5、如果已在所有函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必多所调用的函数在做声明。

指针:

  指针是指向一片内存空间的地址,指针变量是变量,是存放一片内存空间首地址的变量,我们一般所说的指针都是指针变量。

       指针的定义及赋值:

  类型说明 *变量名  列如 int *p; 

  区别 int *p=NULL 与 *p=NULL 

        int *p=NULL;    //定义指针变量p,并且同时将p的值设置为0x00000000,不是把*p的值设置为0x0000000,这个过程叫做初始化

        int *p;*p=NULL;    //定义指针变量p,将*p的值设置为NILL,即给p所指向的内存赋值NULL,但是p所指的内存可能是非法的,编译可能会显示内存访问错误,那么做出如下修改,给它一块合法的内存。

       int i=10;int *p=&i;*p=NULL;    //这时i中的值由10变成了0,而p值本身没变,即内存地址没有改变

      指针的大小:

       int *P;sizeof(p);    //指针的大小根据计算机的位数确定,32位机大小为4个字节,64位机大小为8个字节。

      指针运算:

  需要注意的是指针的类型,+1加的是一个指针类型的大小。

  int a[10];int *p=&a;    //+1,加了sizeof(int)*1个字节,而不是加sizeof(int[10])*1个字节

指针的使用类型

以上便是学习c语言的一些内容;

接下来是python的一些知识

数据类型:

python中的数据类型可以分为:字符串、布尔类型、整数、浮点数、数字、列表、元组、字典和日期。

字符串

不可变对象,可使用单引号,双引号扩起来表示单行字符串,使用三引号表示多行字符串,在三引号可以自由的使用单引号和双引号。

ASCII码

字符串比较特殊的是编码问题 我们知道,计算机是美国人发明的,最初只有127个字母被编码到计算机中,包括大小写字母、数字和一些符号,这个编码表被称为ASCII码表。

Unicode

要处理一个中文显然一个字节是不够用的,又不能和ASCII码冲突,因此中国制定了GB2312编码。而全世界有很多的语言,在多语言混合的文本中,显示出来的话一定会有乱码,因此,Unicode应运而生,它将所有语言统一到一套编码中,就不会有乱码问题了。ASCII码用一个字节表示了一个字符,而Unicode用两个字节表示一个字符。以Unicode表示的字符串用u'...'表示。

UTF-8

经常在.py文件的开头写的"#coding:utf-8”是什么意思?我们知道Unicode编码要比ASCII编码多一倍的存储空间,在存储和传输上会十分的不划算,如果写的文本全是英文的话,使用Unicode编码就十分浪费。于是UTF-8编码出现了,UTF-8编码是把一个Unicode字符根据不同的数字大小编码成1-6个字节,并且可以将ASCII码看成是UTF-8的一部分。

编码解码

在Python2.7中,操作系统给它什么编码的字符串,它就接收啥格式的字符串,默认的格式与使用的格式不同,就会出现各种错误。
解决方法:
1.知道系统所使用的编码格式
2.把获取的页面先用系统格式解码,然后在编码为utf8格式
3.你的脚本中统一使用uft8编码
4.处理结束,把你的字符串先utf8解码,然后系统格式编码。
Python中,通常使用decode()和encode()进行解码和编码。

布尔类型

一个布尔值只有True和Flase两种值

整数

包括整数和负整数。

浮点数

就是小数 整数和浮点数在计算机内部的存储是不同的 整数的运算永远是精确的 而浮点运算可能有四舍五入的误差 

列表List

list是一个是一个可变的有序表,是Python内置的一种数据类型,可以随时添加、删除、替换其中的元素。
Python中的列表就是一个迭代器,我们知道Python是使用C编写的,那么list的内部实现是怎样的呢?Python中的列表是基于PyListObject实现的,PyListObject是一个变长对象,在内部通过一些方法维护列表的地址,进行内存管理等实现列表的功能。

元组Tuple

除了元组以外的另一种有序表称为元组tuple,但是tuple一旦初始化便不能修改,在定义时,tuple的元素就被确定了。为什么要引入tuple呢?因为tuple不可变,所以代码更为安全,能用tuple代替list的情况就尽量使用tuple。
由于元组是不可变的,因此修改元素操作是非法的,但是可通过对元素进行连接组合,比如:tuple3 = tuple1 + tuple2。
使用del语句可删除整个元组。

字典Dict

Python内置了字典,使用key-value存储,具有极快的查找速度。和list相比,查找速度要高很多。
为什么dict查找速度这么快?因为dict的实现原理和查字典是一样的。假设字典包含了1万个汉字,我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。第二种方法是先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字,无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。

以上便是一些python的知识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值