
Python基础数据类型(int,str,bool)、格式化输出、程序交换
捕翼
于 2020-07-28 21:29:14 发布
2179
  收藏 3
 分类专栏: Python3.6.5
 版权
Python3.6.5
 专栏收录该内容
 33 篇文章0 订阅
 订阅专栏
 文章目录
 一、程序交互
 二、格式化输出
 数据类型:
 三、整数类型(int)
 四、字符串类型(str)
 五、布尔值类型(bool)
 一、程序交互
 name = input("please input your username : ")  #input输入的内容是字符串,若要整型或其他数据类型,则需要做相应的转换!!
 age = input("please input your age : ")
 hometown = input("please input your hometown : ")
 print("Hello ",name+'!!!',"\nyou have ", age , "years old", "\nyou came from",hometown)
 # please input your username : 山药
 # please input your age : 18
 # please input your hometown : 武当山
 # Hello  山药!!! 
 # you have  18 years old 
 # you came from 武当山
 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 二、格式化输出
 # 将用户的姓名、年龄、工作、爱好 ,然后打印成以下格式
 ------------ info of 山药  -----------
 Name  : 山药
 Age   : 22
 job   : 制作山药
 Hobby: beautiful and sex girl
 ------------- end -----------------
#只需要把要打印的格式先准备好, 由于里面的 一些信息是需要用户输入的,你没办法预设知道,因此可以先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系就Ok
 name = input('Name:')
 age = int(input('Age:'))
 job = input('Job:')
 hobbie = input('Hobbie:')
info = '''
 -------------------info of %s ------------------- # 这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name
 Name    :   %s
 Age     :   %d  #%d,是数字占位符
 Job     :   %s
 Hobbie  :   %s
 -------------------end--------------------------- # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来
 ''' % (name,name,age,job,hobbie)
 print(info)
 #结果:
 Name:山药
 Age:18
 Job:制作山药
 Hobbie:beautiful and sex girl
-------------------info of 山药 -------------------
 Name    :   山药
 Age     :   18
 Job     :   制作山药
 Hobbie  :   beautiful and sex girl
 -------------------end---------------------------
# 想在一条语句中的60%就是表示60%而不是占位符:
 msg = "我是%s,年龄%d,目前制作山药的进度是99%%" %('山药',18)
 print(msg)
 # result:
 # 我是山药,年龄18,目前制作山药的进度是99%
 # 第一个%是对第二个%的转译,告诉Python解释器这只是一个单纯的%,而不是占位符
1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 数据类型:
 就是对常用的各种数据类型进行了明确的划分,帮助计算机区分数字与字符等等
Python基本数据类型一般分为:数字、字符串、列表、元组、字典、集合这六种基本数据类型。
   其中数字又包含整型(整型又包括标准整型、长整型(Python2.7及之前版本有))、浮点型、复数类型、布尔型(布尔型就是只有两个值的整型)、这几种数字类型。列表、元组、字符串都是序列。
三、整数类型(int)
 在32位机器上,整数的位数为32位,取值范围为-231~231-1,即-2147483648~2147483647
 在64位系统上,整数的位数为64位,取值范围为-263~263-1,即-9223372036854775808~9223372036854775807
int操作方法
数字主要是用于计算,所以针对于数字可以使用的方法除了那些运算之外,没有什么经常会用的方法,python给咱们提供了一种方法:bit_length()--------->快速的计算整数在内存中占用的二进制码的长度.
num = 16
 print(num.bit_length()) #用十进制用二进制表示时,最少使用的位数
 #返回 5
 1
 2
 3
 四、字符串类型(str)
 在Python中,加了引号的字符都是字符串类型,组成字符串的每个元素称之为字符,将这些字符一个一个连接起来,然后在用引号起来就是字符串。
s1 = '中国nb'
 # 对于s1这个字符串来说,它由四个字符组成:中, 国, n, b。
 1
 2
 1.单引号、双引号、三引号都行,单双引号可以结合使用,但是要注意配套使用
