会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门

(本文当作一个学习笔记,也是自己学习过程中一些比较觉得很有用的东西)

一.  变量,输入输出

1.1 数值

这里没有像C语言一样,int四个字节,long long 八个字节,float单精度 ,double双精度,这种分别,python只有整型和浮点型。

1.1.1 整型

这里的int就是整数的意思,没有范围。因为没有数据类型所以,数据的定义直接a = 1。

int(变量名字) 可以实现强制数据类型转化为整数。

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第1张图片

1.1.2  浮点型

此处的浮点型也没有双精度,单精度之分,例如a = 3.14

2d01daf53014e33fcf726da3fafd96b3.png

1.1.3  abs,int,round函数

abs()函数可以返回数字的绝对值。例如:

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第2张图片

int()函数可以实现数字的强制类型转换,转换为整型。注意此处int()是函数,不像C语言(int)a可以实现强制类型转化。例如:

31095fe72232c7f8270f45ab16375fde.png

round()函数可以实现浮点数的四舍五入结果,round(n,r) 为n保留r为小数,四舍五入后的结果。例如:

dd7be3f1c1946cd3005aa451f77bfd4d.png

1.1.4  表达式

像C语言一样,可以实现加减乘除,这里Py新增了一下几种种运算符:

**  是乘方的意思,不过复杂度是O(n)的,内部实现没有使用快速幂算法优化。

c62aa853fbfc0374fc8383a7a841a607.png

//  是求商部分,也就是除法运算向下取整后的结果。 由于Py一个变量没有int和float之说,所以想得到整数要么使用int()函数要么使用 // 运算。

88e01de7393352f873044303170059ed.png

1.1.5  Py中数据对象的存储

0292479f6d0fada033bfb907acec6f39.png

当执行第一行代码后,系统开辟空间存储数字5,然后n相当于一个引用。

当执行第二行代码后,系统重新开辟空间存储数字6,更改n的引用位置。

此处是有别于C语言的。

至于闲置内存的回收由Py的某个进程负责。

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第3张图片

1.2  字符串

1.2.1  字符串表示

字符串在Py中不像C语言需要字符数组或者string来存储,字符串是一个由

单引号或双引号

括起来的整体。例如:

‘ Hello Python! ’       ,         " Hello  Python! "

字符串可以直接赋值给变量。例如:

be0fa746d442fd6fb164cea5bf19349a.png

1.2.2  索引以及切片

同C语言,字符串具有从0开始的索引,到  len-1  结束。不同的是字符串也有反向索引,字符串的最后一个下标为-1,倒数第二个为-2,等等

字符串也有切片的功能,a[m:n] 即为,下标为n开始到下标为m的前一个。a[m: ]为从m截取到最后。

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第4张图片

1.2.3  字符串常用操作

len()函数返回字符串长度,例如:

3893ad94830848e207cb9b68da479c93.png

upper() / lower( ) 返回字符串转化为 大 / 小 写字母组成。调用后并不影响字符串本身

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第5张图片

rstrip()函数可以去除末尾空格

a0f886d9953a55b39e16929024a0044d.png

1.3  输入输出函数

1.3.1  input函数

input(提示输入信息),返回值为输入的字符串,碰到Enter为止

1e67be06a0cbbf57851935a5adb85ee4.png

很像C语言的gets函数,经常配合split(),int(),float () 使用。

1.3.2  print函数

同C语言 ‘  \  ’为转义字符。

print(val1 , val2 , val3) , 输出以空格分割的三个变量,并且自动换行

print(val1, val2 , val3 , sep = '+') , sep参数可以改变分割的字符

print(val1, val2,  val3, end = ""),  end参数可以改变终止的换行符

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第6张图片

这里有一个很厉害的函数eval ( ),记不记得C语言打表达式求值的死亡大模拟,这个函数可以直接求表达式的值

cff0ff7df67eb0c973efb27dd6677e8f.png

1.3.3  格式化输出

print(  字符串.ljust(w) )   输出字符串向左对齐,字宽为w

print( 字符串.rjust(w) )输出字符串向右对齐,字宽为w

print( 字符串.center(w) )输出字符串居中,字宽为w

二、 列表,元组,文件

2.1  列表

列表是一个有序序列,元素可以是

任意的类型。

2.1.1  列表的定义

列表的定义为a = [ "qwe" , 123 , 3.14 ]

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第7张图片

2.2.2  列表操作函数

len()函数返回列表的元素个数。

18716cd3a4e5cd07a64c2b21dd9bc70b.png

max( ) / min( ) / sum() 返回列表的最大值  /  最小值  /  和。(必须都为数值)

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第8张图片

列表 . count(查找元素)返回所查找元素的数目

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第9张图片

列表 . append(末尾插入对象)

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第10张图片

列表 . insert (插入位置,插入元素)

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第11张图片

split(s1)函数 ,将字符串以s1分割存入列表,返回一个列表。

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第12张图片

s1. join(列表)函数,可以看作 split()的反函数,将列表中的元素用s1分割,

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第13张图片

2.2.3  列表的复制

在Py中列表名可以看作一个空间的引用,所以当我们要复制列表的时候不可以直接list1 = list2,如果修改list1,同样list2会被修改。

