python菜鸟基础笔记(1)
一、python--解释型(开发过程中没有了编译)、交互式(提示符后直接执行代码)、面向对象的脚本语言
1.特点--易于学习、易于维护、易于阅读、丰富的库、可移植、 可扩展(可以使用c语言完成部分代码,然后在py程序中调用)、GUI编程、 可嵌入(可以嵌入到C/C++程序) 2.缺点:运行速度慢 3.主要运用领域: 云计算(openstack)、web开发、科学计算与人工智能、系统操作和维护、金融、图形GUI 4.windows下 a、解释器运行 b、交互式运行 c、脚本编程运行安装环境配置 path 开发工具--emacs \pythonwin \sublime text IDE集成开发环境-- pycharm
二、语法基础
1.与C语言不同点- :代替了 { }
- print 代替了 printf
- 单行注释 #
- 多行注释 '''
- 断行语句 return \ (反斜杠断尾)
- false
- 输入函数 input('please input a string:')
- name=input('please input a string:') //给name赋值
- 输出函数 print(3,name) //输出两数之间以空格间隔
- print(3,name,sep=',') //输出两数之间以逗号间隔
- print(3,name,end=' ') //输出完成之后没有任何符号
- print(3,name,end=' '); print(3,name) //输出结果为 3 john3 john
- print默认输出是换行的
- 如果要实现不换行输出则需要在变量末尾加上end=" " print(x,end=" ")
- type不会认为子类是一种父类类型
- isintance会认为子类是一种父类类型
- py中单引号和双引号使用完全相同
- 用+连接,*重复字符串
- 字符串两种索引方式 从左到右以0开始,从右到左 以-1开始(遵循左闭右开原则,a[0:2] 只包括第一二个字符,第三个字符不包括)
- 字符串值不能改变
- 列表中元素的值可以改变
- 列表的截取可以接收三个参数
- 可以使用大括号{ }或者set()函数创建集合
- 其中创建一个空集合必须使用set()
- 列表是有序得对象集合,字典是无序的对象集合。两者之间的区别在于:字典中的元素是通过键来存取的,而不是通过偏移存取。
- 键必须使用不可变类型。在同一个字典中,键必须是唯一的。
三、深入学习语法
1.运算符--算术、比较(关系)、赋值、逻辑、位、成员、身份运算符- 算术运算符 ** 幂次方 // 取整除
- 赋值运算符 := 海象运算符,可在表达式内部为变量赋值
- 位运算符 &与(两个相应位都为1时结果为1,其余为0)
- | 或(两个相应位有一个为1结果为1)
- ^异或(两个对应位相异时结果为1)
- ~取反 << 左移动 >>右移动
- 逻辑运算符 and 布尔与(x and y 若x为false则返回false,否则返回y的计算值)
- or 布尔或(x or y 若x是true则返回x的值,否则返回y的值)
- not 布尔非(x not y若x为true则返回false,若x为false则返回true)
- 成员运算符 in(在指定序列中找到值则返回true)
- not in(在指定序列中没有找到值返回true)
- 身份运算符 is(判断两个标识符是否引用自一个对象,若引用的是同一个对象则返回true)
- is not(判断两个标识符是否引用自不同对象,若引用的不是同一个对象则返回true)
- id()函数用于获取对象内存地址
- is与==区别:is用于判断两个变量引用对象是否为同一个,==用于判断引用变量的值是否相等。
- 运算符的优先级 and>or/not is/is not>in/not in>not/and/or
- 在交互模式中,最后被输出的表达式结果被赋值给变量 _
- 常用的数学函数
- abs()/fabs() 返回绝对值
- pow(x,y) 返回x**y运算后的值
- round(x,n) 返回浮点数x的四舍五入的值,若给出n值,则代表舍入到小数点后的位数。
- sqrt()返回数字x 的平方根
- 随机数函数
- random() 随机生成下一个实数,在[0,1)范围内
- 三角函数
- 数学常量 pi e
- 原始字符串:所有的字符串都直接按照字面意思来使用。在第一个引号前加上字母R/r。
- % 格式字符串
- 三引号--允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
- f-string格式化字符以f开头,后面跟着字符串,字符串中的表达式用大括号{ }包起来,它会将变量或表达式计算后的值替换进去,例如:
w={“name”:""ruboob", "ur1":"www.ruboob.com" }
f"{w["name"]}:{w["ur1"]}"
- 输出:"ruboob:www.ruboob.com"
- 特点:用该方式不用再去判断使用%s还是%d
- 在python3中所有的字符串都是Unicode字符串,该字符串存储为16位unicode字符串,能够表示更多的字符集,使用语法是在字符串前面加上前缀u
- 字符串内建函数
- 序列是python中最基本的数据结构。序列中的每个元素都分配一个数字-它的位置,或索引,第一个索引是0,python有6个序列的内置类型,但最常见的是列表和元组。
- 序列都可以进行的操作有索引、切片、加、乘、检查成员。
- len([1,2,3]) #输出列表长度 3
- for x in [1,2,3]: print(x,end="") #迭代 1 2 3
- 列表支持截取与拼接、重复、删除、更新、嵌套等操作
- 列表函数:len( )\max( )\min( )\list( ) #将元组转换为列表
- 列表方法:list.append( ) #在列表末尾添加新的对象
- 元组支持连接、删除、索引、截取,但不可修改。
- 元组函数:len( )\max( )\min( )\tuple( ) #将可迭代系列转换为元组
- 元组不可变指的是元组所指向的内存中的内容不可变
- 字典可存储任意类型对象,是一种可变容器模型。
- 值可以取任何数据类型,键必须是不可变的(可以用数字、字符串、元组充当键,但不能用列表,列表是可变的)
- 访问字典里的值:
- 字典支持修改、删除等操作
- 字典函数:len( ) #j计算键的总数
- 字典方法:
- 遍历技巧:
在遍历时,关键字和对应的值可以使用items()方法同时解读出来 索引位置和对应的值可以使用enumerate()函数同时得到 同时遍历两个或更多的序列,可以使用zip()方法 反向遍历一个序列,首先指定这个序列,然后调用reversed()函数 要按序遍历一个序列,使用sorted()函数返回一个已排序的序列,并不修改原值7.集合SET--基本功能包括关系测试和消除重复元素,支持推导式 无序的不重复元素序列
- 具有去重功能(输出时自动去掉重复的元素)
- **注意集合的运算**
- 类似列表推导式,集合支持集合推导式:
- 集合的基本操作
添加元素 s.add(x) #将元素x添加到集合s中,若元素已存在,则不进行任何操作。 s.update(x) #也可以添加元素,且参数可以是列表、元组等,x可以有多个,用逗号分开。 移除元素 s.remove(x) #将x从集合s中移除,若元素不存在则会发生错误。 s.discard(x) #移除x,若元素不存在,不会发生错误。 s.pop() #随机删除集合中的一个元素,该方法会对集合进行无序排序,然后将这个无序排序集合的左边第一个元素进行删除。 计算个数 len(s) 清空集合 s.clear() 判断元素是否存在 x in s
- 集合内置方法
- 补充点
关键字end可以用于将结果输出到同一行,或者输出的末尾添加不同的字符 a , b = 0 , 1 while b < 1000 : print ( b , end = ' , ' ) a , b = b , a + b 输出结果: 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 , 89 , 144 , 233 , 377 , 610 , 987 ,、8.条件控制
- if-elif-else 每个条件后面使用冒号:
- python中没有switch-case语句
- python使用缩进方式来表示代码的层次结构(缩进可以使用任意数量的空格,但通常使用4个空格)
- 每个条件后面使用冒号:
- while
- for
- python中没有do..while
- 设置无限循环--通过设置条件表达式永远不为false来实现,使用ctrl+c 退出当前无限循环。
- while循环--while..else
- for .... in....可以遍历任何序列的项目,如一个列表或者一个字符串
- break语句用于跳出当前循环体,countinue跳出当前循环块中剩余语句,进行下一轮循环。
- 若明确的知道循环执行的次数或者要对一个容器进行迭代,推荐使用for...in..循环。
- 若要构造不知道具体循环次数的循环结构,推荐使用while循环。
languages=['C','C++','python'] for x in languages: print(x)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
