python基础,

python基础,

python基础4,python基础

内容概要:

 

一、递归

递归就是函数本身调用自己,直到满足指定条件之后一层层退出函数

递归特性:

  • 必须有一个明确的结束条件
  • 每次进入更深一层递归时,问题规模相比上次递归都应有所减少
  • 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)

示列1:求10!的值。

 1 #方法一递归实现
 2 #/usr/bin/env python
 3 # -*- coding:utf-8 -*-
 4 #Author:W-D
 5 def sumn(n):
 6     if n<=2:#递归结束条件
 7         return n
 8     else:
 9         return (n * sumn(n-1))#调用函数本身
10 print(sumn(10))
11 结果:
12 3628800
13 
14 方法二:for循环实现
15 a=1
16 for i in range(1,11):
17     a=a*i
18 print(a)
19 结果:
20 3628800

示列二:使用递归的方式来生成斐波那契数列(斐波那契数列就是前面给两个数相加得到后面一个数,依次往后)

图片 1

 1 #/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 #Author:W-D
 4 def feola(n1,n2):
 5     n3=n1+n2
 6     if n1>500:#结束条件为数大于500
 7         return
 8     print("{}".format(n1))#打印值
 9     feola(n2,n3)#自身调用
10 feola(0,1)
11 结果:
12 0
13 1
14 1
15 2
16 3
17 5
18 8
19 13
20 21
21 34
22 55
23 89
24 144
25 233
26 377

View Code    

二、匿名函数lambda

 匿名函数,顾名思义就是不需要显示的定义函数名的函数,但是在语法上受限于一个表达式。

语法:

1 函数名=lambda 参数:代码

示列:

 1 #/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 #Author:W-D
 4 f=lambda x,y:x+y#匿名函数表达式
 5 print(f(3,2))#调用
 6 结果:
 7 5
 8 
 9 #换个姿势用普通方式定义
10 def my_add(x,y):
11     return x+y
12 print(my_add(3,2))#调用
13 结果:
14 5

 

内容概要: 一、递归
递归就是函数本身调用自己,直到满足指定条件之后一层层退出函数 递归特性:
必须有一个明确…

python基础(二),python基础

python基础一,python基础

关于内存分配问题

 1 ##字符串新定义则开辟新的一块内存空间
 2 >>> str1 = 'hoho'
 3 >>> str2 = str1
 4 >>> id(str1),id(str2) #查看内存对象地址,观察内存地址,即str2新开辟了内存空间
 5 (140297199501752, 140297199501752) #这里看到是一样的是由于python的一个内部机制导致的,如果字符串足够大的话就会是不一样的,不用纠结
 6 >>> str2 = 'heihei'
 7 >>> str1
 8 'hoho'
 9 >>> str2
10 'heihei'
11 >>> id(str1),id(str2) #看,内存地址是不是变了
12 (140297199501752, 140297214622552) 
13 
14 ##非字符器,如列表,元组,字典赋值定义后其实只是把新的变量名(可以理解为标签)指向同一内存地址,以字典为例,如下所示
15 >>> dic1 = {'name':'hoho'}
16 >>> dic2 = dic1
17 >>> id(dic1),id(dic2)
18 (140297199190088, 140297199190088)
19 >>> dic1 = {'name':'hoho'}
20 >>> dic2 = dic1
21 >>> id(dic1),id(dic2) #查看内存对象地址,发现是一样的,故修改dic2事实上dic1也跟着修改了
22 (140297199191752, 140297199191752)
23 >>> dic2['name'] = 'heihei'
24 >>> dic2
25 {'name': 'heihei'}
26 >>> dic1
27 {'name': 'heihei'}

 

列表,元组及字典的复制问题(浅复制与深复制 copy模块的使用)

1、列表及元组可使用切片实现浅复制,也可使用 copy模块使用浅复制(包括字典)

