博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基本数据类型(int, bool, str)
阅读量:5280 次
发布时间:2019-06-14

本文共 5883 字,大约阅读时间需要 19 分钟。

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

一. python基本数据类型

  1. int ==> 整数. 主要⽤来进⾏数学运算
  2. str ==> 字符串, 可以保存少量数据并进⾏相应的操作
  3. bool==>判断真假, True, False
  4. list ==> 列表 存储⼤量数据.⽤[ ]表⽰
  5. tuple=> 元组, 不可以发⽣改变 ⽤( )表示 不可变
  6. dict==> 字典, 以key: value的形式存储数据 key(标签, 便于查找) value(所保存的值)查找速度快
  7. set==> 集合 (类似数学里的集合) 保存⼤量数据. 不可以重复. 其实就是不保存value的dict

1.1 整数 (int)

1 整数:

  • 常见操作就那么几个 + - * / // % **
a = 4print(a.bit_length())   #运行结果是 3  即  三位  数字4在二进制里显示是 100

1.2 布尔值 (bool)

  • 转换问题 :
  1. str = str(int) 整数转换为字符串
  2. int = int(str) 字符串转换为整数
  3. bool = bool (int) 整数转换为布尔值 打印结果: 0 是False 非0是True
  4. int = int(bool) 布尔值转换为整数 打印结果: True是1 False是0
  5. bool = bool(str) 字符串转换为布尔值 空字符串是False, 不空是True
  6. str = str(bool) 布尔值转换为字符串 把bool值转换成相应的"值"
  7. 可以当做False来用的数据: 0 "" [] {} () None [] 是 (列表)

