【笔记】Python 学习(一)

版权声明:欢迎评论交流,转载请注明原作者。 https://blog.csdn.net/m0_37809890/article/details/86325912

前言

参考资料

Python3教程
我服了,学了6个多小时,才发现这教程好垃圾,还是去看廖老师的。

版本

python版本:Python 3.7
平台:Windows 10

python特点

  1. 解释性:不编译
  2. 交互性:可以在提示符中输入
  3. 面向对象
  4. 可扩展:关键部分可以使用C++写

官方支持

下载:python下载
文档:Python documentation

环境搭建

  1. 下载安装python
  2. 环境变量配置,直到cmd内输入python可以打开交互式解释器
  3. sublime安装插件SublimeREPL
  4. 打开sublime->preferences->Key bindings,输入
	[
	 {
	     "keys": ["f5"],
	     "caption": "SublimeREPL: Python - RUN current file",
	     "command": "run_existing_window_command",
	     "args": {
	         "id": "repl_python_run",
	         "file": "config/Python/Main.sublime-menu"}
     },
     {
	     "keys": ["alt+f5"],
	     "caption": "SublimeREPL: Python - PDB current file",
	     "command": "run_existing_window_command",
	     "args": {
	         "id": "repl_python_pdb",
	         "file": "config/Python/Main.sublime-menu"}
 	},
 	{
	     "keys": ["f8"],
	     "caption": "SublimeREPL: Python",
	     "command": "run_existing_window_command",
	     "args": {
	         "id": "repl_python",
	         "file": "config/Python/Main.sublime-menu"}
 	}, 
]

现在,如果当前是一个py文件,ctrl+B是运行,F5是运行(可输入),alt+F5是调试,f8是打开交互式解释器。

