Python基础(二)
一、格式化输出
------------ info of 张三 ----------- Name : 张三 Age : 22 job : IT ------------- end -----------------
1、第一种写法
name = input("Name:") age = input("Age:") job = input("Job:") msg = ''' ------------ info of %s --------------- # %s代表一个占位符 Name : %s #代表name Age : %s #代表age Job : %s #代表job ------------- end ----------------- ''' % (name,name,age,job) # % 号把前面的字符串与后面变量关联起来 print(msg)
注:%s字符串的占位 %d 数字的占位 %f 浮点数 字符串 %(数据)
2、第二种写法
name = input("Name:") age = input("Age:") job = input("Job:") msg = ''' ------------ msg of %s ----------- Name : {name} Age : {age} Job : {job} ------------- end ----------------- ''' print(msg)
注:必须是python3.5以上版本才可以使用
int(str) #字符串转换成int str(int) #int转换成字符串
二、基本运算符
1、算数运算
2、比较运算
3、逻辑运算
and 并且, 左右两端同时为真, 结果才能是真.
or 或者, 左右两端有一个是真, 结果就是真
not 非, 非真即假, 非假即真
优先级: () > not > and > or
4、赋值运算
a=10,b=20
5、成员运算
in 是否在xxx里面
content = input("请输入你的评论") if "张三" in content or '李四' in content: print('你输入的内容不合法') else: print("评论成功")
not in 是否不在xxx里面
三、基本数据类型
1、int ==> 整数
在python3中所有的整数都是int类型,但在python2中如果数据量比较大,会使用long类型,在python3中不存在long类型
2、str ==> 字符串
字符串是不可变的对象, 所以任何操作对原字符串是不会有任何影响的
在python中,凡是用引号引起来的数据都是字符串 单引号,双引号,三引号引起来没有任何区别 name = '张三' name = "张三" name = '''张三'''
①切片、索引
索引:索引就是下标,下标从0开始
s = "hello" # 从索引0开始取完字符串中每一个字符 print(s[0]) print(s[1]) print(s[2]) print(s[3]) print(s[4])
切片:
字符串[start:end] 从start到end拿到数据 ,end取不到
字符串[start:end:step] 从start到end拿数据,每step个拿出来一个
step: + 左到右 - 右到左
s = "Java,Python,Php,C++" print(s[2:11:2]) #从第二个开始取,取到11,每两个取一个 print(s[:4]) # Java 从开始切 print(s[4:]) # 从4切到结束 print(s[:]) # 从头切到尾
②字符串的操作
upper() 转化成大写. 在忽略大小写的时候
###用户名密码登录应用场景### verify_code = "Axbn" uv_code = input(f"请输入验证码{verify_code}:") if verify_code.upper() == uv_code.upper(): # 忽略大小写 print("验证码正确") else: print("验证码错误")
strip() 默认去掉左右两端的空白
###用户输入密码应用场景### uname = input("请输入用户名:").strip() # 用户输入的内容一定要过滤掉左右两边的空白 upwd = input("请输入密码:").strip() if uname == "alex" and upwd == "123": print("登录成功") else: print("登录失败")
replace() 字符串的替换
msg = input("请输入你的信息:") if "黄赌毒" in msg: msg = msg.replace("黄赌毒", "***") print(msg)
split() 字符串切割, 结果是列表
s = "Hello Word Im superman" res = s.split() # 默认用空白切割 print(res)
startswith() 判断是否以xxx开头
s = "alex 特别喜欢他的特斯拉" print(s.startswith("alex")) # 判断是否以alex开头 print(s.endswith("特斯拉")) # 判断是否以特斯拉结尾
find() 查找字符串中xxx字符的位置. 如果找不到返回-1
s = "Hello Word" print(s.find("z")) # 返回索引, 如果没有, 返回-1
len() 内置函数,字符串长度
s = "Hello Word" print(len(s)) # len叫内置函数.和print一样
3、bool==>判断真假: True, False
bool=>int int(bool) True是1, False是0 str => bool bool(str) 空字符串串是False, 不空是True bool => str str(bool) 把bool值转换成相应的"值"
4、list==> 存储大量数据:用[ ]表示
和字符串差不多. 也具有索引和切片
①增
append() 追加,添加在列表的末尾
l = ["张三", "李四"] l.append("刘能") print(l) #列表是可以发生改变的
insert() 插入,在xxxx位置插入一个元素
l = ["张三", "李四"] l.insert(1, "王五") #在索引1前面,也就是李四前面插入"王五" print(l)
extend() 迭代新增,合并列表
l = ["张三", "李四"] s1 = ["王五","赵六"] l.extend(s1) print(l)
②删
pop() 删除,指定索引删除,默认删除最后一个
l = ["张三", "李四","王五","赵六"] l.pop() print(l)
remove() 删除某个指定元素
del list[3]
clear() 清空列表
count() 计数
③改:使用索引去修改
l = ["abc", "李四","王五","赵六"] #把ABC变大写 l[0] = l[0].upper() print(l)
④查:直接用索引查找,使用for循环可以遍历列表
lst = ["abc", "李四","王五","赵六"] for n in lst: print(n)
例题:让用户输入一个加法运算: 3+8+4+6+9 想办法完成数学运算
s = input("请输入一个加法运算:") lst = s.split("+") print(lst) sum = 0 # 开始循环 for item in lst: sum += int(item) print(sum)
5、tuple=> 元组:不可变列表,只读
适用场景:放一些不进行修改的数据,元组用()表示,空元组必须用tuple()来创建
注: 如果元组只有一个元素. 必须在末尾添加一个逗号
6、dict==> 字典:在存储数据的时候必须使用key:value的形式进行存储
注:key不可以重复,value没有要求,并且要求key必须可哈希-> 不可变(int, str, tuple, bool, float)
①增
直接用新key添加
dic = {} # 空字典 dict() dic["1"] = "张三" dic["2"] = "李四" dic["1"] = "王五" # key 不可以重复. 会把数据覆盖掉
setdefault(key, value) 如果key存在, 不新增. 不存在, 新增. 最后都查询
dic = {} # 空字典 dict() dic["1"] = "张三" dic["2"] = "李四" dic.setdefault("1","赵六") dic.setdefault("3","赵六") print(dic)
②删
1. pop(key) #指定key删除
2. popitem() #删除最后一个.
3. del dic[key] #指定key删除
4. clear() #清空字典
③改
dic[老key] = 新value
④查
get(key) #使用key获取value
dic[key] #查询, 如果key不存在. 会报错
循环:
for k in dic:
k
dic[k]
for k, v in dic.items():
print(k)
print(v)
7、set==> 集合:保存大量数据. 不可以重复. 其实就是不保存value的dict
类似dict存储,只放key,可哈希,不可变,不重复,无序 {}可以表示set集合
set() 创建空集合,帮助我们去除重复
①添加:add()
s = set() s.add("张三")
②删除:remove()
s = set() s.add("张三") s.add("李四") s.remove("张三")
③列表去重
lst = ["张三", "李四", "张三", "李四", '王五'] s = list(set(lst)) print(s)
④for循环
lst = ["张三", "李四", "张三", "李四", '王五'] new_lst = [] for item in lst: if item not in new_lst: new_lst.append(item) print(new_lst)