一、运算符:

1、布尔值:true(真)、false(假)

name = "欧阳锋"
v1 = "欧阳" not in name  #欧阳 不在 name里
v2 = "欧阳"  in name       #欧阳 在 name里

#返回输出结果
print(v1)
print(v2)

2、逻辑运算:and、or、not (与、或、非)

#从前到后一个一个算
a = 1
b = 'oyf'
#and :
c = a == 1 and b == 'oyf' # 真真为真
print(c)
c = a == 2 and b == 'oyf' # 真假为假
c = a == 2 and b == 'oy'  # 假假为假

#or:

#True 碰到 or  ---> True
#True  碰到 and ---> 继续向下判断
#False 碰到 or ---> 继续向下判断
#False 碰到 and ---> False
#补充:优先计算括号内的,如下:
c = a == 1 and (a != 1 and b == 'oy' or b == 'oyf')
print(c)

#not
aa = not a
print(aa)
# 因为a 大于 0 为真,aa = not a 的意思是,a不大于0,所有结果为False

3、成员运算: in 、not in

# in
name = "欧阳锋"
# "欧阳锋"  字符串
# "欧"      字符
# "欧阳"    子字符串(子序列
if "欧阳" in name:
    print('yes')
else:
    print('no')
# not in
name = "欧阳"
if "欧阳" not in name:
    print('no')
else:
    print('yes')

4、赋值运算:

count = 0
# 把运算符提到"="号前面为简便写法,后面为原始写法。
# count += 1  # count = count + 1
# count *= 1  # count = count * 1
# count /= 1  # count = count / 1
# count %= 1  # count = count % 1
# count //= 1 # count = count // 1
# count **= 1 # count = count ** 1
# 如:
while count < 3:
    count += 1
print(count)

5、算数运算:

# + 、-、 *、 /、  %(取余)、//(商)、 **(次方)
a = 1 + 2
print(a)

6、比较运算:

#< 、>、 == 、!=(不等于)、 <=、 >=、 <>(也是不等于)
a = 1
b = 2
if a < b :
    print('yes')

—归类—

  为了方便记忆,可以给以上六种运算归为两类:

第一类:返回结果为值:

①、算数运算:

a = 10 * 10

②、赋值运算:

a += 1

 

第二类:返回结果为布尔值:

①、布尔值:

②、比较运算

a = 1 > 5

③、成员运算:

a = '欧阳' not in '欧阳峰'

④、逻辑运算:

a = 1 > 5 or 1 == 1

二、int(整型)方法:

1、int() 转换类型:

a = '123'
print(type(a))   #type()查看类型
b = int(a)       #将字符串转换成int类型
print(type(b))

2、int (num,base=)进制转换

num = "a"
b = int(num,base= 16)  #把num 调整为16进制。base= 调整为多少进制
print(b)

3、bit_length() 当前数字至少用多少位二进制表示

a = 8
r = a.bit_length() # 把a使用bit_length转换赋值给r
print(r)

—补充:
python2里面 表示整型(整数类型) 一定范围内是 int ,超过了这个范围就是 long(长整型)。
python3里面 所有的整型都是 int 类型。
在pycharm中,输入 int  按住control 左键单击 "int"就可以查看int方法

三、str(字符串)方法:

必懂:字符串在内存中一旦创建,就不可修改,如果要修改或拼接,会在内存中重新创建一个新的字符串。

1、必会方法

# 1、jion() 将字符串中每一个元素按照指定分隔符进行拼接
# 工作原理:内部会循环该字符串,来完成拼接操作
a = '西北玄天一片云,乌鸦落进了凤凰群'
b = ' '             #指定分隔符为空格
print(a)            #输出原效果
print(b.join(a))    #输出改变后的效果
print('_'.join(a))  #另一种使用join方式

# 2、.split()     #字符串分割,能设置分几次,但是拿不到分隔符。默认全部分割
test = 'kuihuabaodian'
print(test.split('a',2))  #指定以'a'作为分割符,分割两次

# 3、.find()      #寻找子序列
test = 'wuDishiwudiwudi'
a = test.find('wu')


# 4、.strip()     #默认去除左右两边空格 \t \n等,也可自定义字符去除,优先最多匹配。
test = '\tguojing\t'
print(test)
print(test.strip())
# 自定义参数去除
test1 = '123guojing123'
print(test1.strip('123'))

# 5、.upper()     #把字符串转换为大写
test = 'Ouyangfeng'
print(test.upper)


# 6、.lower()     #把字符串转换为小写
test = 'OuYangFeng'
print(test.lower())


# 7、replace() 替换
test = 'abcabcabcde'
print(test.replace('ab','36D'))     #默认把字符串中所有 ab 替换成 36D
print(test.replace('ab','36D',2))   #传入的第三个参数为指定次数。替换2次。

# 8、获取字符串中某一个下标(第一位是从0开始
# 8.1、索引,下标

test = 'ouyangfeng'
v = test[2]    #获取字符串中下标[2]的字符
print(v)