基础语法

  1. hello,world print("Hello, World!)

  2. 标识符:开头是字母或下划线,由字母数字下划线组成,大小写敏感

  3. 保留字:['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

  4. 注释:单行注释#开头,多行注释’’‘三个引号围起来’’’,""“单双都行”""

  5. 缩进:py使用 缩进 来表示代码块,而不是大括号,同一个程序的缩进字符数应当相同

  6. 多行语句:反斜杠\ 加换行

  7. 数字类型(Number):int,bool,float,complex(单位复数是j)

  8. 等待输入:input(""),括号里面里面的信息会被输出

  9. 一行多语句:使用分号分隔

  10. 代码组,相同缩进的一组语句。一个缩进更少的首句加上一个代码组称为一个子句 clause

  11. print默认换行,可以修改print(“statement”,end=""),这样就不会换行。

  12. 导入:import 模块;静态导入:from 模块 import 成员(*)

  13. help(print),可以打印帮助信息,非常好用

  14. range([start,]stop[,step])是一种对象,里面是从start到stop,步长为step的数

  15. 条件语句if-elif-else,判断条件为序列时,非空为真,没有switch-case

    if condition_1:
       statement_block_1
    elif condition_2:
       statement_block_2
    else:
       statement_block_3
    
  16. while循环

    while condition:
    	statement_block
    

    while-else,条件不满足时执行一次else中的语句,break不会执行

    while condition:
    	statement_block
    else:
    	do_another_things
    
  17. for循环,可以遍历任何序列中的项目,带索引遍历:

    languages = ["C","C++","JAVA","PYTHON"]
    for i in range(len(languages)):
    	print(i,languages[i])
    
  18. pass,占位语句

变量

  1. 在py中,一切变量都是引用,所以变量没有类型,变量指向的值才有类型。
  2. 使用=给变量赋值,可以同时赋多个值var1,var2 = val1,val2
  3. 使用id(x)可以获得变量的地址
  4. 使用type(x)可以获得变量指向值的类型
    a,b,c,d = 5,4.4,True,4+3j
    print(type(a),type(b),type(c),type(d))	
    
  5. isinstance(var,type)会返回var是否是type类型或type的子类类型
  6. del 删除变量
  7. 交互模式中,_ 存储最后输出的表达式值,如果用户手动给这个变量赋值,就失去了这个效果。

基本数据类型

  1. 标准数据类型有 Number数字,String字符串,List列表,Tuple元组,Set集合,Dictionary字典
  2. 前三种不可变,后三种可变。不可变是指在变化变量的值时,在新的地址创建了新的值。
  3. 使用type()查看变量指向的值的类型。

Number

  1. 数值运算+,-,*,/,%,除取整//,乘方**
  2. 布尔值是True,False,首字母大写,参与运算时视为1和0

String

  1. 单双引号全部相同
  2. 三个引号指定多行字符串’’'或""",注意放在行首会被当成注释
  3. \n换行,字符串前加r让转义失效,r表示原始字符串r"p\np"
  4. 字符串按字面值级联,“a”"b"与"ab"完全等价
  5. 用+连接字符串,用*使字符串重复,“a”*2=“aa”
  6. 索引方式:左往右下标从0开始,右往左下标从-1开始
  7. 没有字符类型
  8. 字符串截取str[头下标:尾下标:步长],左闭右开
  9. 字符串不能改变
  10. 格式化字符串print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
    1. 格式化符号:%c,s,d,u,o,x,X,f,e,E,g,p,e表示科学记数法法,g表示f或e,p表示地址。
    2. 辅助指令:数字表宽度,-左对齐,+正数前写加号,空格正数前写空格,#写出8进制或16进制的表示(0o,0x),0填0,%%输出%,.数字:小数位数
str='Runoob'
 
print(str)                 # 输出字符串
print(str[0:-1])           # 输出第一个到倒数第二个的所有字符
print(str[0])              # 输出字符串第一个字符
print(str[2:5])            # 输出从第三个开始到第五个的字符
print(str[2:])             # 输出从第三个开始的后的所有字符
print(str * 2)             # 输出字符串两次
print(str + '你好')        # 连接字符串
 
print('------------------------------')
 
print('hello\nrunoob')      # 使用反斜杠(\)+n转义特殊字符
print(r'hello\nrunoob')     # 在字符串前面添加一个 r,表示原始字符串,不会发生转义

字符串成员函数

  1. 大小写变换
    capitalize() 第一个字符大写
    lower() 全部小写
    upper() 全部大写
    title() 所有单词以大写开始
    swapcase() 大小写互换
  2. 填充与清除函数
    center(width, fillchar)在宽度width中居中,填充fillchar
    ljust左对齐填充
    rjust右对齐填充
    rstrip,删除右端空格
    lstrip,删除左端空格
  3. 查找函数:
    count(str,beg=0,end=len(string)),统计str的出现次数;
    endswith(str,),检查是否以str结尾
    startswith(str,)
    find(str,),查找返回开始的索引值或-1
    rfind()
    replace(old,new,[,max])替换最多max次
  4. 信息函数:
    len(),长度
    min(),最小的字母
    max(),最大的字母
  5. 分析函数:isalnum(),isalpha(),isdigit(),islower(),isupper(),isspace(), istitle()
  6. 分割函数
    split(str=" ", num=string.count(str)),如果num有指定值,仅截取num+1个子字符串
    splitlines(bool),按换行截取并决定是否保留换行符
    partition(sep),分割为【头,分割符,尾】三元组
  7. join(seq),以本字符串为分隔符把seq中的字符串合并

列表List

  1. 列表以[]定义
  2. 列表中的元素可以不相同,可以嵌套列表
  3. 列表可以被截取,可以用+连接,可以用*重复
  4. 列表元素可以改变
  5. 删除列表元素 del lst[2]

相关函数

  1. len(list)
  2. max(list),min(list)
  3. list(seq)

成员函数(方法)

  1. 查找函数count,index,
  2. 单点修改函数append,extend(seq),insert(index,obj),pop有返回值,remove
  3. 多点修改sort(cmp=None,key=None,reverse=False),reverse,clear
  4. copy复制(不要使用等于号复制)

例子

list = ['abcd',786,2.23,'fall',70.2]
tinylist = [123,'runoob']

print(list)
print(list[0])
print(list[1:3])
print(list[2:])
print(list*2)
print(list+tinylist)
# 创建二维列表
list_2d = [[0 for col in range(5)] for row in range(4)] # 0表示值

元组tuple

  1. 元组写在小括号里,不能被修改,但可以存放可修改的元素
  2. 空元组tup0 = (),单元素元组tup1 = (1,),注意这个逗号
  3. 字符串类似于特殊的元组
  4. string,list,tuple都属于序列sequence
  5. 类似于C语言的指针数组

集合set

  1. 用大括号{}或者set()创建集合,构成集合的元素称为成员。空集合不能用{}创建,因为它用来创建字典
  2. 集合中重复的元素会被去掉
  3. value in set来测试元素是否在集合中
  4. 集合运算,-差集,&交集,|并集,^对称差
  5. 字符集合可以这样创建a = set(‘abracadabra’)

相关函数

  1. 添加 add(x)
    添加序列中的元素update(x)
  2. 移除 remove(x),不存在会报错
    discard(x),不存在不报错
  3. pop(),随机删除一个元素,推测可能是哈希表的最后一项
  4. 清空clear

字典dictionary

  1. 字典相当于映射,字典中的元素通过键存取
  2. 键必须为不可变类型,同一个字典中的键唯一
  3. 使用成员函数keys()和values()可以获得所有值
  4. 创建空字典直接用大括号
  5. 字典可以用构造函数dict创建,dic = dict(p=1,c=2,d=3)
  6. 下面这个例子中,使用dict作为标识符是非常不明智的行为,set同理。
dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2]     = "2 - 菜鸟工具"
 
tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}
 
 
print (dict['one'])       # 输出键为 'one' 的值
print (dict[2])           # 输出键为 2 的值
print (tinydict)          # 输出完整的字典
print (tinydict.keys())   # 输出所有键
print (tinydict.values()) # 输出所有值

