一、pycharm快捷键
作用 | 快捷键 |
---|---|
1.删除整行 | shfit + delete |
2.复制当前行 | ctrl + d |
3.注释 | ctrl + / |
4.在任意位置换行,不影响当前行 | shift + enter |
5.代码向右递进 | tab |
6.代码向左递进 | shift + tab |
二、转移字符
作用 | 字符 |
---|---|
\t | 一个制表符 |
\n | 换行 |
\ | 一个\ |
\r | 一个回车 |
三、注释
1.单行注释
单行注释使用的是#
2.多行注释
单行注释可以是3个单引号或者3个双引号
例如:
'''
print(123123)
print(123123)
print(123123)
'''
"""
print(123123)
print(123123)
print(123123)
"""
四、变量
1.定义
num = 10
打印值
print('num的值是:',num)
2.格式化输出
2.1 format
{}是占位符,format中的变量将会传递给对应的{}. format在传递变量的时候,不需要关系传递变量的类型
num = 10
print("num的值是:{}".format(num))
2.2 f
num = 10
print(f"num的值是:{num}")
五、数据类型
1.基本数据类型
类型 | 备注 |
---|---|
整型(int) | 数字 1 100 300 |
浮点型(float) | 小数 1.1 3.14 |
布尔型(bool) | 真和假 True False |
字符串(string) | hello world |
2.查看数据类型
使用type函数查看数据类型
a = 10
b = 3.14
c = "hello"
d = True
print(type(a))
print(type(b))
print(type(c))
print(type(d))
3.浮点型的表示形式
3.1 十进制形式
3.14
3.2 科学计数法形式
3.14 乘以10的2次方
num = 3.14e2
print(num)
3.3 浮点型的边界
import sys
print(sys.float_info)
4.布尔类型
0 = Falase, 1 = Treu
在python中 0被视为假, 非0被视为真。 非0值还包括 字符串,浮点型等
if "哈哈":
print("hello")
5.数据类型转换
5.1 常见转换函数
作用 | 函数 |
---|---|
int() | 转换成int |
float() | 转换成float |
str() | 转换成str |
bool() | 转换成bool |
六、运算符
1.算数运算符
符号 | 描述 |
---|---|
+ - * / | 加减乘除 |
% | 取余数。python解释取模公式的定义: a%b=a-a//b*b |
// | 取商的整数部分 |
** | 次方 |
例子:
print(20 % 3)
print(20 // 3)
print(2**3)
2.比较运算符号
运算符号 | 描述 |
---|---|
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
is | 判断两个变量引用对象是否为同一个 |
is not | 判断两个变量引用对象是否不同 |
3.逻辑运算符
运算符号 | 描述 |
---|---|
and | 逻辑与 |
or | 逻辑或 |
not | 取反 |
4.赋值运算
运算符号 | 描述 |
---|---|
= | 直接赋值 |
+= | 加等 |
-+ | 减等 |
*= | 乘等 |
/= | 除等 |
%= | 取模等 |
//= | 取商等于 |
5.三元运算
在python中没有像其他语言的三元表达式。它是通过if else实现的。
例如: 如果a > b max = a 否则 max = b
a = 30
b = 20
max = a if a > b else b
print(max)
七、if判断
1.单分支
1.1 条件成立执行
num = int(input("请输入年龄:"))
if num >= 18:
print('你已经是成年人了')
1.2 条件不成立执行
if not 条件表达式:
执行语句
2.双分支
num = int(input("请输入年龄:"))
if num >= 18:
print('你已经是成年人了')
else:
print('你是未成年人')
3.多分支
num = int(input("请输入年龄:"))
if num >= 10 and num < 18:
print('你一位少年了')
elif num >= 18 and num <= 25:
print('你是一位青年才俊')
elif num > 25 and num < 40:
print('你是一位中年男人')
else:
print('未知')
八、for循环
1.循环字符串
for i in "hello":
print(i)
2.循环range()
2.1 参数介绍
range(开始,结束,步长)
2.2 默认开始值
range()函数默认从0开始生成。结束是不包含结束数字本身的
for i in range(5):
print(i)
结果如下:
0
1
2
3
4
2.3 指定开始值
指定从2开始
for i in range(2,6):
print(i)
结果如下:从2开始 到5结束,不包含6本身
2
3
4
5
2.3 指定步长
for i in range(1,10,3):
print(i)
结果如下:
1
4
7
3.for…else
在python中是有else语句的。作用就是循环完毕之后,执行else的语句
for i in range(10):
print(i)
else:
print('循环完毕')
结果如下:
0
1
2
3
4
5
6
7
8
9
循环完毕
break影响else
for i in range(10):
if i== 6:
break
print(i)
else:
print('循环完毕')
如果break中途打断for 那么,else不会执行.
4.break和continue
beak和continue的使用方法和其它语言使用方法一致.
九、while循环
1.条件成立循环
i = 1
while i < 10:
print(i)
i += 1
2.无限循环
while True:
print('hello')
十、列表
1.基础操作
1.1 定义
语法:
列表名称 = ['值1','值2','值3','值4']
>>> a = ['zhangsan','lisi','wangwu','xiaohong']
>>> print (a)
['zhangsan', 'lisi', 'wangwu', 'xiaohong']
1.2.查看指定元素
查看指定位置内容,列表是通过索引来定位列表内容的。索引是从0 开始的。
['zhangsan', 'lisi', 'wangwu', 'xiaohong']
0 1 2 3
>>>print (a)
['zhangsan', 'lisi', 'wangwu', 'xiaohong']
>>>print (a[0])
'zhangsan'
>>>print (a[1])
'lisi'
1.3.获取元素的下标index()
>>>print (a)
['zhangsan', 'lisi', 'wangwu', 'xiaohong']
>>> print (a.index('lisi'))
1
我们不知道数据的位置,但是想一次性取出数据?
>>> print (a)
['zhangsan', 'lisi', 'wangwu', 'xiaohong']
>>> print (a[a.index('wangwu')])
'wangwu'
1.4 查看列表的长度len()
查看长度使用len()函数
list = ['zhangsan','lisi','wangwu','xiaohong']
print(len(list))
1.5 查看元素存不存在in
list = ['zhangsan','lisi','wangwu','xiaohong']
print("zhang" in list)
print("lisi" in list)
结果如下:
False
True
1.6 统计元素出现次数count
list = [1,3,2,3,1,2,5,3,3]
print(list.count(1))
1.7 查找最大元素max()
list = [10,100,20,50]
print(max(list))
1.8 查找最小元素()
list = [10,100,20,50]
print(min(list))
2.列表的修改
2.1.插入元素insert()
向指定位置添加元素
>>> a
['zhangsan', 'lisi', 'wangwu', 'xiaohong']
>>> a.insert(1,'xiaolan')
>>> a
['zhangsan', 'xiaolan', 'lisi', 'wangwu', 'xiaohong']
2.2.修改指定元素
>>> a
[1, 2, 3]
>>> a[1] = 'xiaohong'
>>> a
[1, 'xiaohong', 3]
>>>
2.3.删除元素remove() pop() del()
1.删除列表指定的元素(根据元素内容删除) remove()
>>> a.remove('zhangsan')
>>> print (a)
['xiaolan', 'lisi', 'wangwu', 'xiaohong']
#解释:remove('这里是要删除元素的内容') 如果列表中有多个相同的元素,默认只删除第一个。
2.根据下标删除 pop() ,如果不填写下标 默认删除最后一个元素
>>> a
['zhangsan', 'lisi', 'wangwu']
>>> a.pop(0)
'zhangsan'
>>> a
['lisi', 'wangwu']
3.根据下标删除 del
>>> a
['lisi', 'wangwu']
>>> del a[0]
>>> a
['wangwu']
2.4.追加元素append()
>>> a
['lisi', 'lisi', 'wangwu', 'xiaohong', 'xiaolan', 'zhangsan']
>>> a.append('1')
>>> a.append('a')
>>> a.append('c')
>>> a
['lisi', 'lisi', 'wangwu', 'xiaohong', 'xiaolan', 'zhangsan', '1', 'a', 'c']
2.5 清空列表clear()
list = ['zhangsan','lisi','wangwu','xiaohong']
list.clear()
print(list)
3.列表的排序
3.1.reverse 倒序排序
>>> a = ['zhangsan', 'xiaolan', 'xiaohong', 'wangwu', 'lisi', 'lisi']
>>> a.reverse()
>>> a
['lisi', 'lisi', 'wangwu', 'xiaohong', 'xiaolan', 'zhangsan']
3.2.sort 正常排序
>>> a = [10,2,3,6,8,12,56,7]
>>> a.sort()
>>> a
[2, 3, 6, 7, 8, 10, 12, 56]
4.列表的切片
1.列表的扩展
例子1:
>>> a = [1, 2, 3]
>>> b = ['xiaohong','xiaozhang','xiaoming']
>>> print(a)
[1, 2, 3]
>>> print(b)
['xiaohong', 'xiaozhang', 'xiaoming']
>>> a.extend(b)
>>> print a
[1, 2, 3, 'xiaohong', 'xiaozhang', 'xiaoming']
例子2;我们也可以用 "+" 来实现形同的效果
>>> print a
[1, 2, 3]
>>> print b
['xiaohong', 'xiaozhang', 'xiaoming']
>>> a + b
[1, 2, 3, 'xiaohong', 'xiaozhang', 'xiaoming']
1.列表的切片
列表的切片是顾头不顾尾
例子1:截取中间位置的数据
>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[3:7]
[3, 4, 5, 6]
截取下标3-7的内容,但是不包含下标为7的内容
还可以这样写
print (a[a.index(3):a.index(7)])
[3, 4, 5, 6]
例子2:截取到末尾
>>> a[7:]
[7, 8, 9]
在列表长度未知的情况下,我们还可以用负数来截取。
>>> a[-3:]
[7, 8, 9]
用负数来截取的时候需要注意,不要写成[-2:-4]。写法也要遵循从左到右的顺序。
>>> a[-4:-2]
[6, 7]
例子3:从0位置开始截取
>>> a[:5]
[0, 1, 2, 3, 4]
5.列表的复制
1.浅复制
>>> a = [1,2,3,4]
>>> b = a.copy()
现在a b 列表内容一样
>>> print (a)
[1, 2, 3, 4]
>>> print (b)
[1, 2, 3, 4]
现在修改a列表的值,不会影响b列表的内容
>>> a[1] = 'zhangsan'
>>> print (a)
[1, 'zhangsan', 3, 4]
>>> print (b)
[1, 2, 3, 4]
但是当a的列表中有子列表的时候就不同了。
>>> print (a)
[1, 2, ['a', 'b', 'c'], 3, 4]
>>> b = a.copy()
>>> print (b)
[1, 2, ['a', 'b', 'c'], 3, 4]
修改列表a中子列表中的值,b的子列表中的值也跟着变化。所有说a.copy()只复制了第一层。所以我们称为浅复制。
>>> a[2][0] = 'xiaoming'
>>> print (a)
[1, 2, ['xiaoming', 'b', 'c'], 3, 4]
>>> print (b)
[1, 2, ['xiaoming', 'b', 'c'], 3, 4]
2.深复制
import copy
a = [1,2,['a','b','c'],3,4]
b = copy.deepcopy(a)
>>> print (a)
[1, 2, ['a', 'b', 'c'], 3, 4]
>>> print (b)
[1, 2, ['a', 'b', 'c'], 3, 4]
修改a列表中的子列表的值
a[2][0] = 'xiaoming'
>>> print (a)
[1, 2, ['xiaoming', 'b', 'c'], 3, 4]
>>> print (b)
[1, 2, ['a', 'b', 'c'], 3, 4]
我们发现b列表的值没有变。
6.列表推导式
列表推导式就是列表的快速生成方法,但是复杂的列表不建议使用列表生成式
#!/usr/bin/python3
list = [i for i in range(10)]
print(list)
[root@node5 data]# ./test.py
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
7.列表面试题
使用一行代码生成[1,3,5,7,9]
方法1:
list = list(range(1,10,2))
print(list)
方法2:
list = [i for i in range(10) if(i % 2 == 1)]
print(list)
可以简写为:
list = [i for i in range(10) if(i % 2)]