-------------PHP-----------------------
数据类型:
String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象),
----------------python-----------------------
Number(数字)、String(字符串)、Tuple(元组)、List(列表)、Dictionary(字典)、Set(集合)。
1)list
list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
跟php,key为自增长的数组差不多
2)元组
tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2 )
内容不能改变
3)Set集合
student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
4)Dictionary(字典)
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}
跟php,key为非自增长数组差不多,括号不一样,一个是[],另一个是{}
迭代器:iter() 和 next()。
>>>list=[1,2,3,4] >>> it = iter(list) # 创建迭代器对象 >>> print (next(it)) # 输出迭代器的下一个元素 1 >>> print (next(it)) 2
生成器:使用了 yield 的函数被称为生成器
跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。
在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。
调用一个生成器函数,返回的是一个迭代器对象。
#!/usr/bin/python3 import sys def fibonacci(n): # 生成器函数 - 斐波那契 a, b, counter = 0, 1, 0 while True: if (counter > n): return yield a a, b = b, a + b counter += 1 f = fibonacci(10) # f 是一个迭代器,由生成器返回生成 while True: try: print (next(f), end=" ") except StopIteration: sys.exit()
执行以上程序,输出结果如下:
0 1 1 2 3 5 8 13 21 34 55
使用迭代器一个显而易见的好处就是:每次只从对象中读取一条数据,不会造成内存的过大开销。
/* 把文件一次加载到内存中,然后逐行打印。当文件很大时,这个方法的内存开销就很大了 */ for line in open("test.txt").readlines(): print line /* 这是最简单也是运行速度最快的写法,他并没显式的读取文件,而是利用迭代器每次读取下一行 */ for line in open("test.txt"): #use file iterators print line
线程:threading
多进程:multiprocessing
····················C语言·······················
1、是编绎型语言
2、数据结构:整型(int)、浮点型(float)、字符串(cha)、枚举(enum)、void类型、指针类型、数组类型、结构类型、共用体类型
C 中的变量定义
int i, j, k; char c, ch; float f, salary; double d;
数组
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
double是指双精度浮点值。
指针
指针指向内存中的一个地址
type *var-name;
例如:
int *ip; /* 一个整型的指针 */ double *dp; /* 一个 double 型的指针 */ float *fp; /* 一个浮点型的指针 */ char *ch; /* 一个字符型的指针 */
结构体
C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项
例:
struct Books { char title[50]; char author[50]; char subject[100]; int book_id; } book;
共用体:
共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。
例:
union Data { int i; float f; char str[20]; } data;
共用体占用的内存应足够存储共用体中最大的成员。在上面的实例中,Data 将占用 20 个字节的内存空间,
关键字 typedef
C 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的名字。下面的实例为单字节数字定义了一个术语 BYTE:
typedef unsigned char BYTE;
在这个类型定义之后,标识符 BYTE 可作为类型 unsigned char 的缩写,例如:
BYTE b1, b2;
可变参数
int main() { func(2, 2, 3); func(3, 2, 3, 4); }
省略号之前的那个参数是 int,代表了要传递的可变参数的总数。
内存管理:
C语言可以动态分配内存
来源:https://www.cnblogs.com/liming-php/p/10898382.html