fb860ecaa3f9a7d47fa875be155f79c2.png

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第14张图片

2.2  元组

元组是不可改变的有序序列。也可以像字符串一样切片。

元素的定义为 a = (val1  ,  val2  ,  val3 )  或者  a = val1  ,  val2  ,  val3

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第15张图片

Py 里交换元素可以 x , y = y , x   实际上是为元组赋值

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第16张图片

2.3  文件

2.3.1  打开文件

file = open( “ 文件路径 ” ,权限 )

file 为文件句柄

79dba74bcdf353f80e7e288d7bf4a81a.png

2.3.2  关闭文件

打开文件后一定要有关闭操作。

file.close( )

2.3.3  文件读

file.read()

2.3.4  文件写

file.write()              返回写入文件字符的数目。

注意:键入file.close()才会真正写入文本。

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第17张图片

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第18张图片

三、控制流结构

3.1  Python新增逻辑表达运算符

3.1.1  ASCII码与字符的转换

因为Py中没有char这个类型,所以想要实现ASCII码和数字之间的转换也需要函数。

ord('A')   返回字符的ASCII码

chr(65)   返回ASCII码为65的字符

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第19张图片

3.1.2  in 与 sort

C语言原有的Py都有,但是新增了几个十分便利的

in   是个二目运算符,返回结果为前者是否为后者子串或者子元素,同样也有not in。

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第20张图片

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第21张图片

sort   列表排序函数,和C语言#include 中的sort 功能一样,调用更便捷。例如:

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第22张图片

但是sort要求列表元素都为数值或者字符串。

3.1.3  自定义排序

在C语言中要想自定义,需要重载运算符,或者手写比较函数,Py中调用更为方便。

list . sort ( key = 第一优先级 )

可以实现自定义排序

reverse参数可以设置逆序还是正序。

list . sort( key = 第一优先级 , reverse = True)

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第23张图片

sort函数直接对原来的列表进行了修改,sorted函数不对原列表修改,而且返回排序后的列表

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第24张图片

还有多优先级并且升降序不同,要自己定义的时候,需要用到functools模块,在后边函数的时候会重点提到。

3.2  循环结构和分支结构

这一部分和C语言很相似,记住

子语句与父语句保持四个空格的缩进。

3.1.1  while的用法

while  表达式 :

函数体

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第25张图片

3.1.2  for的用法

如果遍历元素为数字的话:  和C语言for(int i = n;i < m ; i++){    函数体   }

for i in range ( n , m ):

函数体

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第26张图片

n = int(input("Input n : "))

for i in range (1,n+1):

for j in range(1,n-i+1):

print(" ",end = "")

for j in range(1,2*i):

print("*",end = "")

print("")

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第27张图片

如果要实现for(int i = n ; i <= m ; i += s) 这样的功能,可以使用for i in range (n , m , s)

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第28张图片

for也可以直接遍历字符串或者列表值。

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第29张图片

for也可以行读文件 for line in 文件句柄:  (记得关文件)

3.1.3  分支结构

if  语句   就是      if  表达式  :

else    变成了      elif 表达式 :

else                     else :

同时Py的 break   和   continue不变   。

记住子语句与父语句四个空格缩进就好。

四、函数

(因为C语言的函数和Py的函数十分相似,所以这里重点讲Py的cmp_to_key。)

4.1 函数的定义以及参数作用域

4.1.1  函数的定义

函数的定义不像C语言要确定一个返回值类型,因为在Py中没有严格的变量类型的区分。

只需要使用def  关键字即可定义。同时参数也不需要指明类型,返回值也没有类型,非常简单。

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第30张图片

4.1.2   函数骚操作

Py 可以返回多个参数,其实相当于返回值是一个元组,赋值的也是个元组

会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门_第31张图片

同时还可以按照参数名传参数,很骚的东西,感觉没什么大用。

4.2   自定义多优先级排序

在Py3中手写cmp函数被取消了,必须要使用function函数中的cmp_to_key()函数进行多优先级排序。

cmp_to_key ( mycmp ) 中 mycmp 就是自定义的手写函数。

参数为要排序元素

定义手写函数的时候,需要两个参数(val1 , val2),

如果满足条件后,

val1  排在后边 返回 1

,排在前边返回 -1

,如果完全相等返回0,

这个返回0 不可以像C语言自定义排序那样不写,否则函数无效。

例如:先按照分数高低排,分数一样按名字字典序排序

import functools

def cmp1(n1, n2):

if(n1[1] > n2[1]):

return -1

elif(n1[1] < n2[1]):

return 1

else:

if(n1[0] > n2[0]):

return 1

elif(n1[0] < n2[0]):

return -1

else:

return 0

a = [['lili',96],['xiliang',90],['hailu',94],['hailong',94]]

print(sorted(a, key=functools.cmp_to_key(cmp1)))

6fec1ec7d3b925096a0e66e7605c1d44.png

sort还有很多花里胡哨的用法,此处不再介绍,

一个手写cmp函数可以解决一切sort优先级问题。

你可能感兴趣的:(会c语言如何快速入门python,用C语言快速学习Python语言基础,从,学会,入门)