python基础-基本数据类型(int, bool, str)

 

一.python基本数据类型

 

  • int ==> 整数. 主要用来进行数学运算

 

  • str ==> 字符串, 可以保存少量数据并进行相应的操作

 

  • bool==>判断真假, True, False

 

  • list==> 存储大量数据. 用[ ]表 示

 

  • tuple=> 元组, 不可以发生改变 用( )表 示

 

  • dict==> 字典, 保存键值对,  一样可以保存大量数据

 

  • set==> 集合, 保存大量数据. 不可以重复. 其实就是不保存value的dict

 

 

 二. 整数(int)

在python3中所有的整数都是int类型,但在python2中如果数据量比较大,会使用long类型.

在python3中不存在long类型

整数可以进行的操作: bit_length(). 计算整数在内存中占用的二进制码的长度

 

三. 布尔值(bool)

 

python int和str 拼接 python中int和str的区别_python int和str 拼接

取值只有True, False. bool值没有操作.

转换问题:

str => int          int(str)

int => str          str(int)

int => bool      bool(int). 0是False 非0是True

bool=>int        int(bool)     True是1, False是0
 
str => bool      bool(str) 空字符串串是False, 不空是True

bool => str      str(bool) 把bool值转换成相应的"值"

python int和str 拼接 python中int和str的区别_python int和str 拼接

四. 字符串(str)

