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