2、使用copy.deepcopy() 实例深复制

 1 >>> import copy
 2 >>> list1 = [1,2]
 3 >>> list2 = list1
 4 >>> list2[0] = 2 #list2改了,list1跟着变了
 5 >>> list1
 6 [2, 2]
 7 >>> list3 = list1[:] #浅复杂,利用数组切片做浅复制
 8 >>> list3 = copy.copy(list1)
 9 >>> id(list1),id(list2),id(list3) #这里就可看到地址空间是不一样的
10 (140297199250696, 140297199250696, 140297199247560)
11 >>> 
12 >>> list4 = [1,[2]] ##复杂结构必须用深复制
13 >>> list5 = list4[:]
14 >>> list5
15 [1, [2]]
16 >>> list5[1][0] = 6
17 >>> list4
18 [1, [6]]     #从这里可以看到内层的列表事实是没复制的,list4也跟着变了
19 >>> list6 = copy.deepcopy(list4) #这里使用深复制
20 >>> list6[1][0] = 8
21 >>> list6
22 [1, [8]]
23 >>> list4
24 [1, [6]] #这里就可以看出已经复制的了

 

常用内置函数

python内置函数是非常多的,记住常用的就行了,但会知道怎么查看有哪些内置函数,函数的帮助

正常情况下分3步走

整形

图片 21
>>> s,y = divmod(7,3) ## divmod
返回数据,值为(商,余数),可用于分页 2 >>> s,y 3 (2, 1) 4
>>> a = -2 5 >>> abs(-2) #abs取绝对值 6 2 7
>>> len(str(-2)) #取速度长度 8 2 View Code

浮点

图片 31
>>> a = 7.0 2 >>> divmod(a,3) 3 (2.0, 1.0) 4
>>> a = 7.235 5 >>> a.__round__(2) #四舍五入 6
7.24 7 >>> a.__trunc__() #取整 8 7 View Code

字符串

图片 4 1
>>> str1 = ‘this is a string’ 2 >>> ‘is’ in
str1 #成员判断 3 True 4 >>> str1[1:3] # 切片操作与索引 5
‘hi’ 6 >>> len(str1) #长度 7 16 8 >>>
str1.find(‘is’) #查找字符串,返回索引值 9 2 10 >>>
str1.find(‘is’,3,9) 11 5 12 >>> str1.find(‘iss’)
#没有找到返回-1 ,如是index则会报错 13 -1 14 >>>
str1.index(‘is’,3) 15 5 16 >>> str1.index(‘iss’) 17 Traceback
(most recent call last): 18 File “<stdin>”, line 1, in
<module> 19 ValueError: substring not found 20 >>> str1 =
‘ aaa’ 21 >>> str1.strip() 去空白,换行,回车 22 ‘aaa’ 23
>>> str1.lstrip() 24 ‘aaa’ 25 >>> str1.rstrip() 26 ‘
aaa’ 27 >>> str1 = ‘duiqi’   #对齐操作 28 >>>
str1.ljust(20) 29 ‘duiqi ‘ 30 >>> str1.ljust(20,’*’) 31
‘duiqi***************’ 32 >>>
str1.rjust(20,’*’) 33 ‘***************duiqi’ 34
>>> str1.center(20,’*’) 35
‘*******duiqi********’ 36 >>> str1 = ‘this is a
string’ 37 >>> str1.split()  ##分割操作 38 [‘this’, ‘is’,
‘a’, ‘string’] 39 >>> str1.splitlines() 40 [‘this is a
string’] 41 >>> list1 = [1,2,3] 42 >>>
‘->’.join([str(i) for i in list1]) #连接操作 43 ‘1->2->3’
44 >>> str1 45 ‘this is a string’ 46 >>>
str1.count(‘is’) #计数 47 2 48 >>>
str1.replace(‘is’,’os’) #替换 49 ‘thos os a string’ 50 >>>
str1.replace(‘is’,’os’,1) #替换,只替换1个 51 ‘thos is a string’ 52
53 str1.startswith(‘sub’) #以什么开头 54 str1.endswith(‘sub’)
#以什么结尾 55 str1.lower() #转为小写 56 str1.upper() #转为大写 View Code

