python基础(二)

变量


变量的另一种赋值方式

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

 

 

常量

变量名全部用大写

MYSQL_CONNECTION = '192.168.1.1'

 

pyc文件

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

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

 

数据类型

1 数字


int long float 复数

2 布尔值


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

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
>>>

  

方法举例

#!/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

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 要求你隔一个人打印一个人

 

#!/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) #删除第三个位置的数值

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

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

import copy

name4 = copy.depcopy(name)

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

 

len(name) #列表长度

常用操作练习

 

#!/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])

 


练习

#!/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)

位运算符

& 按位与

| 按位或

^ 按位异或

~ 按位取反

>> 左移运算

<< 右移运算

 

运算优先级

 

 

 

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

 

posted @ 2016-05-16 21:47  Jabe  阅读(490)  评论(0)    收藏  举报