Python笔记

Python笔记

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 中,把 TrueFalse 定义成关键字了,但它们的值还是 10,它们可以和数字相加

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中同一列表元素类型可以不相同,它支持数字,字符串,甚至可以包含列表(嵌套)
    -ListString一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表
  • 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.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章