列表与元组(元组不可修改)

图片 5 1
>>> lst1 = [‘a’] 2 >>> lst1.append(‘b’) #新增 3
>>> lst1 4 [‘a’, ‘b’] 5 >>> lst2 = [‘c’,’d’] 6
>>> lst1.extend(lst2) #扩展新增 7 >>> lst1 8 [‘a’,
‘b’, ‘c’, ‘d’] 9 >>> lst1.insert(0,’z’) #插入 10
>>> lst1 11 [‘z’, ‘a’, ‘b’, ‘c’, ‘d’] 12 >>>
lst1.pop() #去除末尾 13 ‘d’ 14 >>> lst1 15 [‘z’, ‘a’, ‘b’,
‘c’] 16 >>> lst1.remove(‘z’) #删除指定元素 17 >>>
lst1 18 [‘a’, ‘b’, ‘c’] 19 >>> lst1 = [‘a’, ‘b’, ‘c’, ‘d’]
20 >>> lst2 = lst1.copy() # 浅复制 python3才有 21
>>> lst2 = lst1.copy() 22 >>> lst2 23 [‘a’, ‘b’, ‘c’,
‘d’] 24 >>> lst2.clear() #清空列表 25 >>> lst2 26
[] 27 >>> del lst2 #删除列表 28 >>> lst1 29 [‘d’,
‘c’, ‘b’, ‘a’] 30 >>> lst1.sort() #排序 31 >>> lst1
32 [‘a’, ‘b’, ‘c’, ‘d’] 33 >>> lst1.append(‘a’) 34
>>> lst1.count(‘a’) #计数 35 2 36 >>> lst1 37 [‘a’,
‘b’, ‘c’, ‘d’, ‘a’] 38 >>> len(lst1) #长度 39 5 40
>>> lst1.index(‘a’) #索引 41 0 42 >>>
lst1.index(‘a’,1) #索引 43 4 View
Code

字典

图片 6 1
>>> dic1 = {‘key1’ : ‘a’,’key2′ : ‘b’} 2 >>>
dic1.get(‘key1’) #取字典值,没取到默认返回None,也可指定 3 ‘a’ 4
>>> dic1.get(‘key3’) 5 >>> dic1.items() 6
dict_items([(‘key2’, ‘b’), (‘key1’, ‘a’)]) #返回元组列表 7
>>> list(dic1.items()) 8 [(‘key2’, ‘b’), (‘key1’, ‘a’)] 9
>>> dic1.keys() #返回keys列表 10 dict_keys([‘key2’,
‘key1’]) 11 >>> dic1.values()       #返回值列表 12
dict_values([‘b’, ‘a’]) 13 >>> dic2 = dic1.copy() #浅复制
14 >>> dic2 15 {‘key2’: ‘b’, ‘key1’: ‘a’} 16 >>>
dic1[‘key3’] = ‘c’ #赋值(修改) 17 >>> dic1 18 {‘key2’: ‘b’,
‘key1’: ‘a’, ‘key3’: ‘c’} 19 >>>
dic1.pop(‘key1’) #删除指定的key 20 ‘a’ 21 >>> dic1 22
{‘key2’: ‘b’, ‘key3’: ‘c’} 23 >>> dic1.get(‘key1′,’a’)
#取值,没有返回’a’ 24 ‘a’ 25 >>> dic1 26 {‘key2’: ‘b’, ‘key3’:
‘c’} 27 >>> dic1.setdefault(‘key1′,’a’)
#设置默认(貌似没什么用) 28 ‘a’ 29 >>> dic1 30 {‘key2’: ‘b’,
‘key1’: ‘a’, ‘key3’: ‘c’} 31 >>> dic3 = {‘name’:’update’} 32
>>> dic1.update(dic3) #更新 33 >>> dic1  34
{‘key2’: ‘b’, ‘name’: ‘update’, ‘key1’: ‘a’, ‘key3’: ‘c’} 35
>>> del dic3 #删除 36 >>> dic1 37 {‘key2’: ‘b’,
‘name’: ‘update’, ‘key1’: ‘a’, ‘key3’: ‘c’} 38 >>>
len(dic1) #长度 39 4 View
Code

 

