#Python笔记
文章目录
- 1.缩进报错
- 2.多行语句
- 3.数据类型
- 4.数字类型(Number)
- 5.字符串类型(String)
- 6.isinstance和type的区别
- 7.Python2中没有布尔类型,它用数字 `0` 表示 `False`,用 `1` 表示 `True`。到 Python3 中,把 `True` 和 `False` 定义成`关键字`了,但它们的值还是 `1` 和 `0`,它们可以和数字相加
- 8.字符串截取
- 9.List(列表)
- 10.Tuple(元组)
- 11.Set(集合)
- 12.Dictionary(字典)
- 13.Python数据类型转换
- 14.`python`不支持`switch` 语句
- 15. `python` 复合布尔表达式计算采用短路规则
- 16.`Python`中没有`do...while`循环
- 17.`while … else`
- 18.`for … else`
- 19.`continue` 语句是一个删除的效果,他的存在是为了删除满足循环条件下的某些不需要的成分
- 20.Python可以用 `+` 来连接字符串,但是不能混合不同类型的数据类型,例如字符串和整数
- 21.遍历字典可以使用`items()`
- IPython magic命令
1.缩进报错
IndentationError: unindent does not match any outer indentation level
2.多行语句
- 使用
\
进行多语句连接
例:
total = item_one + \
item_two + \
item_three
- 在
[]
,{}
,()
语句中换行不需要\
进行连接
例:
total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']
3.数据类型
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Sets(集合)
- Dictionary(字典)
不可变数据(四个):Number(数字)、String(字符串)、Tuple(元组)、Sets(集合);
可变数据(两个):List(列表)、Dictionary(字典)。
4.数字类型(Number)
python中数字有四种类型:整数、布尔型、浮点数和复数。
- int (整型),如:1,为长整型(没有Python2 中的Long)
- float(浮点型),如:1 + 2j、1.1 + 2.2j
- bool(布尔型),值只能为True或者False,分别对应int中的1和0
- complex(复数),复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
5.字符串类型(String)
- Python中单引号和双引号使用完全相同(注:必须成对出现)
正确示范
print('Hello Python!')
print("Hello Python!")
错误示范
print('Hello Python!")
- 三引号可以指定多行字符串(’’'和"""效果相同,但需成对使用)
例:
str = '''
Hello
World
!
'''
print(str)
输出结果
Hello
World
!
- 转义字符
\
例:
print('Hello \n World \n !')
输出结果
Hello
World
!
- 使用
r
取消转义
例:
print(r'Hello \n World \n !')
输出结果
Hello \n World \n !
- 按字面意义级联字符串
例:
print("this " "is " "string")
输出结果:
this is string
6.isinstance和type的区别
- type()不会认为自子类是一种
- isinstance()会认为子类是父类类型
7.Python2中没有布尔类型,它用数字 0
表示 False
,用 1
表示 True
。到 Python3 中,把 True
和 False
定义成关键字
了,但它们的值还是 1
和 0
,它们可以和数字相加
8.字符串截取
变量[头下标:尾下标]
str = 'Hello Python'
print(str[0:2]) # 输出第一到第二个字符
print(str[:2]) # 输出第一到第二个字符
print(str[0]) # 输出第一个字符
print(str[3:6]) # 输出第4到第5个字符
print(str[4:]) # 输出第四到最后的所有字符
print(str[5:-2]) # 输出第六到倒数第三个字符
print(str[-3:-1]) # 输出倒数第三个字符到倒数第二个字符
print(str * 2) # 输出两遍str字符串
print(str + ' Test')# 输出str和Test连接之后的字符串
输出结果:
He
He
H
lo
o Python
Pyth
ho
Hello PythonHello Python
Hello Python Test
9.List(列表)
- 列表是写在
[]
中用,
分隔开的元素列表 - Python中同一列表元素类型可以不相同,它支持数字,字符串,甚至可以包含列表(嵌套)
-List
和String
一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表
- List中的元素是可以改变的
10.Tuple(元组)
- 元组是写在
()
中用,
分隔开的元素列表 - 元组与列表相似,但元组中的元素不能修改
- 元组中的元素类型可以不同
- 元组与字符串类似,可以被索引且下标索引从0开始,-1 为从末尾开始的位置。也可以进行截取
-tuple的元素不可改变,但它可以包含可变的对象,比如list列表
当定义的元组中只有一个元素时,需要在元素后加
,
例:
tup = (10,)
11.Set(集合)
- 集合是一个无需不重复的序列
- 基本功能是进行成员关系测试和删除重复元素
- set可以进行集合运算
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
例:
set_1 = {'a', 'b','c','a'}
set_2 = set('abcabcdef')
print(set_1)
print(set_2)
if 'a' in set_1:
print('a 在 set_1集合中')
else:
print('a 不在 set_1集合中')
print(set_2- set_1) # set_2和set_1的差集
print(set_1 | set_2) # set_1和set_2的并集
print(set_1 & set_2) # set_1和set_2的交集
print(set_1 ^ set_2) # set_1和set_2中不同时存在的元素
输出结果:
{'b', 'c', 'a'}
{'f', 'a', 'b', 'e', 'c', 'd'}
a 在 set_1集合中
{'f', 'd', 'e'}
{'f', 'a', 'b', 'e', 'c', 'd'}
{'b', 'c', 'a'}
{'e', 'f', 'd'}
12.Dictionary(字典)
- 字典是无序对象的集合
- 字典是一种映射类型,字典用
{}
标识,他是一个无序的key:value
(键值对)集合 - 列表和字典的区别在于:字典通过元素的键来存取,而不是通过偏移存取
key
(键)必须使用不可变类型
- 同一个字典中,
key
(键)必须是唯一
的
13.Python数据类型转换
函数 | 描述 |
---|---|
int(x [,base]) | 将x转换为一个整数 |
float(x) | 将x转换到一个浮点数 |
complex(real [,imag]) | 创建一个复数 |
str(x) | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为一个元组 |
list(s) | 将序列 s 转换为一个列表 |
set(s) | 转换为可变集合 |
dict(d) | 创建一个字典。d 必须是一个序列 (key,value)元组。 |
frozenset(s) | 转换为不可变集合 |
chr(x) | 将一个整数转换为一个字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
14.python
不支持switch
语句
所以多个条件判断,只能用 elif
来实现,如果判断需要多个条件需同时判断时,可以使用 or
(或),表示两个条件有一个成立时判断条件成功;使用 and
(与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
15. python
复合布尔表达式计算采用短路规则
如果通过前面的部分已经计算出整个表达式的值,则后面的部分不再计算。下列代码会正常执行
a=0
b=1
if ( a > 0 ) and ( b / a > 2 ):
print "yes"
else :
print "no"
下列代码会报错
a=0
b=1
if ( a > 0 ) or ( b / a > 2 ):
print "yes"
else :
print "no"
16.Python
中没有do...while
循环
17.while … else
在while
循环条件为 false
时执行 else
语句块
18.for … else
for
中的语句和普通的没有区别,else
中的语句会在循环正常执行完(即 for
不是通过 break
跳出而中断的)的情况下执行,while … else
也是一样。
19.continue
语句是一个删除的效果,他的存在是为了删除满足循环条件下的某些不需要的成分
20.Python可以用 +
来连接字符串,但是不能混合不同类型的数据类型,例如字符串和整数
例:
str = 'hello ' + 1
str
输出结果:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-7-f17b8b8b2679> in <module>()
----> 1 str = 'hello ' + 1
2 str
TypeError: must be str, not int
21.遍历字典可以使用items()
例:
ages = {
"Peter": 10,
"Isabel": 11,
"Anna": 9,
"Thomas": 10,
"Bob": 10,
"Joseph": 11,
"Maria": 12,
"Gabriel": 10,
}
for name, age in ages.items():
print(name, age)
输出结果:
Peter 10
Isabel 11
Anna 9
Thomas 10
Bob 10
Joseph 11
Maria 12
Gabriel 10
IPython magic命令
ipython解释器提供了很多以百分号%开头的magic命令,这些命令很像linux系统下的命令行命令(事实上有些是一样的)。
例:
%lsmagic
输出结果:
Available line magics:
%alias %alias_magic %autocall %automagic %autosave %bookmark %cd %clear %cls %colors %config %connect_info %copy %ddir %debug %dhist %dirs %doctest_mode %echo %ed %edit %env %gui %hist %history %killbgscripts %ldir %less %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %macro %magic %matplotlib %mkdir %more %notebook %page %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %popd %pprint %precision %profile %prun %psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall %rehashx %reload_ext %ren %rep %rerun %reset %reset_selective %rmdir %run %save %sc %set_env %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode
Available cell magics:
%%! %%HTML %%SVG %%bash %%capture %%cmd %%debug %%file %%html %%javascript %%js %%latex %%markdown %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile
Automagic is ON, % prefix IS NOT needed for line magics.