python笔记整理

发布于 2020-03-18  58 次阅读


python下载及安装在python的官方网站

下载之后设置环境变量,然后下个pycharm。

一、字符串String

Python 中原生的文本数据类型叫做字符串,相应的构造器是str , 字符串可以表达任意文本,被单引号或者双引号包围,单双引号的区别在于解析。

>>> 'hello world!' 
 'hello Word!' 
 >>> "I've got an apostrophe" 
 "I've got an apostrophe" 
 >>> '您好' 
 '您好

字符串满足两个基本的序列条件, 长度和元素选择。
字符串的元素本身就是包含单一字符的字符串。字符是字母表中的任意单一字符,标点符 号,或者其它符号。不像许多其它编程语言那样,Python 没有单独的字符类型,任何文本 都是字符串,表示单一字符的字符串长度为 1

>>> city = 'Berkeley' 
>>> len(city)
8 
>>> city[3] 
'k'

python可通过‘‘+’’ 和“*”操作进行字符串组合,“+”代表拼接 “*” 代表重复

>>> 'hello' + 'Word' 
'hello world' 
>>> 'hello ' * 2 
'hello hello '

成员操作符in
字符串的行为不同于 Python 中其它序列类型。字符串抽象没有实现我们为元组和Ranges 描述的完整序列抽象。特别地,字符串上实现了成员性运算符in,但是与序列上的实现具有 完全不同的行为。它匹配子字符串而不是元素。

>>> 'here' in "Where's Waldo?" #in操作符 判定字符串'here'是否在后面的字符串中
True
>>>'Mississippi'.count('i')  #count方法计算字符'i' 在字符串中出现的次数
 4 
>>> 'Mississippi'.count('issi') 
1

多行文本。
字符串并不限制于单行文本,三个引号分隔的字符串可以跨越多行。我们已经在 文档字符串中使用了三个引号。

>>> """The Zen of Python   #"""***n内容分多行**"""
 claims, Readability counts. 
 Read more: import this.""" 
 'The Zen of Python\nclaims, "Readability counts."\nRead more: import this.'
#最后输出的字符串,在原本换行的地方自动加上了换行符号'\n'。

字符串可以从 Python 的任何对象通过以某个对象值作为参数调用str构造函数来创建,这 个字符串的特性对于从多种类型的对象中构造描述性字符串非常实用

>>> str(2) + ' is an element of ' + str(digits)
'2 is an element of (1, 8, 2, 8)'

最常用的三个方法

format()格式控制 方法与%;类似,但可以控制顺序

>>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
'hello world'
 
>>> "{0} {1}".format("hello", "world")  # 设置指定位置
'hello world'
 
>>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
'world hello world'

也可以向str.format传入对象:

class AssignValue(object):
    def __init__(self, value):
        self.value = value
my_value = AssignValue(6)
print('value 为: {0.value}'.format(my_value))  # "0" 是可选的

输出:
value 为: 6

下表展示了 str.format() 格式化数字的多种方法:

>>> print("{:.2f}".format(3.1415926));
3.14

split()字符串切割

语法:

str.split(str="", num=string.count(str)).
  • str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • num -- 分割次数。默认为 -1, 即分隔所有
str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print str.split( );       # 以空格为分隔符,包含 \n
print str.split(' ', 1 ); # 以空格为分隔符,分隔成两个