把字符连成串. 在python中 用', ", ''', """引起来的内容被称为字符串.

 

4.1   切片和索引

  • 索引. 索引就是下标. 切记, 下标从0开始

 

python int和str 拼接 python中int和str的区别_python int和str 拼接_03

 

  •   语法: str[start: end]
      规则: 顾头不顾腚, 从start开始截取. 截取到end位置. 但不包括end

 

python int和str 拼接 python中int和str的区别_字符串_04

 

 跳着截取

python int和str 拼接 python中int和str的区别_字符串_05

步 长: 如果是整数, 则从左往右取. 如果是负数. 则从右往左取. 默认是1切片语法:

切片语法: 

  str[start:end:step] start: 起始位置

  end: 结束位置

  step:步 长

 

4.2 字符串串的相关操作 方法

 

切记, 字符串是不可变的对象, 所以任何操作对原字符串是不会有任何影响的

1.  大小写转来转去

 

python int和str 拼接 python中int和str的区别_python_06

python int和str 拼接 python中int和str的区别_python int和str 拼接_07

2.切来切去

 

python int和str 拼接 python中int和str的区别_迭代_08

 

python int和str 拼接 python中int和str的区别_python int和str 拼接_09

 

python int和str 拼接 python中int和str的区别_字符串_10

3.格式化输出

 

python int和str 拼接 python中int和str的区别_字符串_11

4.  查找

python int和str 拼接 python中int和str的区别_python_12

5. 条件判断

python int和str 拼接 python中int和str的区别_迭代_13

 

 6. 计算字符串的长度

python int和str 拼接 python中int和str的区别_python int和str 拼接_14

注意: len()是python的内置函数. 所以访问 方式也不 一样. 你就记着len()和print() 一样就行了

7.  迭代

我们可以使 用for循环来遍历(获取)字符串中的每 一个字符语法:

  for 变量  in  可迭代对象:

    pass

  可迭代对象: 可以 一个 ,一个往外取值的对象

python int和str 拼接 python中int和str的区别_迭代_15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# 练习.  用算法判断某 一个字符串串是否是 小数 s17 = "-123.12"

 

s17 = s17.replace("-", "") # 替换掉负号 if s17.isdigit():

 

print("是整数") else:

 

if s17.count(".") == 1 and not s17.startswith(".") and not s17.endswith("."):

 

print("是 小数") else:

 

print("不是 小数")

 

 

 

6.  计算字符串串的 长度

 

 

 

s18 = "我是你的眼, 我也是a" ret = len(s18) # 计算字符串串的 长度 print(ret)

 

注意: len()是python的内置函数. 所以访问 方式也不 一样. 你就记着len()和print() 一样就 行了

 

 

7.  迭代

 

我们可以使 用for循环来便便利利(获取)字符串串中的每 一个字符语法:

for 变量量 in 可迭代对象:

 

 

pass

 

可迭代对象: 可以 一个 一个往外取值的对象

 

s19 = " 大家好, 我是VUE, 前端的 小朋友们. 你们好么?"

 

#  用while循环 index = 0

 

while index < len(s19): print(s19[index]) # 利利 用索引切 片来完成字符的查找 index = index + 1

 

 

# for循环, 把s19中的每 一个字符拿出来赋值给前 面的c for c in s19:

print(c)

 

'''

 

in有两种 用法:

 

  1. 在for中. 是把每 一个元素获取到赋值给前 面的变量量.

 

  1. 不不在for中. 判断xxx是否出现在str中.

 

'''

 

print('VUE' in s19)

 

# 练习, 计算在字符串串"I am sylar, I'm 14 years old, I have 2 dogs!" s20 = "I am sylar, I'm 14 years old, I have 2 dogs!"

count = 0

 

for c in s20:

 

if c.isdigit():

 

count = count + 1 print(count)

 

 

 

# a = 3
# print(a.bit_length())
#
# #字符串转成数字
# a = '123'
# i = int(a)
# print(i)
# s = str(i)
# print(type(s))

# b = True
# c = int(b)
# print(c)

# int 转换为Bool  #零 FLase 非零 True

# a = 0
# b = bool(a)
# print(b)

# while 1:    #1的效率比True效率高一点
#     print('alex是个小伙子')

# s = '你好啊' #这种为真
# if s:
#     print('嘿嘿')
# else:
#     print('呵呵')
#
# s = '' #''空字符串表示Flase,非空字符串表示:True
# if s:
#     print('嘿嘿')
# else:
#     print('呵呵')
#
# #空的东西都是Flase,非空都是True
#
# m = None    #空 连空气都不如。真空 也是Flase
# if m:
#     print('a')
# else:
#     print('b')

# 字符串python独有的切片和索引
# s = '老男孩天下无敌'
# print(s[3])
# print(s[-1])
# print(s[-2])
# print(s[-3])

#通过索引获取的内容还是字符串

#切片可以对字符串进行截取
#语法 S[起始位置:结束位置:步长]
#特点:顾头不顾腚

# s = '大头哥哥你好啊wind'
# a = s[2:7]
# print(a)
# s2 = (s[0:3] + s[4:8])
# print(s2)
# s3 =s[1:] #默认到结尾
# print(s3)
# s4 =s[:10] #从头开始
# print(s4)
# s5 =s[:] #从头到尾切出来
# print(s5)
# s6 =s[-1:-3] #深坑
# print(s6)
# s7 = s[-2:]#从-2切到结尾 默认从左往右切
# print(s7)

#步长
#语法 S[起始位置:结束位置:步长] ;步长可以控制方向如果加 - 号 从右往左走
# s = "我是梅西,我很慌"
# s1 = s[1:5:2]   # 从1开始, 到5结束, 每2个取1个
# print(s1)

# s2 = s[::3]
# print(s2)
# s3 = s[6:2:-2]   # - 表示反着来. 每两个取1个
# print(s3)


# s = "这个标点符号很蛋疼"
# s1 = s[7::-2]
# print(s1)
#
# s2 = s[-1:-6:-2]
# print(s2)


# s = "alex and wusir and taibai"
# s1 = s.capitalize()  # 首字母大写
# print(s)    # 原字符串不变
# print(s1)

# s = "Alex is not a Good Man. "
#
# print(s.upper())#upper 全部转换为大写
# print(s.lower())#lower全部转换为小写

#在程序需要判断不区分大小写的时候. 肯定能用上,例如注册时候验证码

# while True:
#     content = input("请喷:")
#     if content.upper() == 'Q':
#         break
#     print("你喷了:", content)

# s = "taiBai HenBai feicahngBai"
# print(s.swapcase()) # 大小写转换
#
# s = "al麻花藤ex and wu sir sir se"
# print(s.title())

# s = "麻花藤"
# print(s.center(8))  #center函数主要用于居中
# print(s.center(8, "*"))  #居中

# username = input("用户名:").strip()    # 去掉空格.
# password = input("密码:").strip()     # 去掉空格
# if username == 'alex' and password == '123':
#     print("登录成功")
# else:
#     print("登录失败")

# s = "*******呵a呵呵呵****************"
# print(s.strip("*"))   # strip去掉的是左右两端的内容. 中间的不管


# s = "alex wusir alex sb taibai"
# s1 = s.replace("alex", "晓雪") # 原字符串不变
# print(s1)
# # 去掉上述字符串中的所有空格
# s2 = s.replace(" ", "")
# print(s2)

#replace也可以替换1个、2个等等
# s3 = s.replace("alex", "sb", 1)
# print(s3)


#split切割,切完的东西是列表
# s = "alex_wuse_taibai_bubai"
# lst = s.split("_taibai_")    # 刀是_  切完的东西是列表. 列表装的是字符串
# print(lst)

# s = "alex_wuse_taibai_bubai"
# lst = s.split("_taibai_bubai")    # 刀是贴边切会有空字符
# print(lst)

# s = "alex_wuse_taibai_bubai"
# lst = s.split("alex_wuse_taibai_bubai")    # 刀是贴边切会有空字符
# print(lst)


# s = "我叫{}, 我今年{}岁了, 我喜欢{}".format("sylar", 18, "周杰伦的老婆")
# print(s)

# format可以指定位置!
# s = "我叫{1}, 我今年{0}岁了, 我喜欢{2}".format("sylar", 18, "周杰伦的老婆")
# print(s)

# s = "我叫{name}, 我今年{age}岁了, 我喜欢{mingxing}".format(name="sylar", mingxing="汪峰的老婆", age=18)
# print(s)

# 你喜欢用哪个就用哪个


s = "汪峰的老婆不爱汪峰"

# print(s.startswith("汪峰"))   # 判断字符串是否以xxx开头,是True 不是Flase
# print(s.endswith("爱妃"))     # 判断字符串是否以xxx结尾,是True 不是Flase
# print(s.count("国际章"))   # 计算xxx在字符串中出现的次数
#print(s.find("老婆"))        计算xxx字符串在原字符串中出现的位置, 如果没出现返回 -1
# print(s.find('汪峰'))
# print(s.find("汪峰", 3))    # 切片式找法,从索引3开始找
# print(s.find("国际章"))      #返回 -1
# print(s.index("国际章"))    # 索引, index中的内容如果不存在. 直接报错
#因为index找不到会报错,所以我们用find就行


# s = "abc123"
# print(s.isdigit())  # 判断字符串是否由数字组成
# print(s.isalpha())  # 是否由字母组成
# print(s.isalnum())  # 是否由字母和数字组成

# s = "二千136万萬"
# print(s.isnumeric())    # 数字

# s = "你今天喝酒了么"
# i = len(s)  #  print() input() len() python的内置函数
# print(i)
#
# i = s.__len__() # 也可以求长度 len()函数执行的时候实际执行的就是它
# print(i)

# 把字符串从头到尾进行遍历
# s = "晓雪老师.你好漂亮"
# print(len(s))   # 长度是:8 索引到7
# 1. 使用while循环来进行遍历
# count = 0
# while count < s.__len__():
#     print(s[count],end= '')
#     count = count + 1

# 2. 用for循环来遍历字符串
# 优势:简单
# 劣势:没有索引
# for c in s: # 把s中的每一个字符交给前面的c 循环
#     print(c)

# 语法:
#     for bianliang  in  可迭代对象:
#         循环体



'''作业
# 1.请输出 name 变量对应的值中 "e"  所在索引位置?
name = "aleX leNb"

count = 0
while count < len(name):
    if name[count] == 'e':
        print(count)
    count += 1

'''
s ='asdsf'

# 3、使用for循环对s ='asdsf'进行循环、分别打印字符串中的每个元素
# for c in s:
#     print(c)

# 4、使用for循环对s ='asdsf'进行循环、每次打印的内容都是'asdsf'
# for c in s:
#     print(s)

#5、使用for循环对s ='asdsf'进行循环、每次打印的内容加上'sb'
# for c in s:
#     print(c +'sb')

#6、使用for循环对s='321'进行循环、打印内容依次是:"倒计时3秒"、"倒计时2秒"、"倒计时1秒"、出发
# s = '321'
# for i in s:
#     print('倒计时%s秒' %i)
# else:
#     print('出发')

#7、实现一个整数加法计算器(两个数相加)
    #如 content =input(请输入内容:)用户输入:5+9然后进行分割再进行计算
# content =input('请输入内容:')
# list = content.split('+')
# s1 =list[0]
# s2 =list[1]
# a1 = int(s1)
# a2 = int(s2)
# print(a1+a2)

#8、实现一个整数加法计算器(多个数相加) --升级题
    #如 content =input(请输入内容:)用户输入:5+9+6+12+13然后进行分割再进行计算



#9 计算输入的内容是几位整数(已个位为单位)# content = input("请输⼊内容:")   # 如fhdau234slfh98769fjdba

# content = input("请输⼊内容:")   # 如fhdau234slfh98769fjdba
# count = 0
# for c in content:
#     if c.isdigit():
#         count = count + 1
# print(count)
#

# 11、1 - 2 + 3 - 4  ... + 99  去掉88
# count = 1
# sum = 0
# while count < 100:
#     if count == 88:
#         count = count + 1
#         continue
#     if count %2 == 0:# 偶数
#         sum = sum - count
#     else:
#         sum = sum + count
#     count = count + 1
# print(sum)

# 12 、判断一句话是否是回文.回文:正着念反着念是一样的.例如"明天到操场操到天明
ss = "明天到操场操到天明"
s1 = ss[::-1]
if ss == s1:
    print("回文")
else:
    print("不是回文")

# 13 输入一个字符串,要求判断这个字符串中大写字母、小写字母、数字,其他
# 字符共出现了多少次,并输出出来
content = input("请输入一个字符串:")
digit_num = 0
upper_c_num = 0
lower_c_num = 0
other = 0
#
for c in content:
    if c.isdigit():
        digit_num += 1
    elif c.isupper():
        upper_c_num += 1
    elif c.islower():
        lower_c_num += 1
    else:
        other += 1

print(digit_num)
print(upper_c_num)
print(lower_c_num)
print(other)

#14、制作趣味模板程序需求:等待用户输入名字、地点、爱好、根据用户的名字和爱好
#进行任意现实如:敬爱可亲的XXX,最喜欢在XXX地方干XXX

# name = input("请输入你的名字:")
# address = input("请输入你的地点:")
# hobby = input("请输入你的爱好:")
# print("敬爱可亲的{name}, 喜欢在{address}干{hobby}".format(name=name, address=address, hobby=hobby))# name = input("请输入你的名字:")
# # address = input("请输入你的地点:")
# # hobby = input("请输入你的爱好:")
# # print("敬爱可亲的{name}, 喜欢在{address}干{hobby}".format(name=name, address=address, hobby=hobby))# name = input("请输入你的名字:")
# # address = input("请输入你的地点:")
# # hobby = input("请输入你的爱好:")
# # print("敬爱可亲的{name}, 喜欢在{address}干{hobby}".format(name=name, address=address, hobby=hobby))