关于内存分配问题 1 #
#字符串新定义则开辟新的一块内存空间 2 str1 = ‘ hoho ‘ 3 str2 = str1 4
id(str1),id(str2) # 查看内存对…

python基础六,python基础

1.输出语句

 1 # 直接输出
 2 print('xxx')
 3 # 定义变量
 4 name = '马奋'
 5 age = 17
 6 # 格式化输出
 7 # 方式1
 8 print('name=', name, 'age = ', age) 
 9 # 方式2
10 print('name=%s,age=%s' % (name, age))  
11 # 方式3
12 print('name={name},age = {age}'.format(name=name, age=age))  

变量

变量的另一种赋值方式

user = 'ljb'
passwd = 'ljb123'
user,passwd = 'ljb','ljb123'

 

 

一、id

比较的数值,输出结果为True 或者 False

is比较的是内存地址

 

id 查看内存地址

 

内存地址相当与门牌号a = 1000

b = 1000

print(a == b)

# == 比较的是数值

#is 比较的是内存地址。

# print(a is b)

#查看内存地址id()

# print(id(a))

# print(id(b))

2.注释

 

1 # 单行注释
2 '''
3     多行注释
4     多行注释
5     多行注释
6 '''

 

常量

变量用大写

MYSQL_CONNECTION = '192.168.1.1'

 

二、小数据池

#数字: -5 ~ 256 节省空间。

 

#字符串: 1,如果含有特殊字符,不存在小数据池。

# 2,str(单个) * int int > 20 不存在小数据池。

 

#其他都不存在小数据池。

3.类型,类型转换

1 # 查看变量类型
2 print(type(1))
3 print(type(name))
4 print(type(True))
5 # 类型转换
6 print(str(123))  # 转换为字符串
7 print(int('123'))  # 转换为int

int  float  bool   str

pyc文件

导入模块后会在相应目录生成pyc文件,pyc文件为字节码文件
python调用模块过程
首先调用模块之后会生成pyc的字节码文件,然后解释器通过识别这个二进制的字节码文件来执行py程序

注:
py2 上直接在当前目录生成pyc文件
py3上 会创建__pycache__目录下面生产cpython-35.pyc 这样的类似文件

 

三、编码

存储和传输是0101,但是不可以使用Unicode编码进行传输

python3中的编码:python3中str在内存中的编码方式是Unicode。python3中的str不能直接存储和发送。

bytes的编码方式是非Unicode(UTF-8,GBK,GB2312….)

对于英文:str表现形式: s = ‘kuoiea’ 
内部编码为:Unicode
byte表现形式s = b’kuoiea’
内部编码形式为非unicode

对于中文:str表现形式: s = ‘中国’ 
内部编码为:Unicode
byte表现形式s = b’\xe4\xb8\xad\xe5\x9b\xbd’
内部编码形式为非unicode

encode编码:将str类型转换成byte类型
decode解码:将byte类型转换成str类型

# s = 'fdsagsadfsad方式打开家乐福;按时fdsafdsa'
#ip地址 端口等等
# s1 = input('你好')
# s1
# s = 'laonanhai'
# s1 = b'laonanhai'
# print(type(s))
# print(type(s1))


# s = 'alex'  # str
# s1 = s.encode('utf-8')  # bytes
# encode 编码 :str --- > bytes
# s = 'hello girl'
# s1 = s.encode('utf-8')
# print(s1)

# s = 'hello girl'
# s1 = s.encode('gbk')
# print(s1)
# s = '中国'
# s1 = s.encode('utf-8')
# print(s1)

# s = '中国'
# s1 = s.encode('gbk')
# print(s1)

 