# 8.2、切片  字符串截取遵循“左闭右开”原则,也叫“包左不包右”
test = 'ouyangfeng'
v = test[0:2] # 取值范围是 大于等于0 至 小于2。 [:]取的是全部。
print(v)

# 8.3 len  获取字符串长度
# 在python2中如果是中文字符串,显示的是字节 每个中文占三个字节

test = 'ouyangfeng'
v = len(test)    # 通过len()函数,获取test字符串长度
print(v)

#补充:
# len()也可以计算其他数据类型长度。在列表中,是以逗号来进行分割的。从1开始。
li = [11,22,33,44,'assa']
print(len(li))   # 输出结果为5

# 8.4、 for循环
# 语法:
# for [变量名] in [字符串]:
#   [代码块]

# 8.5、range()函数
# 帮助创建连续数字,也可以设置步长,按照设置的间隔跳着取数。
test1 = range(20)    # 也可以写range(0,20) 意思是取 【大于等于0 小于 20 的数】

test2 = range(0,20,2) #设置步长为 2,取的是0、2、4...18
for a in test1:
    print(a,end='\t')
print()
for b in test2:
    print(b,end='\t')

2、小练习:利用所学知识,使用input定义一个字符串,将该字符串中的下标与字符一一对应打印出来。

python中判断input格式的代码 python判断int类型_字符串转换

python中判断input格式的代码 python判断int类型_字符串_02

test = input('>>>:')
for a in range(len(test)):   #使用len获取test字符长度,传入range()函数
    print('下标:{} 对应的字符是:{}'.format(a,test[a]))    #使用format拼接字符串,用切片方式 取出下标对应的字符。

练习题答案

3、str其他方法详解与示例:

python中判断input格式的代码 python判断int类型_字符串转换

python中判断input格式的代码 python判断int类型_字符串_02

# 1、.capitalize()   首字母大写

# test = 'wuDishiwudiwudi'
# print(test.capitalize())

# 2、.caseflod()、.lower() 把字符串中所有的字母变小写。
# caseflod()更牛逼,应用场景丰富,能处理很多未知的大小写对应

# test = 'wuDishiwudiwudi'
# print(test.casefold())
# print(test.lower())

# 3、.center(self,width,fillchar=None)  self(可以忽略)、 fillchar=None (默认是None,可带可不带)
# 查看方法时如遇到 'width' 必须要往里面传一个值
# 设置宽度,并将字符串居中
# 20 代表 总填充长度占20个字符
# '*' 使用 * 填充空白处,默认用空白填充,只能传进一个字符。

# test = 'wuDishiwudiwudi'
# print(test.center(20))
# print(test.center(20,'*'))

# 补充:
#  .ljust() 字符串在左侧,把定义的内容填充到右侧,默认为空格
#  .rjust() 字符串在右侧,把定义的内容填充到左侧,默认为空格
#  .zfill() 不能自定义填充内容, 只填充0  没啥用
# print(test.ljust(20,'*'))  #字符串从开头填充'*'补全字符串至20位(使用开头结尾方便理解)
# print(test.rjust(20,'*'))  #字符串从结尾填充'*'补全字符串至20位
# print(test.zfill(20))      #字符串从开头填充'0'补全字符串至20位

# 4、.count() 统计传参在字符串中出现的次数
# t = 'guojinghuangrongouyangfeng'
# a = t.count('g') #'gr'支持子序列
# print(a)
# b = t.count('g',3,15) #查找'g'在字符串中出现的次数,从第3位开始,第15位结束(第一位从0开始)
# print(b)

# 5、encode()、decode() 非常重要,先略过。

# 6、.endswith() 以什么结尾的bool值判断;
#    .startwith()以什么开始的bool值判断;
#    也可传入开始位置 结束位置参数

# test = 'wuDishiwudiwudi'

# print(test.endswith('a'))

# print(test.endswith('w'))

# 7、.find() 寻找子序列
# 从开始往后找,找到一个后,获取其下标()

# test = 'wuDishiwudiwudi'
# a = test.find('wu')
# print(a)
# # 可指定开区间闭区间,开始位置>=3 结束位置<9,如下
# b = test.find('wu',3,9)
# print(b)
# 补充:.index() 方法功能与 .find()方法类似,find为常用。
# 区别:index找不到会报错,find找不到会反回-1。
# 以下为对比:
# c = test.index('wu',3,9)
# print(c)
# d = test.index('sb',3,9)
# print(d)

# 8、.format()格式化字符串,将一个字符串的占位符替换为指定的值
# 以下为几种拼接方式:

# a = 'i am {} , {} years old!'  #也可填入{0}{1}
# aa = 'i am {name} , {age} years old!'
# print(a)
# print(a.format('欧阳锋',69))
# print(aa.format(name='欧阳锋',age=69))

# 补充 .format_map() 传的是字典类型
# a = 'i am {name} , {age} years old!'
# b = a.format(name='欧阳锋',age=69)
# print(b)
# c = a.format_map({'name':'西毒欧阳锋','age':69}) #'key' 对应 '值'
# print(c)