a = 'abc'
 b = "oiu"
 c = 12
 msg = '''    #去掉msg = 则表示注释!!
 aaaaaaaaaaa
 bbbbbbbbbbb
 ccccccccccc
 '''
 subject = "I'm study Python"
 1
 2
 3
 4
 5
 6
 7
 8
 9
 2.字符串拼接
注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接
subject = "I'm study Python"
 teacher = "Teacher is Jack"
 add = subject+','+teacher  #  +就是连接起来
 print(add)
 #返回I'm study Python,Teacher is Jack
subject = "I'm study Python\t"
 print(subject*3)   #相乘其实就是复制自己多少次,再拼接在一起
 #返回I'm study Python    I'm study Python    I'm study Python    
 1
 2
 3
 4
 5
 6
 7
 8
 9
 3.字符串的索引与切片
组成字符串的字符从左至右,依次排列(从零开始) :0,1,2,3…
 索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推
a = 'ABCDEFGHIJK'
 print(a[0])  # A
 print(a[3])  # D
 print(a[5])  # F
 print(a[7])  # H
 1
 2
 3
 4
 5
 切片就是通过索引(索引:索引(取不到):步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)
a = 'ABCDEFGHIJK'
 print(a[0:3])  # 相当于print(a[:3]) 从开头开始取,0可以默认不写  ABC
 print(a[2:5])  # 取第二个到第五个的元素,不包括第五个元素   CDE
 print(a[:])    # 开头到最后  ABCDEFGHIJK
 print(a[:-1])  # -1 是列表中最后一个元素的索引,但是要满足顾头不顾腚的原则,所以取不到K元素 ABCDEFGHIJ
 print(a[:5:2]) # 加步长 ACE
 print(a[-1:-5:-2]) # 反向加步长 KI
 1
 2
 3
 4
 5
 6
 7
 4.字符串常用方法
# 统计字符串中的元素出现的个数 count()
 str1 = 'abcdabcdabcd'
 sum1 = str1.count('a') 
 sum2 = str1.count('a',4,-1) # 支持切片操作
 print(sum1)   # 3
 print(sum2)   # 2
# startswith 判断是否以...开头;endswith 判断是否以...结尾
 str1 = 'abcdabcdabcdefghijklmnopqrstuvwxyz'
 judge = str1.startswith('a')
 print(judge) # 返回的是bool值 True
 judge1 = str1.startswith('b',1,-1)  # 支持切片操作
 print(judge1) # True
 judge2 = str1.startswith('bcd',1,7) # 多个字符也行
 print(judge2) # True
 judge3 = str1.endswith('yz',-1,-3)
 print(judge3) # False
 judge4 = str1.endswith('z',-1)
 print(judge4) # True
 judge5 = str1.endswith('cda',2,5)
 print(judge5) # True
 judge6 = str1.endswith('y',0,-1)
 print(judge6) # True
#split 以什么分割,最终形成一个列表此列表不含有这个分割的元素
 # 默认按照空格分隔,,包括\n \t,返回一个列表
 s1 = '山药 枸杞 韭菜'
 s2 = s1.split()
 print(s2)  # ['山药', '枸杞', '韭菜']
s1 = '山药   \t 枸杞  \n韭菜'
 s2 = s1.split()
 print(s2)  # ['山药', '枸杞', '韭菜']
s1 = '山药:枸杞:韭超'
 s2 = s1.split(':')
 print(s2) # ['山药', '枸杞', '韭菜']
s1 = '山药 枸杞 韭超'
 s2 = s1.split(':')
 print(s2) # ['山药 枸杞 韭超'] 错误的示范,变成了一个字符串