1.3 字符串 (str)

  1. 字符: 单一文字符号
  2. 字符串: 把字符连成串,有序的字符序列
  3. 字符串由 ' " ''' """括起来的内容

1 索引

  1. 索引 :一排数字,字符串. 反应第某个位置的字符 索引的下标从0开始. 使用 [] 来获取数据, 索引从0位开始计数
  2. 缺点: 有bug, 如果此位没有字符就会报错
01234 5 6 7 s12 = "Alex是个教师"print(s12[0])  # 打印出来时 "A"print(s12[8])  # 会报错 ,没有第八位print(s12[-1]) # 打印出是"师" (表示倒数第一位字符)

延伸题:

# name = "aleX leNb" 请输出 name 变量对应的值中 "e" 所在索引位置?name = "aleX leNb"num = 0while num < len(name):    if name[num] == "e":        print(num)    num += 1# 输出结果是"e"所出现过的位置

2 切片

  1. 可以使⽤下标来截取部分字符串的内容
  2. 语法格式: str[start : end : step] start : 开始 end : 结尾 step : 步长
  3. 规则: 顾头不顾腚, 从start开始截取. 截取到end位置. 但不包括end
s12 = "Alex是个教师"print(s12[0:3]) # 从0获取到3. 不包含3. 结果: Aleprint(s12[4:])  # 如果想获取到最后. 那么最后⼀个值可以不给print(s12[-1:-5]) # 从-1 获取到 -5 这样是获取不到任何结果的. 从-1向右数. 你怎么数也数不到-5print(s12[-5:-1]) # 打印出的是 "x是个教"  (始终是从左往右取,  指的是start end 处设置的数字 在数轴(x轴)上的方向,-5是start开始位, -1是end位,取不到)print(s2[-1:-5:-1]) # 步⻓是-1. 这时就从右往左取值了print(s12[:]) # 原样输出 "Alex是个教师"print(s12[::2])  # 打印出"是Ae是教", 从0取到尾,每2个取1个字符

3字符串的常用相关操作⽅法

4 字符大小写

4.1 capitalize 首 字母大写
s = "alex is not a good man! Tory is a good man"s1 = s.capitalize()  # 首字母大写print(s1) #打印出来是"Alex is not a good man! tory is a good man"
4.2 upper 全部转换成⼤写
  • (忽略大小写的时候用,例 : 验证码) 例 ; s1
4.3 lower 全部转换成⼩写
  • (忽略大小写的时候用,例 : 验证码) 例 ; s2
4.4 swapcase ⼤⼩写互相转换
  • 例 ; s3
4.5 casefold 全部转换成⼩写
  • 和 lower 的区别: lower 有些字种不支持(转换不了), casefold 支持更广的字种 例 ; s2
4.6 title 每个隔开的首字母大写
  • 每个被特殊字符隔开的字⺟⾸字⺟⼤写, 首字母大写之后的转为小写 (下划线. 空格及其他) 例 print(s.title())
s = "alex is not a good man! Tory is a good man"s1 = s.upper() # 全部转换成⼤写s2 = s.lower()s3 = s.swapcase()print(s1) #打印出来是"ALEX IS NOT A GOOD MAN! TORY IS A GOOD MAN"print(s2) #打印出来是"alex is not a good man! tory is a good man"print(s3) #打印出来是"ALEX IS NOT A GOOD MAN! tORY IS A GOOD MAN"print(s.title())   #打印出来是"Alex Is Not A Good Man! Tory Is A Good Man"

5 切割

5.1 center 扩充单位
s = "刘伟"s1 = s.center(4,"*") # 把字符串拉长成4个单位 用*扩充print(s1)  打印结果"*刘伟*"
5.2 strip 去空格 (常用)
  • 去掉左右两端空白,中间空白不去除 (用户输入内容都要去空白) ( '\n'是换行符,'\t'是tab制表符)
  • 能同时去掉(空白 . 空格. \n .\t . white space )
  • rstrip() 去掉右边空格 lstrip() 去掉左边空格
s = " \t       你好啊. 我叫赛利亚       "print(s)   # 打印结果"             你好啊. 我叫赛利亚       "s1 = s.strip() # 去掉空白print(s1)  # 打印结果"你好啊. 我叫赛利亚"s7 = "abcdefgabc"print(s7.strip("abc")) # defg 也可以指定去掉的元素

扩展

import stringi = "Hello, how ? are, daddy's you ! "a = i.translate(str.maketrans('', '', string.punctuation))print(a)# 打印结果  Hello how  are daddys you
5.3 replace(old, new) 字符串替换 (常用)
s = "alex_wusir_ritian_taibai_evaj_eggon"s1 = s.replace("taibai", "taihei")s2 = s.replace("i", "SB", 2)   # 把i替换成SB, 替换2个 按从左向右的顺序print(s1)  # 打印结果alex_wusir_ritian_taihei_evaj_eggonprint(s2)  # 打印结果alex_wusSBr_rSBtian_taibai_evaj_eggon
5.4 split() 切割 (常用) 把字符串转化为列表
5.5 join() 加入 split的逆反 把列表转化为字符串 ,也可以遍历字符串
join 是遍历(迭代)方式添加li = ["李嘉诚", "麻花藤", "⻩海峰", "刘嘉玲"]s = "_".join(li)  print(s)li = "⻩花⼤闺⼥"s = "_".join(li)print(s)   # 打印结果 李嘉诚_麻花藤_⻩海峰_刘嘉玲
  • 打印结果是list(列表)
s9 = "alex,wusir,sylar,taibai,eggon"lst = s9.split(",") # 字符串切割, 根据,进⾏切割print(lst)  #打印结果 ['alex', 'wusir', 'sylar', 'taibai', 'eggon']#坑s11 = "银王哈哈银王呵呵银王吼吼银王"lst = s11.split("银王") # 如果切割符在左右两端. 那么⼀定会出现空字符串.深坑请留意print(lst)  #打印结果  ['', '哈哈', '呵呵', '吼吼', '']

6 查找

6.1 startswith()
  • 判断是否以xxx开头 输出结果为 True or False
6.2 endtswith()
  • 判断是否以xxx结尾 输出结果为 True or False
6.3 count("a")
  • 统计
  • 查找"a"出现的次数
6.4 find("sylar")
  • 查找'sylar'出现的位置 ( 如果没有返回-1)
6.5 index()
  • 求索引位置. 注意. 如果找不到索引. 程序会报错
6.6 isindex
  • 找到大写首字母

以上格式一样

s13 = "我叫sylar, 我喜欢python, java, c等编程语⾔."ret1 = s13.startswith("sylar") # 判断是否以sylar开头print(ret1)  # 打印结果 False

7格式化输出

# 格式化输出s12 = "我叫%s, 今年%d岁了, 我喜欢%s" % ('sylar', 18, '周杰伦') # 之前的写法print(s12)s12 = "我叫{}, 今年{}岁了, 我喜欢{}".format("周杰伦", 28, "周润发") # 按位置格式化print(s12)s12 = "我叫{0}, 今年{2}岁了, 我喜欢{1}".format("周杰伦", "周润发", 28) # 指定位置print(s12)s12 = "我叫{name}, 今年{age}岁了, 我喜欢{singer}".format(name="周杰伦", singer="周润发", age=28) # 指定关键字print(s12)

8条件判断

8.1 isalnum 是否由字⺟和数字组成
8.2 isalpha 是否由字⺟和中文 组成 (常用)
8.3 isdigit 是否由数字组成, 不包括⼩数点
8.4 isnumeric 是否由数字组成, 不包括⼩数点
  • (这个⽐较⽜B. 中⽂都识别)
  • 输出结果都是 True or False
8.5 isdecimal 判断是不是十进制 用它来判断是不是阿拉伯数字
s14 = "123.16"s15 = "abc"s16 = "_abc!@"print(s14.isalnum())print(s14.isalpha())print(s14.isdecimal())

9 计算字符串的⻓度 len

  • len() 求长度. 内置函数
  • (注意: len()是python的内置函数. 所以访问⽅式也不⼀样. 你就记着len()和print()⼀样就⾏了)
s18 = "我是你的眼, 我也是a"ret = len(s18) # 计算字符串的⻓度print(ret)   # 打印结果 11

10 迭代 for

存储类型的集合,如list , dict , tuple , set et: 在迭代时,不容许里面的元素位置发生改变,如需改变里面的数据,需用其他存储数据转移迭代对象

  • 字典在循环的时候可以修改,但不能删除

我们可以使⽤for循环来便利(获取)字符串中的每⼀个字符:

  • in有两种⽤法:
  1. 在for中. 是把每⼀个元素获取到赋值给前⾯的变量.
  2. 不在for中. 判断xxx是否出现在str中
for循环    for 变量 in 可迭代对象:         循环体(break, continue)    else:        当循环结束的时候执行else
# for 与 while 语句 对比:(各有利弊)#  while : (循环. 死循环 .有索引)s = "朱元璋朱棣12345"count = 0while count < len(s): # 遍历字符串的第一种办法    print(s[count])    count = count + 1# for : (没有索引)s = "朱元璋朱棣12345"for count in s:    print(count)  # 打印出结果是遍历变量"s"例的元素print(count) ### 打印出变量最后一个元素(面试大坑)
s = "朱元璋朱棣12345"for c in s:     # 遍历字符串的第二种办法    print(c)

for 语句 可以 以 else语句收尾 , else 语句可以打印出来

s="321"for c in s :    print("倒计时%s秒"%(c))else:    print("出发!")# 倒计时3秒# 倒计时2秒# 倒计时1秒# 出发!

扩展: pass 和 ... 都是占位符

扩展:

用for 或者 while 便利元素,如果不想便,print(便利,end = ""),这样会打印出横向的

pint内运算会出现换行符

s = "123"for i in s:    print(i) # 打印出结果是纵向的"1""2""3"    print(i) # 打印出结果是横向的"123"

转载于:https://www.cnblogs.com/fanxss/p/10977466.html

你可能感兴趣的文章
MyEclipse下XFire开发Webservice实例
查看>>
杭电 1421 搬寝室
查看>>
UVA 12075 - Counting Triangles(容斥原理计数)
查看>>
唯品会的一些工作总结
查看>>
vs 2017 community中文版下载地址
查看>>
爬取校园新闻首页的新闻
查看>>
Windows 下 MySql 5.7.20安装及data和my.ini文件的配置(转)
查看>>
shopex模板编辑说明文档
查看>>
Python 黑魔法(持续收录)
查看>>
ZOJ 3891 K-hash
查看>>
一个TensorFlow例子
查看>>
Java 设计模式之单例
查看>>
PAT 1076
查看>>
Mybatis(1) 创建Mybatis HelloWorld
查看>>
Ubuntu包管理命令 dpkg、apt和aptitude
查看>>
给刚通过51入门的新人讲讲S12(MCS12XS128)与51的差别
查看>>
使用命令xrandr设置当前系统的显示分辨率及显示的旋转脚本
查看>>
redis CONFIG REWRITE介绍
查看>>
第一次作业
查看>>
WPF 仿IPhone滑块开关 样式 - CheckBox
查看>>