# 9、.isalnum()判断字符串中是否只包含字母和数字,返回bool值
# a = 'abcds982_)+'
# b = 'abcds'
# print(a.isalnum())   #False
# print(b.isalnum())   #True

# 补充:.isalpha() 判断字符串中是否只包含字母。返回bool值
# a = 'abcds982'
# b = 'abcds欧阳锋'
# print(a.isalpha())   #False
# print(b.isalpha())   #True


# 10、.expandtabs()断句,如果有20个,就是20个一组
# 目前就我理解为的意思就是类似制作表格的作用
# 让\t前后 满足后面传参的位数。空格补齐。
# s = 'username\tpassword\tmail\nouyangfeng\t1234\touyangfeng@qq.com'
# print(s.expandtabs(20))

# 11、isdecimal() 、 isdigit() 、isnumeric()判断是否是数字
# 输出结果返回bool值
# .isdecimal() 十进制的小数、最常用
# .isdigit()   特殊@符号  可互相配合,定通过‘一、①、1’返回的值义文件层次
# .isnumeric   支持中文 识别范围更牛逼

# num1 = '123'
# num2 = '②'
# num3 = '二'
# #num1
# print(num1.isdecimal())
# print(num1.isdigit())
# print(num1.isnumeric())
# print()                    #换行作用,方便对比
# #num2
# print(num2.isdecimal())
# print(num2.isdigit())
# print(num2.isnumeric())
# print()
# #num3
# print(num3.isdecimal())
# print(num3.isdigit())
# print(num3.isnumeric())


# 12、.swapcase() 把字符串中小写转换为大写,大写转换为小写。
# test='xIdUOyangFeng'
# print(test.swapcase())

# 13、.isidentifier() 标识符,数字不能作为字符串开头。返回bool值
# test1='123'
# test2='class33'
# print(test1.isidentifier())
# print(test2.isidentifier())

# 14、.isprintable() 识别字符串打印后,是否存在不可显示的字符。返回bool值
# 个人理解:类似\t(制表符) \n(换行符)这种,输出后不显示的,就会返回false
# test1 = 'this is test1'
# test2 = '\tthis \n\tis \n\ttest2'
# print(test1.isprintable())
# print(test2.isprintable())

# 15、.isspace()  判断字符串中是否都是空格,返回bool值
# \t 也会被识别为True
# test1 = 'asdsa'
# test2 = '   '
# print(test1.isspace())
# print(test2.isspace())

# 16、.title() 把字符串转换为首字母大写的标题
#     .istitle()判断是否为首字母大写的标题
# test1 = 'this is Python'
# v = test1.title()       #把test1转换为title
# print(test1.istitle())  #输出test1 判断结果
# print(v.istitle(),v)    #输出test1转换后的判断结果与转换后的效果。

# 17、.lower() 把字符串转换为小写
#     .islower() 判断字符串那是否为小写
# 可以作用于验证码不区分大小写比对。


# test = 'Ouyangfeng'
# print(test.lower())
# print(test.islower())

# 补充:
# .upper() 把字符串转换为大写
# .isuper() 判断字符串那是否为大写

# print(test.upper())
# print(test.isupper())

# 18、.strip()   #默认去除左右空格 \t \n,也可自定义字符去除,优先最多匹配。
#     .lstrip()  #默认去除左空格
#     .rstrip()  #默认去除右空格

# 默认去除
# test = '\tguojing\t'
# print(test)
# print(test.strip())
# print(test.lstrip())
# print(test.rstrip())

#自定义参数去除

# test1 = '123guojing123'
# print(test1)
# print(test1.strip('123'))
# print(test1.lstrip('123'))
# print(test1.rstrip('123'))



# 19、.maketrans() 建立对应关系,配合translate()使用(没啥用
# test = '口令:天王盖地虎。哇哈哈'
# m = str.maketrans('天王盖地虎','宝塔镇河妖') # 建立前后对应关系
# print(test)
# print(test.translate(m))                     #进行替换,输出效果


# 20、.partiton()  #字符串分割,只能分割一次。以后可能会用到。
#     .rpartiton() #从右往左匹配
#     .split()     #字符串分割,能设置分几次,但是拿不到分隔符。默认全部分割
#     .rsplit()    #从右往左匹配
# 正则表达式,也可以进行分割,可以进行设置,是否想要分割的元素。
# 是这两个方法的合集


# test = 'kuihuabaodian'
# print(test.partition('a'))
# print(test.split('a',2))  #指定以'a'作为分割符,分割两次

# 补充:
# .splitlines() 自动识别换行符,根据换行符分割。
# 也可跟参数:True、False,默认为False
# test = '葵花宝典\n九阳真经\n乾坤大挪移\n降龙十八掌'
# print(test.splitlines())
# print(test.splitlines(True)) # True为保留换行符

# 21、.startswith()   判断该字符串以什么作为开始,返回bool值
#     .endswith()     判断该字符串以什么作为结束

# test = 'xiduouyangfeng'
# print(test.startswith('xidu'))
# print(test.endswith('xd'))

str其他方法