输出:
['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
['Line1-abcdef', '\nLine2-abc \nLine4-abcd']

strip()移除字符串首尾指定的字符,默认为空格

str = "00000003210Runoob01230000000"; 
print str.strip( '0' );  # 去除首尾字符 0
 
 
str2 = "   Runoob      ";   # 去除首尾空格
print str2.strip();

输出:
3210Runoob0123
Runoob

二、列表list

列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。 列表可以存放任何数据类型
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。

 list1 = ['physics', 'chemistry', 1997, 2000] 
 list2 = [1, 2, 3, 4, 5 ] 
 list3 = ["a", "b", "c", "d"]

可以通过索引访问列表的值

 #!/usr/bin/python 
 list1 = ['physics', 'chemistry', 1997, 2000] 
 list2 = [1, 2, 3, 4, 5, 6, 7 ] 
 print "list1[0]: ", list1[0] 
 print "list2[1:5]: ", list2[1:5] 

输出:
list1[0]: physics 2 list2[1:5]: [2, 3, 4, 5]

更新列表元素
append

list = []          ## 空列表
list.append('Google')   ## 使用 append() 添加元素
list.append('Runoob')
print list

输出:
['Google', 'Runoob']

也可以用extend()以列表为参数,在末尾追加列表

a_List = [123, 'xyz', 'zara', 'abc', 123];
b_List = [2009, 'manni'];
a_List.extend(b_List)
print "Extended List : ", a_List ;


输出:
Extended List :  [123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']
list1 = ['physics', 'chemistry', 1997, 2000]
 
print list1
del list1[2]
print "After deleting value at index 2 : "
print list1

输出:
['physics', 'chemistry', 1997, 2000]
After deleting value at index 2 :
['physics', 'chemistry', 2000]

有也可以用remove方法删除元素

列表的截取

>>>L = ['Google', 'Runoob', 'Taobao']
>>> L[2]
'Taobao'
>>> L[-2]
'Runoob'
>>> L[1:]
['Runoob', 'Taobao']
#L[2]	'Taobao'	读取列表中第三个元素
#L[-2]	'Runoob'	读取列表中倒数第二个元素
#L[1:]	['Runoob', 'Taobao']	从第二个元素开始截取列表

表推导式
表推导式使用扩展语法来创建列表,与生成器表达式的语法相似。

a = [(x,y) for x in range(10) for y in range(10) if x % 2 == 0 if y % 2 != 0]

三、Python­字典

1. 字典是另一种可变容器模型,且可存储任意类型对象。
2. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括 在花括号{}中 。

d = {key1 : value1, key2 : value2 }

3. 键必须是唯一的,但值则不必。
4. 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。;例如下面

 dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258','3':'hello'}

5.创建字典的五种方式

a = {'one':1,'two':2,'three':3} 
b = dict((('one',1),('two',2),('three',3))) 
c = dict(one = 1,two = 2,three = 3) 
d = dict(zip(['one','two','three'],[1,2,3])) 
e = {}
e['one'] = 1

可变数据类型

【1】数字、布尔、元组、Ranges、字符串都是不可变对象
【2】变化的只是绑定关系,而不存在这个值本身发生变化
【3】可变数据类型:允许在程序的运行过程中,改变数据类 型这个值的本身

字典方法

 items(...) 
 #将所有的字典项以列表方式返回,这些列表项中的每一项都来自于(键,值) 
D.items() ‐> a set‐like object providing a view on D's items 
''' print(help(dict.items)) 
a = {'one': 1, 'two': 2, 'four': {'five': 5}} 
b = a.items() 
print(b) # dict_items([('two', 2), ('four', {'five': 5}), ('one', 1)]) 
print(list(b)) # [('two', 2), ('four', {'five': 5}), ('one', 1)]

update() 函数把字典参数 dict2 的 key/value(键/值) 对更新到字典 dict1 里。

dict.update(dict2)
#!/usr/bin/python3
 
dict = {'Name': 'Runoob', 'Age': 7}
dict2 = {'Sex': 'female' }
 
dict.update(dict2)
print ("更新字典 dict : ", dict)


输出:
更新字典 dict :  {'Name': 'Runoob', 'Age': 7, 'Sex': 'female'}

setdefault() 方法
和 get()方法 类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值。

dict.setdefault(key, default=None)
#key -- 查找的键值。
#default -- 键不存在时,设置的默认键值。
#如果 key 在 字典中,返回对应的值。如果不在字典中,则插入 key 及设置的默认值 default,并返回 default ,default 默认值为 None。
dict = {'Name': 'Runoob', 'Age': 7}
print ("Age 键的值为 : %s" %  dict.setdefault('Age', None))
print ("Sex 键的值为 : %s" %  dict.setdefault('Sex', None))
print ("新字典为:", dict)

输出

Age 键的值为 : 7
Sex 键的值为 : None
新字典为: {'Age': 7, 'Name': 'Runoob', 'Sex': None}

fromkeys()
用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。

dict.fromkeys(seq[, value])
#seq -- 字典键值列表。
#value -- 可选参数, 设置键序列(seq)的值。
seq = ('Google', 'Runoob', 'Taobao')
 
dict = dict.fromkeys(seq)
print "新字典为 : %s" %  str(dict)
 
dict = dict.fromkeys(seq, 10)
print "新字典为 : %s" %  str(dict)


输出:
新字典为 : {'Google': None, 'Taobao': None, 'Runoob': None}
新字典为 : {'Google': 10, 'Taobao': 10, 'Runoob': 10}

迭代打印字典

for k in dict1: 
  print(k, dict1[k])

字典也拥有推导式语法,和列表推导式和生成器表达式类 似。求解字典推导式会产生新的字典对象。

 >>> {x: x*x for x in range(3,6)} 
 {3: 9, 4: 16, 5: 25}

学不动了,带带孩子吧。