python 笔记1
2016-09-16 00:00
162 查看
用户输入
模块
字符串拼接
数据类型
字符串
循环(while)
输入用户名密码,并且不显示密码,不显示密码将使用getpass模块完成,注:使用pycharm调试时无法显示预期效果;
获取脚本传递的参数(sys);
执行系统命令(os);
模块导入;
#一般将自己写的模块放到python2.7/dist-packages下面
例如:/usr/lib/python2.7/dist-packages
#在引用模块的时候默认第一找的是当前目录下面的模块
这两种方式的区别在于,使用+号相当于在内存中开辟了两段地址空间,而使用占位符则只开辟一段空间,所以在使用时尽量使用 占位符来拼接
int (整型)
long(长整型)
float(浮点型)
2. bool (布尔值)
3. 字符串
4. 列表
创建列表 name_list = ['aa','bb','cc','dd']
列表索引
切片
追加
插入
删除
列表长度
包含(查询列表中是否包含该元素)
列表合并(将一个新的列表,合并到旧列表中)
列表copy(深浅copy)
列表练习题(找出一个嵌套列表中所有9,改成99,并且删除列表中所有22)
5. 元组(不可改变的列表,只读列表)
6. 字典
字典格式如下:
增
删
将所有value取出来,所有的key取出来
查询一个key值是否在字典内
2. 分割
3. 指定分隔符合并起来
4. 字符串查找
5. 判断字符串是否为数字
6、循环(while)
循环100次,但50-60之间的数据不打印
模块
字符串拼接
数据类型
字符串
循环(while)
一、 用户输入
很多情况下会有用户输入用户名密码的场景,下面将用命令模拟一个;#!/usr/bin/env python #_*_coding:utf-8_*_ #only on python 2.x #name = raw_input("What is your name?") #python 3.x name = input("What is your name?") print("Hello " + name )
输入用户名密码,并且不显示密码,不显示密码将使用getpass模块完成,注:使用pycharm调试时无法显示预期效果;
#!/usr/bin/python #_*_coding:utf-8_*_ import getpass #python 2.x name = raw_input('what is your name?') password = getpass.getpass('password: ') print(name,password)
二、 模块
python 的强大之处在于有非常丰富的标准库和第三方模块,下面举两个比较小的例子获取脚本传递的参数(sys);
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys print(sys.argv) #输出 $ python test.py hello world ['test.py', 'hello', 'world'] #把执行脚本时传递的参数获取到了
执行系统命令(os);
#!/usr/bin/env python # -*- coding: utf-8 -*- import os os.system("df -h") #调用系统命令 #保存命令结果,适用于输出比较少的系统命令,这个读取是等命令执行完之后才返回执行结果的,时间比较长 cmd = os.popen('df -h').read() print cmd
模块导入;
#一般将自己写的模块放到python2.7/dist-packages下面
例如:/usr/lib/python2.7/dist-packages
#在引用模块的时候默认第一找的是当前目录下面的模块
三、 字符串拼接
在拼接字符串时,有两种写法,一种是使用‘+’拼接,另一种是%s 占位符拼接,代码实现如下:#!/usr/bin/python #-*-coding:utf-8-*- #+号拼接 name = 'yark' print 'you name is ' + name #占位符 print 'you name is %s'%name
这两种方式的区别在于,使用+号相当于在内存中开辟了两段地址空间,而使用占位符则只开辟一段空间,所以在使用时尽量使用 占位符来拼接
四、数据类型
1. 数字int (整型)
long(长整型)
float(浮点型)
2. bool (布尔值)
3. 字符串
4. 列表
创建列表 name_list = ['aa','bb','cc','dd']
列表索引
>>> name_list = ['aa','bb','cc','dd'] >>> print name_list[0],name_list[1],name_list[2] aa bb cc #查找某个值在列表中的下标位置 >>> name_list.index('aa') 0
切片
>>> name_list = ['aa','bb','cc','dd'] #打印前两个数 >>> print name_list[0:2] ['aa', 'bb'] #打印最后一个数 >>> print name_list[-1] dd #步长为2,每隔一个打印一个 >>> print name_list[::2] ['aa', 'cc'] >>> name_list ['aa', 'bb', 'cc', 'dd', 'ee'] #取1-4的值,1,2,3 >>> name_list[1:4] ['bb', 'cc', 'dd']
追加
>>> print name_list ['aa', 'bb', 'cc', 'dd'] #追加使用 list.append() >>> name_list.append('ee') >>> print name_list ['aa', 'bb', 'cc', 'dd', 'ee']
插入
>>> name_list ['aa', 'bb', 'cc', 'dd', 'ee'] #在下标为2的位置插入11 >>> name_list.inster(2,'11') >>> name_list ['aa', 'bb', '11', 'cc', 'dd', 'ee']
删除
>>> name_list ['aa', 'bb', '11', 'cc', 'dd', 'ee'] #删除内容为11,使用list.remove() >>> name_list.remove('11') >>> name_list ['aa', 'bb', 'cc', 'dd', 'ee'] >>> name_list ['aa', 'bb', 'cc', 'dd', 'ee'] #删除2-4中间的元素 >>> del name_list[2:4] >>> name_list ['aa', 'bb', 'ee'] >>> name_list ['aa', 'bb', 'cc', 'dd'] #pop 默认删除列表最后一个元素 >>> name_list.pop() 'dd' >>> name_list ['aa', 'bb', 'cc'] #使用pop删除下标为0的元素 >>> name_list.pop(0) 'aa' >>> name_list ['bb', 'cc']
列表长度
>>> len(name_list) 3 >>> name_list ['aa', 'bb', 'ee']
包含(查询列表中是否包含该元素)
#判断3是否包含在name中,并且出现的次数是多少 >>> name ['aa', 'bb', 'cc', 'dd', 'ee', 11, 22, 3] >>> if 3 in name: ... cou = name.count(3) ... print '3在name中,并且出现%s次'%cou ... 3在name中,并且出现1次
列表合并(将一个新的列表,合并到旧列表中)
name = ['aa','bb','a2','cc','dd','ee',11,22,33,66,99,'a2',100] name2 = ['zz','ll',11] print name name.extend(name2) print name #输出 ['aa', 'bb', 'a3', 'cc', 'dd', 'ee', 11, 22, 33, 66, 99, 'a3', 100] ['aa', 'bb', 'a3', 'cc', 'dd', 'ee', 11, 22, 33, 66, 99, 'a3', 100, 'zz', 'll', 11]
列表copy(深浅copy)
>>> name = ['a','b','c','d','e','f',[1,2,3],'gg'] >>> name2 = name.copy() '''浅拷贝--只拷贝列表的第一层,第二层的内存地址相同''' #将name列表中下标为1的元素改为'bb' >>> name[1]='bb' >>> print(name,name2) ['a', 'bb', 'c', 'd', 'e', 'f', [1, 2, 3], 'gg'] ['a', 'b', 'c', 'd', 'e', 'f',[1, 2, 3], 'gg'] #name2 中无修改 #将列表中的列表值修改后,copy的name2值也修改了 >>> name[6][0]=11 >>> print(name,name2) ['a', 'bb', 'c', 'd', 'e', 'f', [11, 2, 3], 'gg'] ['a', 'b', 'c', 'd', 'e', 'f', [11, 2, 3], 'gg'] '''深拷贝--两个列表完全独立,内存中地址都不一样''' >>> import copy >>> name3 = copy.deepcopy(name) >>> print(name3) ['a', 'bb', 'c', 'd', 'e', 'f', [11, 2, 3], 'gg'] >>> name[6][0] = 22 >>> print(name) ['a', 'bb', 'c', 'd', 'e', 'f', [22, 2, 3], 'gg'] >>> print(name3) ['a', 'bb', 'c', 'd', 'e', 'f', [11, 2, 3], 'gg'] >>>
列表练习题(找出一个嵌套列表中所有9,改成99,并且删除列表中所有22)
#!/usr/bin/python3 name = ['aaa', 'java', 'c', 'c++', [9, 5, 1, 298, 321, 22, 44,9], 9,235, 267, 235,9,[9,22,9]] for now in name: if type(now) == list: for i in range(now.count(9)): indexa = now.index(9) now[indexa] = 9999 for i in range(now.count(22)):now.remove(22) for i in range(name.count(9)): ele_index = name.index(9) name[ele_index] = 9999 for i in range(name.count(22)):name.remove(22) print(name)
5. 元组(不可改变的列表,只读列表)
#创建元组 a = (1,2,3,4,5)
6. 字典
字典格式如下:
dic = { 123456:{ 'name': "adb", 'age': 18 } }
增
>>> dic[123456]['qq'] = 130194532 >>> print(dic) {123456: {'qq': 130194532, 'age': 18, 'name': 'adb'}}
删
>>> del dic[123456]['qq'] >>> print(dic) {123456: {'age': 18, 'name': 'adb'}}
将所有value取出来,所有的key取出来
#取出所有value >>> print(dic.values()) dict_values([{'age': 18, 'name': 'adb'}]) #取出所有key >>> print(dic.keys()) dict_keys([123456])
查询一个key值是否在字典内
#python 3.X >>> print(dic) {123456: {'age': 18, 'name': 'adb'}} >>> 123456 in dic True #python 2.x >>>dic.has_key(123456)
五、字符串
1. 字符串去除空格或换行f = 'abc \n' f.strip('\n')
2. 分割
f = 'abc,jae,jjj' print(f.split(',')) 输出 ['abc', 'jae', 'jjj']
3. 指定分隔符合并起来
f = 'abc,jae,jjj' f2 = f.split(',') print('|'.join(f2)) #输出 abc|jae|jjj
4. 字符串查找
j = 'yark' print(j.find('a')) print(j.find('aa')) #返回值为字符串的下标,如果没有则为-1 #输出 -1 1
5. 判断字符串是否为数字
age = input('your age: ') if age.isdigit(): age = int(age) else: print('None') #输出 your age: df None
6、循环(while)
循环100次,但50-60之间的数据不打印
#!/usr/bin/python3 count = 0 while True: count += 1 if count > 50 and count < 60: continue print(count) if count == 100: print('exit') break
相关文章推荐
- python 学习笔记(自家用)
- python速查笔记(1) 类型与函数
- if __name__ (python学习笔记一,注意前面是双下划线)
- python(异常处理机制,学习笔记摘要)
- [Python]Django Step by Step 笔记(二)
- python基础学习笔记分享版(1)
- Python学习笔记(一)
- ArcGIS 9.2 笔记(5):Georocessing与Python
- 王纯业的Python学习笔记 下载
- Python速查笔记(2) 内置类型
- a byte of python初学笔记 001
- python学习笔记2
- [原创]Ruby学习笔记(4)-闰年、季节和月份天数的Ruby版和Python版
- a byte of python初学笔记 002
- python学习笔记3
- Python学习笔记:Python Language Features
- Boost.Python学习笔记
- Python学习笔记(二)
- [Python]Django Step by Step 笔记(一)
- [Python]Django Step by Step 笔记(三)