Day2-Python
Python第二节
1.运算符
(1)+ - * / **(幂) %(取余) //(除法取整数)
(2)in 和 not in(判断某个东西是否在某个东西里面,结果为布尔值)
a='小独白' if '小'in a: print('yes') else: print('no')
# '小独白'为字符串,小为其子字符串,或者子序列(小白不是其子序列)
# 整体注释的快捷方法:选中区域Ctrl+?
(3)布尔值:True 或 False
b='店小五' c='蔡' not in b print(c)
此时输出值为True
not false=true
#<>也表示不等于
比较运算
==
!=
<>
>
<
>=
<=
2.计算规则(推荐使用括号)
执行顺序:
从前到后
如果结果:
为True 遇到 or 就不继续往前走了 ,直接输出结果为True,遇到and就继续走下去
为False遇到or就继续往前走,如果遇到and就不走了,输出结果为False
3.赋值运算
a=a+1 等同于 a += 1
a=a-1 等同于 a -= 1
a=a*1 等同于 a*=1
a=a/1 等同于 a/=1
a=a//1 等同于 a//=1
a=a%1 等同于 a%=1
4.总结:分为两类,一种为值(算数运算,赋值运算),一种为布尔值(比较、逻辑、成员运算)
(1)算数运算:
(2)比较运算:
(3)赋值运算:
(4)逻辑运算:
(5)成员运算:
5.基本数据类型
(1)数字
(2)字符串
(3)布尔值
(4)列表
(5)元祖
(6)字典
6.数字(int)的属性功能(python2里叫整形,有范围,长整形叫long)
(1)int功能(将字符串转换为数字)
a='123'
b=int(a)
b=b+100此时就可以算了
#用type可以检验其类型,如print(type(a))
#进制转换
num='a'
b=int(num,base=16)
print(b)
此时输出值为10
(2)bit_length()
a=1
v=a.bit_length()
print(v)
此时v=1
#这里bit_length()指的是二进制下该数的字节个数
Q7.字符串(str)的属性功能
(1)capitalize()
首字母大写功能
(2)casefold()-功能更全面 和lower()
#字母变小写
(3)center(width,可填可不填)
a='chris'
v=a.center(20,'#')
print(v)
#此时为占20个位置,chris居中,且左右都为#(既空白位置填充,只能填一个字符,可有可无)
(4)count('填入字符')-寻找子序列在条件中出现的次数,查询的字符可以是多字符,后面的两个参数为从第几个字母开始,第几个结束
a='ccaaddssw'
v=a.count('d',5,7)
print(v)
#此时输出数值为2,既d出现的次数为2
(5)encode,decode很重要
(6)endswith()-指判断以什么为结尾,输出布尔值,startswith()判断是以什么开头,后面也可设置数字参数
(7)expandtabs()
(8)find(a,5,8)-从前往后找,找子序列第一次出现的位置,后面也可设置两个数字参数,此时表示>=5且<8找属于第几位,当找不到时-1就是代表找不到
!!!!!!重点
a='achrischr'
v=a.find('ch',5,9)
print(v)
#此时输出值为6,第一个ch就被跳过了,index的功能与其一致,但找不到时会报错
(9)format()格式化,将一个字符串中的占位符替换为指定的值,
a='i am {name},age {b},from{where}'
v=a.format(name='chris',b=19,where='shenzhen')
print(v)
#此时输出为i am chris,age 19,from shenzhen,字符串都要加引号
也可用数字方法,如下
a='i am {0},age {1},from{2}'
v=a.format('chris',19,'shenzhen')
print(v)
#数字必须从0开始
(10)format_map()与上述相似,但格式不一样
a='i am {name},age {b},from{where}'
v=a.format_map({'name':'chris','b':19,'where':'shenzhen'})
print(v)
(11)isalnum()-判断字符串是否是全为字母或数字,输出值为布尔值
(12)判断数字
isalpha()判断是否是数字和汉字
isdigit()
isdecimal()
#判断是否是数字 上面的更高级,可看出是否为图形数字,输出值为布尔值
(13)swapcase()大小写转换
(14)isidentifer()判断标识符符不符合规则,数字开头为否
islower()判断是否都是小写
isnumeric()支持判断中文的数字
判断数字的以后可以拿来判断内容层级
isprintable()判断字符串内是否有特殊功能符号,如/n换行符 /t制表符
isspace()判断是否全是空格
istitle()判断是否是标题样式,既每个单词首字母大写,可用title()转换
(15)join()将字符串中的每个元素按照指定分隔符进行拼接,将某个字符加入到字符串中,两个字符中间加一个,把b加入a中 v=b.join(a),也可用简便方法
*****非常重要!
a='我是蔡晓武' b='6' v=b.join(a) print(v)
输出值为我6是6蔡6晓6武
#简便方法
a='我是蔡晓武' v='b'.join(a) print(v)
输出值为我b是b蔡b晓b武
(16)ljust()和rjust()与center()相似,ljust()是把原字符串放左边,在右边填充
a='chris' b=a.ljust(20,'#') print(b)
输出为chris###############
(17)lower()和upper()将字符串转换为小写和大写,判断的功能是islower()和isupper()
#常用于网站输入验证码时,用于比对大小写
(18)strip()和lstrip()和rstrip()默认去除空白和特殊功能符如/t /n,也可进行参数指定
a='chris'
b=a.strip('c')
print(b)
#去除
!!!!重点
(19)maketrans()和translate()-按某个对应关系进行替换
a='aabbchrisc' b=str.maketrans('a','d') c=a.translate(b) print(c)
#先用b创立对应规则,再将a转换
此时a全变成了d
(20)partition()和rpartition()将字符串以某个指定值分割成三部分,遇到的第一个分割(包含分割的元素,不会被去除)
(21)split()和rsplit()也是分割功能,但可以按某个参数全部分割,也可设置参数
重点!!!!!
a='aacfgcddsc' b=a.split('c',2) print(b)
输出值为['aa', 'fg', 'ddsc'],s本身会被去除
!!!#以后可用于设计计算器,先计算乘除时提取乘除符号,再将字符转换为数字int(),然后进行运算
#正则表达式,为以上两个功能的合集,可以自己决定是否要去除参数
(22)splitlines()根据换行符进行分割,可设置参数True或False,决定是否保留换行符
(23)!重点【】既索引或者下标,获取字符串中的某一个字符,顺序从0开始,也可获取多个字符,通过冒号来实现,区间为>=和<,【0:-1】-1为直接到最后一个参数,此功能也称为切片
a='chris' b=a[2]
c=a[0:3] print(b,c)
此时输出值为r,chr
(24)!重点 len()查询出字符串中有几个字符组成,也可查询列表中的元素个数,根据逗号分隔a=【11,22,33,‘sfa’】 len(‘a’) 输出值为4
a='chris' b=len(a) print(b)
此时输出值为5
(25)结合循环和以上功能获取字符串中的每个字符,未来爬取新闻时,用len()得到其长度,再用while循环把所有得出
#获取字符串中所有字符 a='蔡是帅哥' b=0 while b<len(a): c=a[b] print(c) b=b+1
此时输出值为
蔡
是
帅
哥
也可用for循环实现
a='蔡是帅哥' for b in a: print(b)
此时输出值为
蔡
是
帅
哥
!!字符串一旦创建,不可修改,一旦修改或拼接,都会造成重新生成字符串
(26)!!重点replace()替换,可设置参数决定替换个数
a='ddsadfa' b=a.replace('a','s',2) print(b)
此时输出值为ddssdfs
(27)当name=‘aleX’时,求出name变量对应的值中‘e’所在索引位置
name='aleX' b=len(name) for i in range(0,b): while name[i]=='e': print(i) break
(28)设计一个整数加法计算器
a=input('>>>') b=a.split('+') c=0 for i in range(0,len(b)): c=int(b[i])+c print(c)
(29)趣味模板程序
需求:等待用户输入名字,地点、爱好,根据用户的名字和爱好进行任意实现
如:敬爱的xxx,最喜欢在xxx,地方干xxx
a=input('您的名字是:') b=input('地点:') c=input('爱好:') d='敬爱的{e},最喜欢在{f}干{g}' h=d.format(e=a,f=b,g=c) print(h)
(30)验证码验证系统
def check_code(): import random checkcode='' for i in range(4): current=random.randrange(0,4) if current!=i: temp=chr(random.randint(65,90)) else: temp=random.randint(0,9) checkcode+=str(temp) return checkcode code=check_code() print(code) c=code.upper() a=input('请输入验证码:') d=a.upper() while d==c: print('您好') break else: print('gun')
(31)其他数据类型
列表(list)
元祖(tuple)
字典(dict)
布尔值(bool)