Python基础数据类型(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 武当山

二、格式化输出

# 将用户的姓名、年龄、工作、爱好 ,然后打印成以下格式
------------ 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解释器这只是一个单纯的%,而不是占位符

数据类型:

就是对常用的各种数据类型进行了明确的划分,帮助计算机区分数字与字符等等

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

四、字符串类型(str)

在Python中,加了引号的字符都是字符串类型,组成字符串的每个元素称之为字符,将这些字符一个一个连接起来,然后在用引号起来就是字符串。

s1 = '中国nb'
# 对于s1这个字符串来说,它由四个字符组成:中, 国, n, b。

1.单引号、双引号、三引号都行,单双引号可以结合使用,但是要注意配套使用

a = 'abc'
b = "oiu"
c = 12
msg = '''    #去掉msg = 则表示注释!!
aaaaaaaaaaa
bbbbbbbbbbb
ccccccccccc
'''
subject = "I'm study Python"

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	

3.字符串的索引与切片

组成字符串的字符从左至右,依次排列(从零开始) :0,1,2,3…
索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推

a = 'ABCDEFGHIJK'
print(a[0])  # A
print(a[3])  # D
print(a[5])  # F
print(a[7])  # H

切片就是通过索引(索引:索引(取不到):步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)

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

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

猜你喜欢

转载自blog.csdn.net/qq_44788449/article/details/107645690