python学习第3️⃣天—2018.5.31之基本数据类型(int,bool,str)


一.python基本数据类型
1. int ==> 整数. 主要用来进行数学运算

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

3. bool==>判断真假, True, False

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

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

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

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


二. 整数(int) 在python3中所有的整数都是int类型. 但在python2中如果数据量比较大. 会使用long类型. 在python3中不存在long类型
整数可以进行的操作: bit_length(). 计算整数在内存中占用的二进制码的长度

三. 布尔值(bool)

取值只有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值转换成相应的"值"
四. 字符串(str)

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

4.1 切片和索引
1. 索引. 索引就是下标. 切记, 下标从0开始

s1 = "python牛B"
print(s1[0])# 获取第0个
print(s1[1]) 
print(s1[2]) 
print(s1[3]) 
print(s1[4]) 
print(s1[5]) 
print(s1[6]) 
print(s1[7]) 
print(s1[8]) 
# print(s1[9])    # 没有9, 越界了. 会报错 
print(s1[-1])   # -1 表示倒数. 
print(s1[-2])   # 倒数第二个

2. 切片, 我们可以使用下标来截取部分字符串的内容
语法: str[start: end]

规则: 顾头不顾腚, 从start开始截取. 截取到end位置. 但不包括end

s2 = "python牛B" 
print(s2[0:3])  # 从0获取到3. 不包含3. 结果: pyt 
print(s2[6:8])  # 结果 牛 
print(s2[6:9])  # 大是8. 但根据顾头不顾腚, 想要取到8必须给9 
print(s2[6:10])  # 如果右边已经过了大值. 相当于获取到后 
print(s2[4:])   # 如果想获取到后. 那么后一个值可以不给.
print(s2[-1:-5])    # 从-1 获取到 -5 这样是获取不到任何结果的. 从-1向右数. 你怎么数也数不到-5 
print(s2[-5:-1])    # 牛b, 取到数据了. 但是. 顾头不顾腚. 怎么取后一个呢? 
print(s2[-5:])  # 什么都不写就是后了 
print(s2[:-1])  # 这个是取到倒数第一个 
(s2[:])    # 原样输出 

 跳着截取 

# 跳着取, 步长 
print(s2[1:5:2])    # 从第一个开始取, 取到第5个,每2个取1个, 结果: yh, 分析: 1:5=> ytho => yh 
print(s2[:5:2])     # 从头开始到第五个. 每两个取一个 
print(s2[4::2])     # 从4开始取到后. 每两个取一个 
print(s2[-5::2])    # 从-5取到后.每两个取一个 
print(s2[-1:-5])    # -1:-5什么都没有. 因为是从左往右获取的. 
print(s2[-1:-5:-1])  # 步长是-1. 这时就从右往左取值了 
print(s2[-5::-3])   # 从倒数第5个开始. 到开始. 每3个取一个, 结果oy 

步长: 如果是整数, 则从左往右取. 如果是负数. 则从右往左取. 默认是1 切片语法: str[start:end:step] start: 起始位置 end: 结束位置
step:步长
4.2 字符串的相关操作方法
切记, 字符串是不可变的对象, 所以任何操作对原字符串是不会有任何影响的
1. 大小写转来转去

#s = "alex and wusir gaoji"
# s1 = s.capitalize() # 首字母大写 ,
# print(s) # 原字符串没有变化
# print(s1)

# s2 = s.title() # 标题, 每个单词首字母大写 , 特殊字符, 中文在这里算特殊字符
# print(s2)


# name = "taiBai"
# s1 = name.upper() # 转换成大写字母
# print(s1)
# s2 = name.lower()
# print(s2)

# verify_code = "FaD3"
# verify_code_user = input("请输入验证码:")
# if verify_code.upper() == verify_code_user.upper():
# print("验证码成功")
# else:
# print("验证失败")

# s = "alexAndEggonAndRiTian"
# s1 = s.swapcase() # 大小写转换
# print(s1)

# s2 = "БBß" # 俄美德
# print(s2)
# print(s2.lower())
# print(s2.casefold())