s1 = 'title,Tilte,atre,'.split('t')
 print(s1)   # ['', 'i', 'le,Til', 'e,a', 're,']
 s11 = 'title,Tilte,atre,'.rsplit('t',1)   #从字符串最后面开始分割,1是分割次数
 print(s11)  # ['title,Tilte,a', 're,']
# join  合并
 s1 = 'alex'
 s2 = "+".join(s1)
 print(s2,type(s2))  # a+l+e+x <class 'str'>
 l1 = ['山药','枸杞','韭菜'] # 列表里面的元素必须都是str类型
 s3 = ':'.join(l1)
 print(s3)  # 山药:枸杞:韭菜
#strip: 默认去除空白:空格,\t \n,还可以指定字符去除
 name='*barry**'
 print(name.strip('*'))    # barry
 print(name.lstrip('*'))   # barry** 去除左边的*
 print(name.rstrip('*'))   # *barry  去除右边的**
s = '  \nysx\t'
 print(s)  # ysx  ysx的上面会有一行,后面会有一个\t
 print(s.strip()) # ysx 
 s1 = 'rre中r国qsd' 
 s2 = s1.strip('reqsd')   # 中文字符中间的英文字母去除不了
 print(s2)  # 中r国
#replace
 name='Jack say: I have one tesla,my name is Jack'
 print(name.replace('Jack','2B',)) # 2B say: I have one tesla,my name is 2B 默认全部替换
 name='Jack say: I have one tesla,my name is Jack'
 print(name.replace('Jack','2B',1)) # 2B say: I have one tesla,my name is Jack 指定替换次数
#is系列
 name='huangmenji123'
 print(name.isalnum())   # 字符串由字母或数字组成
 print(name.isalpha())   # 字符串只由字母组成
 print(name.isdecimal()) # 字符串只由十进制组成
 eg:
 s1 = input('请输入您的金额:')
 if s1.isdecimal():
     print('您的金额为:',s1)
 else:
     print('输入有误')
 # 请输入您的金额:983798
 # 您的金额为: 983798
 # 请输入您的金额:skdjf
 # 输入有误
#captalize,swapcase,title
 name = 'abcDeFg'
 print(name.capitalize()) # 首字母大写,其它大写变为小写  Abcdefg
 print(name.swapcase())   # 大小写翻转   ABCdEfG
 msg='shangyao say hi'
 print(msg.title()) #每个单词的首字母大写  Shangyao Say Hi
# center 居中,总长度,空白处填充
 a1 = 'aaaaaaaa'
 ret = a1.center(20,"*")
 print(ret)   # ******aaaaaaaa******   20个字符
# find index 寻找字符串中的元素是否存在
 a2 = 'abcdefghijklmn'
 ret = a2.find("bcde",1,6)
 print(ret)  # 返回的找到的元素的索引,如果找不到返回-1  1
 ret1 = a2.index("ef",4,6)
 print(ret1) # 返回的找到的元素的索引,找不到报错。      4
 五、布尔值类型(bool)
 布尔值就两种:True,False。就是反映条件的正确与否。主要用来逻辑判断
真 1 True。
 假 0 False。
# int str bool 三者数据类型之间的转换
 # int ---> bool
 i = 100
 print(bool(i))  # True  # 非零即True
 i1 = 0
 print(bool(i1))  # False 零即False
# bool ---> int
 t = True
 print(int(t))  # 1  True --> 1
 t = False
 print(int(t))  # 0  False --> 0
# int -----> str
 i1 = 100
 str1 = str(i1)
 print(str1,type(str1))
# str ------>int
 s1 = '6666666'
 print(int(s1))  # 6666666
# bool ----> str
 print(str(True))   # True
 print(str(False))  # False
# str ---> bool
 # str -----> bool
 s1 = '山药'
 s2 = ''
 s3 = None
 print(bool(s1)) # True   非空即True
 print(bool(s2)) # False
 print(bool(s3)) # False
 原文链接:https://blog.csdn.net/qq_44788449/article/details/107645690



