相关函数

str(dict) 输出这个字典

类型转换

  1. int(x),转换整数,可以添加第二个参数:进制
  2. complex(x),转换复数,可以参加第二个参数表示虚数部分
  3. float,str,tuple,list,set,dict同理,无第二参数
  4. eval(str) 计算字符串中的有效python表达式,返回一个对象,如eval("prinrt(5)")
    repr(x),将对象转换为表达式字符串,与eval互为反操作
  5. fronzenset(s),转换为不可变集合
  6. chr(x),将整数转换为ascii码对应的字符
    ord(x),将字符转为整数值
  7. hex(x),将整数转为16进制字符串,oct(x)对应8进制,bin(x)对应2进制

运算

运算符

  1. 算术运算符:+,-,*,/,//,%,**

  2. 比较运算符:==,!=,>,<,>=,<=

  3. 赋值运算符:=,+=,-=,*=,/=,//=,**=,%=

  4. 位运算符:&,|,^,~,<<,>>

  5. 逻辑运算符:and,or,not

  6. 成员运算符:in,not in;返回True或False

  7. 身份运算符:is,not is;判断两个标识符是不是同一个地址,注意与==的区别。

  8. 没有++,–,原因可能是因为所有变量都是引用。
    另外,python会有一个小整数池的概念,在某个范围的的整数的地址是确定的。

    >>> a = 3000
    >>> b = 3000
    >>> a is b
    False
    >>> a = 5
    >>> b= 5
    >>> a is b
    True
    

运算函数

  1. abs(x)
  2. max(a,b,c),min(a,b,c)
  3. round(a) 舍入函数,可以加第二个参数表示舍入到小数位数。注意摄入规则不是“四舍五入”,而是“4舍6入,5看整数,偶舍奇入”

进阶语法

迭代器

  1. 迭代是访问数据结构元素的一种方式,迭代器是一个可以记住遍历位置的对象。
  2. 两个基本方法:iter()创建,next()返回当前元素并递增

模块简记

模块math

  1. ceil,floor
  2. exp,pow,log,log10
  3. modf,返回整数和小数部分
  4. sqrt
  5. 变量pi,e
  6. 三角函数,默认全为弧度
  7. degrees(),将角度转为弧度;radians(),将弧度转为角度

模块random

  1. choice(seq),从序列中随机挑选一个元素,如chocie(range(10))
  2. randrange([start,]stop[,step]),从这个range中随机挑选一个数
  3. random(),随机生成一个实数
  4. seed(),随机数种子,可以接收参数
  5. shuffle(lst),将序列元素随机排序
  6. uniform(x,y),生成一个x到y的实数

函数

_ _ d o c _ _ \_\_doc\_\_ 属性:函数内的块注释。

其它

python解释器

Python依赖解释器来执行语句和脚本,常见的解释器有:
CPython:C语言实现,官方版本,应用最广
IPython:CPython的增强版本,交互方面做的很好
JPython:专为Java平台设计的py解释器,把python代码编译成java字节码
PyPy:用Python重写的Python解释器,以块著称,速度可达CPython的20倍以上

猜你喜欢

转载自blog.csdn.net/m0_37809890/article/details/86325912