2. 切来切去

# s = " 麻花. 张x忠, 刘华强 "
# s1 = s.strip() # 去掉左右两边的空格, 必须要记住
# print(s1)
#
# s2 = s.lstrip() # 去掉左边的空格
# s3 = s.rstrip() # 去掉右边的空格
# print(s2)
# print(s3)

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

# s = "麻花哈哈哈哈麻花"
# print(s.strip("麻花"))
# print(s)

# s = "alex,wusir,taibai,eggon"
# s1 = s.replace(",", "喜欢") # 替换
# print(s1) #

# s = "我想吃切糕.切糕没有芝麻好吃!"
# s1 = s.replace(".", "")
# print(s1)

# 切割
# s = "李嘉诚_王健林_马云_刘东强_alex"
# lst = s.split("_") # 字符串切割. 切割的结果是列表
# print(lst[0])
# print(lst[1])
# print(lst[2])
# print(lst[3])
# print(lst[4])

# s = "李嘉诚王健林麻花周杰伦"
# # lst = s.split("李嘉诚王健林麻花周杰伦") # 如果原字符串和刀一样.得到的是两个空字符串
# # lst = s.split("马云") # 如果不存在.得到的是原字符串
# # lst = s.split("") # empty separator 报错
# # print(lst)
# s.split()

# s = "a_b_c_d_e_f_g"
# lst = s.split("_", 2) # 第二个参数. 切的次数
# print(lst)
#
# s = "周杰伦_周润发_周星驰_周星星"
# lst = s.split("周杰伦")
# print(lst)
# lst = s.split("周星星")
# print(lst)
# # 在开头和结尾如果出现了你的刀. 一定会出现空字符串

3. 格式化输出

# %s 字符串
# %d 数字站位
# print("%s很帅, 你信吗?" % "我")
# print("{}很帅, {}信吗?, 不信给你{}钱".format("旭哥", "我们", 100))
# print("{1}很帅, {0}信吗?, 不信给你{2}钱".format("旭哥", "我们", 100))
# print("{person1}很帅, {person2}信吗?, 不信给你{money}钱".format(person1="旭哥", person2="我们", money=100))

4. 查找

# count 数数
# s = "alex wusir taibai 女神"
# print(s.count("ai")) # 计算ai在原字符串中出现的次数 如果没出现返回0

# # find 查找
# s = "明天周末了.你们打算干什么去?"
# print(s.find("了")) # 如果你要查找的内容不存在. 返回-1, 如果存在返回索引

# index 求索引
# s = "下周我们要考试了. 你们慌不慌"
# print(s.index("你大爷")) # 如果找不到报错

    5. 条件判断

# 条件判断
# s = "写个啥呢? 哈哈哈"
#
# # 判断字符串是否以xxx开头
# print(s.startswith("写个啥呢"))
# # 判断字符串是否以xxx结尾
# print(s.endswith("哈哈哈"))

# 是否是字母和数字组成
# s = "abcdefg"
# print(s.isalnum()) # 数字和字母
# print(s.isdigit()) # 数字
# print(s.isalpha()) # 字母

# s = "壹贰"
# print(s.isnumeric()) # 几乎所有数字
# print(s.isdigit()) # 阿拉伯数字

# 判断字符串是否是小数
# 依据:1. 有小数点. 一个小数点

6. 求字符串的长度
# s = "abcde"
# ret = len(s) # 内置函数
# print(ret)

7. 迭代
# s = "吃喝拉撒睡不管有多长"
# for w in s:
# print(w)
# index = 0
# while index < len(s):
# print(s[index])
# index = index + 1
# 练习, 计算在字符串"I am sylar, I'm 14 years old, I have 2 dogs!" 出现过多少个数字. 个位为单位

# s = "I am sylar, I'm 14 years old, I have 2 dogs!"
# count = 0
# for w in s:
# if w.isdigit():
# count = count + 1
# print(count)

# 字符串不可变. 每次操作都会返回给你新的字符串

猜你喜欢

转载自www.cnblogs.com/zxmbky/p/9123420.html