一、id
比较的数值,输出结果为True 或者 False is比较的是内存地址 id 查看内存地址
内存地址相当与门牌号a = 1000 b…

4.用户输入

 1 # 用户输入,格式化输出
 2 name = input('请输入姓名:')
 3 age = int(input('请输入年龄:'))
 4 address = input('请输入地址:')
 5 info = '''用户:{name}
 6 姓名:{name}
 7 年龄:{age}
 8 地址:{address}
 9 '''.format(name=name, age=age, address=address)
10 info2 = '''用户:%s
11 姓名:%s
12 年龄:%s
13 地址:%s
14 ''' % (name, name, age, address)
15 print(info)
16 print(info2)

数据类型

5.格式化

name = 'xxx'
age = 111
salary = 8888.2222
print('name=%s,age=%d,sclary=%.2f' % (name, age, salary))
'''
    %.2f 取两位小数
    %d     整数
    %s     字符串(任何值)
'''

1 数字

int long float 复数

6.if….else

age = int(input("age:"))
if age == 18:
    print('age:18')
elif age == 16:
    print('age:16')
else:
    print("age:%s" % (age))

2 布尔值

True or False
1 or 0
判断1和0 代表True和False
>>> 1 == True
True
>>> 0 == False
True

7.for…

# 如果 for没有被break终止,执行完for之后会执行else
for i in range(10):
    print(i)
else:
    print('...')  

3 字符串

字符串常用功能:
• 移除空白

• 分割

• 长度

• 索引

• 切片

username = input(‘inout you username’)

username.strip() #移除空白

name = ‘ljb,kkk,lll’

name.split(‘,’)  #拆分

name[2:4] #切分,取第3个到第4个字符

name.center(40,’-‘) #长度为40,居中显示name的字符,两边用-填补

name.isdigit #判断输入的字符书否为数字

name.isalnum() #判断是否有特殊字符

name.startwith(‘dsfdsa’) #判断字符串是否以dsfdsa 开头

name.endwith(‘sdfaf’) #判断字符串是否以sdfaf 结尾

name.find(‘l’) #查找字符串中的l字符,打印字符的位置,不存在显示-1

>>> name = 'langjianbin'
>>> name.find('m')
-1
>>> name.find('j')
4
>>>

  

方法举例

图片 7#!/usr/bin/env
python # -*- codind:utf-8 -*- #Author:ljb #user =
input(‘username:’) #if user.strip() == ‘ljb’: #去空白 #
print(‘welcome’) #name = ‘ljb,langjb,langjianbin’ #name1 =
name.split(‘,’) #以逗号分割为列表 #print(name1)
#print(‘|’.join(name1)) #以|来合并为一个字符串 name = ‘lang jian bin’
print(name.center(40,’-‘)) #居中 print( ” in name)
#判断字符串中是否有空格 print(name.capitalize()) #字符串的首字符大写
msg = “Hello ,my name is {Name},age is {Age}”
print(msg.format(Name=’ljb’,Age=33)) #format格式输出 msg2 =
‘lang{0}Age{1}’ print(msg2.format(‘jianbin’,22)) #format另一种方式
#age = input(‘Your age:’) #if age.isdigit(): #判断是否为数字 # age =
int(age) # print(age) #else: # print(‘invalid data’) name4 = ‘adsfdg’
name5 = ‘AAADDSFDA’ print(name4.isalnum()) #判断是否有特殊字符#!@等
print(name4.endswith(‘dg’)) print(name4.startswith(‘sadSF’))
print(name4.upper()) print(name5.lower()) View Code

 

+  在字符串中连接

下面的例子表示三个字符串连接起来,但是计算机将这三个字符串分配了三个内存空间,这样很占用资源,因此在写py程序中注意尽量少用这样的拼接字符串

>>> print ('hello' + '\n' + 'how are you')
hello
how are you

8.while….

i = 0
# 当while被打断,不会执行else代码快
while True:
    i = i + 1
    print(i)
    if i == 1000:
        break
