Python小白入门学习

1.变量命名规则:

1). 区分大小写

2). 首字符为字母或下划线

3). 其他可以为字母 数字 下划线

python变量不需要定义类型,解释器会自适应类型, 主要类型:int , float, string , bool

4). 赋值方法 str = '%s : %s:%d' % ('hello', 'world', 1234)

str = '%s: %s' % ("hello", "world")

5). type获取变量的类型;

6) 变量名前加上global将变量声明为全局变量, 函数体外默认global,函数体内默认innerl;

2. 输入

input()

3. 输出

(1). print("name:%s %s" % (name,name2))

(2)  结合format和print输出,print('{0} is {1}'.format(name,str)),或者不添加数字print('{} is {}'.format(name,str))或者指定输出print('{name} is {str}'.format(name="name",str="str"))

(3)  print('{0:_^11}'.format('hello')),^表示居中,<左对齐输出,>右对齐输出

(4)  print('{0:.3f}'.format(1.0/3))

4. 随机数

from random input randint

ranint(a,b)生成a,b之间的随机数(包括a,b)

5. while函数

while 结束条件:

        循环体;

6. for循环:(range取值范围[a,b))

        for i in range(a,b):

        循环体;

7. 字符串:

(1). 基本格式:

        用''或者“”效果一样,若要在''中使用'要加转置符号,或者用“’”, 反之亦如此;或者使用''' '''初始化字符串,字串内'和"随便使用,但要对称使用;

'He said, \"I\'m yours!\"'

(2)  .字符串拼接 print(str1 + str2)

(3).  字符串拼接数字 print(str + str(num)) 或者 print('str is %d', num) 或者 print('str is %d' % num)

(4).  print(f'str is {str}'), f意为规定输出格式;

(5). 字符串切割:切割后得到一个列表list

str.split()默认切割空白字符

str.split('.')指定.为分割符

(6). 字符串每个字符访问: for c in str: print(c) 或者 通过索引的方式访问str[-1];

(7). 字符串的单独字符不能手动修改;

(8). 切片访问, 截取字符串, 类似于list的方式, str[a,b], 不包括b索引的字符

(9). 连接字符, 在字符串的每俩字符间插入指定分隔符, ','.join(dtr)

(10)在语句的末尾添加\表示下一行继续,两行并一行;

8. 强制类型转换

int() float() str() bool()

bool(parameter)只有参数为0、None、空字符串、[]、{}、()为False,其他都为True 

9. 定义函数

def func(parameter):

     函数体;

     return ;

(1). 当想定义默认参数时,def func(parameter = 'hello'), 当调用函数时没有传入参数时,使用默认的参数; 若有多个参数, 则有默认值的参数应放在参数列末尾,否则会编译报错;

(2)  参数想要设置为任意数量参数时,如def func(*para), para是元组类型(数据原型不可改动, 有序)

(3)  参数以键值对(dict)形式传入,无序,def func(**para), 访问时for k in para: print(k:para[k]);

(4)  混合使用时,无默认参数放在最前面,有默认参数的放在第二, 元组类型放在第三, 字典类型放在最后,例如def printf(x, y=10, *arg, **args):

10. if语句

与C语言中的类似, if:   elif:  else:

11. 列表list

(1). 可以自定义初始化, 列表元素类型不需要相同

(2). 元素访问, 类似C语言数组下标的形式, 第一个元素list[0], 最后一个元素list[-1]

(3). 元素修改, list[0] = 新值

(4). 元素添加, list.append(parameter)

(5). 元素删除, del list[0]

(6). 元素随机访问, 引入包from random import choice,    随机访问: choice(list)

(7). 切片, list[a:b], 获取a到b之间的元素, 不包括b,包括a

当a没有值,默认0; 当b没有值, 截取到最后; 都没值, 全部list值;

(8). list连接,使用str作为分隔符,  str.join(list)

(9). 列表解析, 即在列表初始化的时候根据已有的列表生成新的列表,如:

list1 = [1, 10, 80],   list2 = [i / 2 for i in list2 if i % 2 == 0]

12. 读取文件

f = open('data')

str = f.read()

f.close()

注: read读取全部数据, readline读取一行, readlines读取所有行存储到list中,每一行为一个元素;

13. 写入文件

f = open('data', 'w')  //a

f.write('data')  //writelines写入指定list

f.close()

open默认为只写模式, 写入会出错, 设置w时,写入会覆盖原文件;设置a时,在文件尾添加文件;

14. break  continue

与C语言的用法完全一致

15. 异常处理

try:  ...   except:  ...

要执行的动作放在try后面, 发生异常时的错误放在except中

16. 字典

类似键值对,键唯一, 只能为简单的变量类型,不能为list

(1). 键值对无序;

(2). 通过dic[key]或者 dic.get(key)的方式访问

(3). 增加一个dic[key] = ...

(4). 删除del dic[key]

(5). for name in dic: print dic[name]

(6). 新建字典的话, 用dic = {}
17. 引用python库

(1). from math import pi as math_pi(as防止同名冲突)

(2). import ramdom  -----   print(dir(random))查看指定库的所有函数;

 random.randint(1,100)产生随机数, 包括1和100;

 random.random()产生0到1.0的随机浮点数,不包括1.0;
 random.uniform(a,b)生成a到b间的随机浮点数, a和b不必一定为整数;

 random.choice(序列)返回序列的任意一个元素,序列可以为字符串、list、元组;

 random.randrange(start,stop,step)生成start到stop之间间隔为step的随机一个元素, 默认start为0, 默认step为1, 需要指定stop;

random.sample(序列,k) 在序列中随机选k的元素,返回新的队列, 元组不能更改不能调用;

(3). urllib库 --- 网络连接库, import urllib.request, Request函数访问链接, urlopen获取返回值, read函数读取返回json;

       json     --- json文件处理库, json.loads()函数把json字符串转换成字典类型

       math库 ----import math, math.pi(圆周率), math.e(自然对数, 2.7), ceil向上取整, floor向下取整, pow指数运算, log对数函数, sqrt平方根, fabs绝对值函数,三角函数sin等

       time模块  ---import time, time.time()获取当前时间, time.sleep(sec)程序休眠sec秒的时间;

       pickle模块  ---impore pickle 用来规范式读写文件, py3需要使用open(file, 'wb'/‘rb’)打开文件, pickle.dump(data, f, True)写文件, pickle.load(f)读取文件

18. 类和对象

类似C++中的类和对象

1. 成员变量和函数称为类的属性;

2. 函数的默认参数为self, 指向此对象实体;

3. 创建对象时, test = Test(), 类似C++的类构造函数;

4. 子类可以继承父类的属性,class test2(Test):, test2类继承Test类的属性

5. 类的默认初始函数为__init__(), 可以自定义参数(第一个为self),创建对象时调用初始化函数;子类调用父类属性时直接用父类名调用, 如Test.__init__

19 . and or使用

类似于C语言的三元运算符true?a:b

用法: bool值 and a or b, 当bool值为true时,结果为a,否则为b; 但是当a为0或者""的0值时,这个结果不再成立;为了解决这个问题,可以把结果放到list里,这样写: (bool值 and [a] or [b])[0]

 20. 元组序列

增删查改的操作类似于list, 元素创建后不能再修改

函数返回值、print打印时都会用到元组, def getNum(n): return (n, n+1)

21. 正则表达式

(1). 引入库import re

(2). r字符, raw, 表示不对字符串进行转义, 表示把字符串中的转义符当转义符,不需要再加\;

(3). []匹配括号中任意的字符, [1234567890]或者\d匹配数字; [^a]表示取反, 匹配不是a的字符;

(5). '.'字符匹配除换行符外的任何字符;'\S'匹配不是空白符的任意字符;

(6). '.*'表示匹配任意次*(包括0)前面的字符, 会尽可能匹配最长的字符串,称为贪婪匹配; '.*?'称为懒惰匹配, 匹配到第一个符合条件的字符串;    '+'与'*'类似,不过匹配个数>=1; ?重复零次或一次;

{n,}表示重复次数大于等于n次; {n,m}表示重复n到m次;

(7). 匹配限定长度的字串,用{11}

(8). \w匹配字母、数字、下划线、汉字;  \s匹配任意空白符;  ^匹配开头; $匹配结尾;

上述对应的大写字母,分别表示取反的意思, 例如\S只匹配任意不是空白符的字符;

22. lambda语句, 有点像是C中的宏定义,lmbda在一定条件下可以替换def 函数的形式,参数列表没有符号,没有return语句,无法调用print这样的语句,可以理解为lambda创建了一个对象并返回给一个变量使用,如:sum  = lambda a,b,c : a+b+c,    sum(1,2,3)

23.map函数,zip函数, map函数有两个参数,参数1为处理函数,参数2为传入的参数,如list = map(func, list1),list1中的每一项会作为参数传入func,返回的list需要用list()强制转换下,其中func就可以用到上面的lambda函数了,如果把两个list进行数学运算,若对象不一样长,会截取最短的那个进行运算;  zip函数把两个list或者元组合并到一个中,也是截取其中最短的那个进行运算;

24.多线程,引入_thread模块,调用start_new_thread(func,args,kwargs), 其中args为元组参数,kwargs为可选字典参数, threading模块可以使用lock锁相关的操作,acquire和release分别表示申请和释放锁,func执行结束后进程会自动结束,需要保证程序在函数执行完之前没跑完,如程序尾加上一个while(1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值