python基础操作之上部
1.用户输入
   name = input("what is your name:")
password = input("your password is:")
print("hello",name)
print("hello" + name) # +是拼接字符串
输入密码时,如果想要不可见,需要利用getpass 模块中的getpass 方法:
import getpass
password = getpass.getpass("请输入密码:")
2.模块简介
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
print (sys.argv) #打印这个脚本的文件名
print(sys.path) #打印python环境变量列表
import os
os.system("df -h") #执行系统命令
3.字符串格式化输出
name = “bushaoxun”
print (“I am %s” % name)
# 输出: I am bushaoxun
4.字符串详解
1.字符串连接的三种方式
+ 操作符连接, join 方法, %是替换连接 推荐用第三种方法
2. 字符串操作常用功能
移除空白
print("\n bushaoxun".lstrip()) # 去除左边的空格和回车
print("\n bushaoxun \n".strip()) # 去除两边的空格和回车
切片
print("bushaoxun".find("sh")) # 结果: 2 找出sh 在字符串中的位置
print("bushaoxun"[2:5]) # 结果: sha 从第二位开始截取到第五位,第五位不截取, 此处也叫做切片
分割
print("bu shao xun".split()) #结果: ['bu', 'shao', 'xun'] 字符串按照空格分割成列表 此处叫做分割
print("1+2\n3+4".splitlines()) # 结果:['1+2', '3+4'] 字符串按照换行符分割成列表
print("bu shao xun".split("u")) # 结果:['b', ' shao x', 'n'] 字符串按照 “u” 分割成列表
字符串长度
print(len("bushaoxun")) # 结果为 9. 打印字符串长度
索引
print("bushaoxun"[0]) # 结果为 s 根据索引打印字符串
name.index("u") # 返回u在字符串中位置,用下标表示
其他常用
print("123".isalpha()) # 结果:False, 判断输入的时候是否为一个字符串
print("ab123".isalnum()) #结果:True, 判断输入的时候是否是字母或数字
print("123.3".isdigit()) #结果:False, 判断输入的是否是整数
print("bushaoxun".replace("u","U")) # 结果: bUshaoxUn,替换字符串
print("shaoxun".isidentifier()) # 结果:True ,如果输入的是函数或类,则返回False。 判断字符串是否是一个合法的标识符
print("Ab".islower()) # 结果:False,判断字符串是否为小写字母
print("AB".isupper()) # 结果:True, 判断字符串是否为大写字母
print("AB".lower()) # 结果: ab, 把大写字母转换为小些字母
print("ab".upper()) #结果:AB,把小些字母转换为大写字母
5.列表详解
1.创建列表
family = ["bushaoxun","guolijuan","buruoxuan"] 或者 family = list(["bushaoxun","guolijuan","buruoxuan"]) # 创建一个名字为family的列表
print(family) # 打印列表
2. 列表的基本操作
索引
print(family[0]) # 结果为:bushaoxun 根据下标取出列表的值 ,下标就是索引。
family.index("xun") # 定位元素在列表中的位置,返回值用下标表示
切片
print(family[1]) # 结果为:guolijuan 根据下标取值,从后往前为 -1 -2
family[0:2] # 结果为:['bushaoxun', 'guolijuan']
追加
family.append("buhuaiqing") #在列表最后追加一个元素,只能在最后追加
family.extend("ss") # 在列表最后单个单个字符的追加
family.insert(1,"xun") # 在列表一号下标前添加元素
删除
family.remove("bushaoxun") # 从列表中删除指定元素
family.pop(1) # 删除指定索引的元素
del family[1] #删除对应下标的元素
长度
len(family) # 显示列表的长度
排序
family.sort() # 排序列表
统计
family.count("xun") # 统计列表中指定元素的个数
浅copy 与深 copy
family.copy() # 只copy 第一层列表的数据, 如果下面仍旧有列表,第二层只是一个指针。
family.deepcopy() # 整个都copy,在内存中重新生成一份
扩展
b = [1,2,3]
family.extend(b) # 结果:['bushaoxun', 'guolijuan', 'buruoxuan', 1, 2, 3]
6. 元组详解
一旦被创建,便不能再修改,所以又叫只读列表
family = ("bushaoxun","guolijuan","buruoxuan")
只有2个方法,一个是count,一个index
7. 字典详解
字典一种key - value 的数据类型,语法格式如下:
family = { "name":"bushaoxun","age":32,"sex":"boy"} # 字典时无序的,key 必须是唯一的
增加
family["height"]=176 # 值为:{'sex': 'boy', 'name': 'bushaoxun', 'age': 32, 'height': 176} 注意显示顺序是无序的
修改
family["name"]="zhanshi" #结果为:{'sex': 'boy', 'name': 'zhanshi', 'age': 32, 'height': 176}
删除
family.pop("name") # 标准删除,删除name
del family["age"] # 另一种删除方法
family.popitem() # 随机删除
查找
"name" in family # 结果显示为 Ture, 标准用法
family.get("name") # 获取值
family["name"] # 同上,但是如果只不存在,就会报错,上面的不会报错
循环
for i in family:print(i,family[i]) # 正常的方法
for k, v in family.items():print(k,v) # 会先把字典转换成列表,数据大时不要用
其他用法
family.values()# 显示字典所有的值
family.keys() # 显示字典所有的key
8.集合详解
集合是一个无序的,不重复的数据组合,它的主要作用如下:
- 去重,把一个列表变成集合,就自动去重了
- 关系测试,测试两组数据之前的交集、差集、并集等关系
去重
num = set([1,3,5,7,9,9,5]) # 结果为:{1, 3, 5, 9, 7} ,创建一个数值集合,并且去重
name = set("bushaoxun") #结果为:{'s', 'u', 'h', 'o', 'b', 'n', 'x', 'a'},创建单个字符串集合,并且去重
关系测试
a = num | name # 并集
b = num & name #交集
c = num - name # 项目在num中,不在name 中。 差集
d = num ^ name # 对称差集,项目在num 和 name 中,但不会同时出现在两者中
基本操作
name.add("z") # 添加一项
name.update(["y","m","n"]) # 在 name 中添加多项
name.remove("m") # 删除其中一项
len(name) # 查看集合的长度
num.issubset(name) # num 中的元素是否都在name中
num.issuperset(name) # name 中的元素是否都在num中
num.union(name) # 等同于 num | name,返回一个新的集合
num.intersection(name) # 等同于 num & name, 返回一个新的集合,取出 num 和 name 的公共元素
num.difference(name) # 等同于 num - name , 返回一个新的集合,包含 num 中有但是 name 中没有的元素
num.symmetric_difference(name) # 等同于 s ^ t ,返回一个新的集合,包含 num 和 name 中不重复的元素
num.copy # 集合的一个浅复制
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号