else:
    print("end")
# 当while条件不满住时,执行else
while i < 0:
    i = i - 1
else:
    print('while条件终止')

  

1.输出语句 1 # 直接输出 2 print ( ‘
xxx ‘ ) 3 # 定义变量 4 name = ‘ 马奋 ‘ 5 age = 17 6 # 格式化输出 7 #
方式1 8 print ( ‘ name= ‘ , name, ‘ ag…

4 列表

列表的常用操作

• 索引

• 切片

• 追加

• 删除

• 长度

• 切片

• 循环

• 包含

name = [‘ljbv’,’dsfg’,’222′]

插入
name.insert(2,’kkk’)  #第3个位置插入kkk

追加
name.append(‘aaa’) #在列表末尾追加aaa

删除
name.remove(‘dsfg’) #删除列表中未dsfg的元素

del删除内存中的数据
del name[4:6]       #批量删除(不仅仅试用于列表,其他的字典
元组等均可以使用del)

练习
1 写一个列表,列表里包含本组所有成员

2 往中间插入两个临组成员名字

3 取出第3-8的人列表

4 删除第7个人

5 把刚才加入的两个人一次性删除

6 把组长的名字加上组长备注

7 要求你隔一个人打印一个人

 

图片 8#!/usr/bin/env
python # -*- codind:utf-8 -*- #Author:ljb ”’ 1
写一个列表,列表里包含本组所有成员 2 往中间插入两个临组成员名字 3
取出第3-8的人列表 4 删除第7个人 5 把刚才加入的两个人一次性删除 6
把组长的名字加上组长备注 7 要求你隔一个人打印一个人 ”’ group_list =
[‘ljb0′,’ljb1′,’ljb2′,’ljb3′,’ljb4′,’ljb5′,’ljb6′,’ljb7’]
print(‘本组成员列表:’) print(group_list )
print(‘插入两个临组成员名字:’) group_list.insert(4,’zhangsan’)
#中间插入两个临组成员 group_list.insert(5,’lisi’)
#中间插入两个临组成员 print(group_list) print(‘取出第3-8的人列表:’)
print(group_list[2:8]) #打印第3-8个人列表 print(‘删除第7个人’)
group_list.remove(group_list[6]) #删除第7个人 print(group_list)
#一次性删除刚才加入的两个人 print(‘把刚才加入的两个人一次性删除’) del
group_list[4:6] print(group_list) #组长名字添加备注
print(‘把组长的名字加上组长备注’) group_list.remove(‘ljb0′)
group_list.insert(0,’ljb0_zuzhang’) group_list[0] = ‘ljb0_zuzhang’
print(group_list) #间隔打印人员 print(‘要求你隔一个人打印一个人’)
print(group_list[0::2]) #首尾步长 print(group_list[::2]) for i in
group_list[0::2]: print(i) View
Code

 

判断列表中是否存在某元素

name = [1,2,3,9,8,65,4,9,10]

#print ('9 in name')
if 9 in name:
    print ('9 in name')

if 9 in name:
    num = name.count(9) #计数9出现的个数
    print ('9 num is ',num)


name.index(9) # 寻找第一个位置的9

 

 

name.extend(name2) #扩展进新的列表中

name.reverse() #反向显示列表

name.sort() #只能在2中排序,3中不支持此种排序方式

name.pop(2) #删除2的数值

name.copy() #只能拷贝列表的一层,如果修改列表中的列表时,两个列表都变化

如果需要完全copy的话需要到倒入copy模块

import copy

name4 = copy.depcopy(name)

列表赋值 给第二个变量时相当于做了软链接

 

len(name) #列表长度

常用操作练习

 

图片 9#!/usr/bin/env
python # -*- codind:utf-8 -*- #Author:ljb import copy list1 =
[‘ljb’,1,2,34,9,[88,44,88,99],9,34,’lang’,’zhangsan’] print(list1)
list2 = list1.copy() #拷贝list1 list3 = copy.deepcopy(list2)
#深层次拷贝,修改嵌套中的列表时不受影响 list2[0] = ‘LJB’
#修改list2中一个值,list1中不会变 list2[5][0] = 888888
#修改嵌套列表中一个值,list1和list2中都会变化(因为拷贝的是一个共享的内存段)
print (list2) print (list3) for i in range(list1.count(9)):
first_9=list1.index(9) list1[first_9] = 9999999
#列表中找到9并修改为999999 print(list1) for i in
range(list1.count(34)): first_34 = list1.index(34)
#list1.remove(list1[first_34]) list1.pop(first_34)
#列表中找到34然后删除 print(list1) print(list2) list2.reverse()
#反向显示 #list3 = sorted(list2) #不能sorted 在py3中 #print(list3)
print(list2) list1.extend(list2) #list2扩展添加到list后面 print(list1)
View Code

 

 

 

5元组

 

r = (1,2,3,4,5) #只读列表
r.count()   #统计元组中元素的个数
r.index()   #元素的索引位置

 

 

6字典

字典的常用操作
• 索引

• 新增

• 删除

• 键、值、键值对

• 循环

• 长度

init_db.has_key #py2.x
key in init_db #py3.x

在字典的循环中尽量少使用这这这样的循环,此种方式占用资源比较大

for k.v in dict1:
    print(k,v)
#如果需要用户循环的话采用
for k in dict1:
    print (k,dict1[k])

 

练习

图片 10#!/usr/bin/env
python # -*- codind:utf-8 -*- #Author:ljb #字典定义 init_db = {
1:{ ‘name’:’ljb’, ‘age’:22, ‘addr’:’HeBei’ }, 2:{ ‘name’:’zhangsan’,
‘age’:33, ‘addr’:’Beijing’ } } print(init_db) print(init_db[1])
#打印key为1的value init_db[1][‘name’] = ‘langjb’ #修改一个value
name的值为langjb init_db[1][‘qq’] = ‘12345678’ #添加一个字段
init_db[1].pop(‘addr’) #删除addr的字段 v = init_db.get(1)
#获取key为1的值 print(v) dic2 = { ‘name’:’12dsfasdga’, 1:{
‘name’:’langjainbin’ } } init_db.update(dic2)
#将dic2中的值更新到init_db中 print(init_db) print(init_db.items())
print(init_db.values()) print(init_db.keys()) #init_db.has_key(1)
#only 2.X #1 in init_db # 3.X equal init_db.has_key(1)
print(init_db.setdefault(‘3′,’langjianbin’))
#取一个key值,如果不存在就设置为’langjianbin’,如果存在则输出
print(init_db) print(init_db.fromkeys([1,2,34,4,5,6]),’ddddd’)
#fromkeys(seq[,values])函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。
#for key in init_db: # print(key,init_db[key]) View Code

 

 

 

运算

算术运算符 (+,-,*,/,%,**,// 取整数返回商的整数部署)

比较运算符(==,!=,<>,>,<,>=,<=)

赋值运算符(=,+=,-=,*=,/=,%=,**=,//=)

逻辑运算符(and,or,not)

成员运算符( in,not in )

身份运算符(is,is not)

位运算符

& 按位与

| 按位或

^ 按位异或

~ 按位取反

>> 左移运算

<< 右移运算

 

运算优先级

 图片 11

 

 

while True循环

练习

循环100次自动退出循环,在第50-60次之间不打印

#!/usr/bin/env python
# -*- codind:utf-8 -*-
#Author:ljb
counter = 0
while True:
    counter += 1
    if counter >50 and counter <60:
        continue
    print('循环次数',counter)
    if counter == 100:
        print('循环100次结束,跳出循环')
        break

 

变量
变量的另一种赋值方式 user = ‘ ljb ‘ passwd = ‘ ljb123 ‘ user,passwd = ‘
ljb ‘ , ‘ ljb123 ‘ 常量 变量用大写 MYSQL_CONNEC…

相关文章