python基础003----标准数据类型

一、标准数据类型

         在python中,只要定义了一个变量,而且它有数据,那么它的类型就已经确定了,不需要开发者主动去说明它的类型,系统会自动识别。可以用type(变量名)来查看变量的类型。常见的变量类型如下:

                                  

Python3 的六个标准数据类型中:

    • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
    • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

 

二、变量的赋值方式

  •   传统赋值:name="geqian"-------注:变量在使用前必须先"定义"(即赋予变量一个值),否则会出现错误
  •   链式赋值:name=user="geqian"
  •   序列解包赋值:name,age="geqian",20    -----注意:两边的常量和变量要对等。

 

三、数字数据类型

1、Python 支持三种不同的数值类型:

  • 整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。可以使用十六进制和八进制来代表整数。如:number = 0xA0F # 十六进制
  • 浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
  • 复数( (complex)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

注:数据类型是不允许改变的,如果改变数字数据类型的值,将重新分配内存空间。

2、数字类型转换

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。

  • int(x) 将x转换为一个整数。

  • float(x) 将x转换到一个浮点数。

  • complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。

  • complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。

查看数据类型使用type(变量名),也可通过运算改变数字类型。如:type(3/2)

3、数字类型运算

              

                   

 注不同类型的数混合运算时会将整数转换为浮点数

             

4、常见数

函数返回值 ( 描述 )
abs(x) 返回数字的绝对值,如abs(-10) 返回 10
exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,...) 返回给定参数的最大值,参数可以为序列。
min(x1, x2,...) 返回给定参数的最小值,参数可以为序列。
pow(x, y) x**y 运算后的值。
round(x [,n])

返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。

其实准确的说是保留值将保留到离上一位更近的一端。

sqrt(x) 返回数字x的平方根。

四、字符串类型

1、字符串类型概述

 (1)引号

        通常使用引号( ' 或 " )来创建字符串。单引号和双引号都是字符串的标准格式,只是为了区分英语中的一些语义。python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。如下:

                                     

 

 (2)访问字符串中的值

        Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。Python 访问子字符串,可以使用方括号来截取字符串。如下:

                                      

  2、转义字符

       python用反斜杠(\)转义字符,将字符串中的具有特殊含义的字符的特殊含义取消掉和续行。

                                      

 3、字符串格式化

                                    

例如:

   

 

4、f-String格式化 

    f-string 是 python3.6 之后版本添加的,f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例如下:

                  

      在 Python 3.8 的版本中可以使用 = 符号来拼接运算表达式与结果:

                  

 

5、字符串内建函数

(1)查找

 

代码实例:

string_test='hello world'
#查找
print("o的个数为:",string_test.count('o',0,len(string_test)))  #len(string_test)判断字符串的长度
print("o的个数为:",string_test.count('o'))       #指定首尾位置可省略
print("第一个o的索引为:",string_test.find('o',0,len(string_test)))
print("从右边查找第一个o的索引为:",string_test.rfind('o',0,len(string_test)))
print("index查找第一个o的索引为:",string_test.index('o',0,len(string_test)))
print("index从右边查找第一个o的索引为:",string_test.rindex('o',0,len(string_test)))
print("index与find的不同点:find查询不到时返回-1",string_test.find('a',0,len(string_test)))
#print("index与find的不同点:index查询不到时,报异常",string_test.index('a',0,len(string_test)))

输出结果:

 

(2)分割和替换

 

 代码实例:

string_test='hello world'
#分割
print('以第一个l分割字符串为:',string_test.partition('l'))
print('以从右边开始第一个l分割字符串为:',string_test.rpartition('l'))
print('以l为分隔符截取字符串为:',string_test.split('l',string_test.count('l')),'-----截取后的元素列表中不包含l')
print('以不存在的字符串为分隔符截取字符串,不进行截取:',string_test.split('a',0))
str_test='welcome\n to\r my\r\n home\n'
print('按换行符分割,true保留换行符:',str_test.splitlines(True))   #注意True的大小写
print('按换行符分割,false不保留换行符,默认为false:',str_test.splitlines(False))
#替换
print('将字符串中的l替换成k:',string_test.replace('l','k'))
print('将字符串中的o替换成a,替换次数不超过2:',string_test.replace('l','k',2))

输出结果:

 

(3)字符串变形

 

 

 代码实例:

str3='hello Cherry,I am Alice! \t Nice to meet you in Street1908 !'
#变形
print('将字符串中的小写字母转换为大写:',str3.upper())
print('将字符串中的大写字母转换为小写:',str3.lower())
print('将字符串中的大小写字母互换:',str3.swapcase())
print('将字符串标题化--所有单词首字母大写:',str3.title())
print('将字符串首个字符大写:',str3.capitalize())
print('将字符串中的制表符换为空格,默认8个:',str3.expandtabs(50))

运行结果:

 

 (4)修饰

 

 

代码实例:

#修饰
str=' #hello# '
print('指定长度居中对齐,默认空格填充:',str.center(20))   #注意:如果传入的大小小于字符串长度,字符串不变
print('指定长度居中对齐,设置星号填充:',str.center(20,'*'))
print('指定长度左对齐,默认空格可设置:',str.ljust(20,'-'))
print('指定长度右对齐,默认空格可设置:',str.rjust(20,'='))
print('指定长度右对齐,默认零不可设置:',str.zfill(20))   #只能用0填充
print('删除字符串两边的空格,默认为空格:',str.strip())
print('删除字符串两边的h# ,可设置字符:',str.strip('h# '))  #只能删除首尾,不能删除中间的空格和字符
print('删除字符串右边的h# ,默认为空格:',str.rstrip('h# '))  #并非按字符串进行删除,而是按照字符一个一个删除
print('删除字符串左边的h# ,默认为空格:',str.lstrip('h# ')) str1='{}{}{} ' print('按照顺序将后面的参数传递给前面的大括号:',str1.format(str,str,str)) #参数个数要与大括号个数一致,否则报错

输出结果:

 

 

 

(5)判断

 

 

 代码实例:

#判断
str3='hello Cherry,I am Alice! \t Nice to meet you in Street1908 !'
print('判断字符串是否完全由字母或数字组成:',str3.isalnum())
print('判断字符串是否完全由字母组成:',str3.isalpha())
print('判断字符串是否完全由数字组成:',str3.isdigit())
print('判断字符串的字母是否都是大写:',str3.isupper())
print('判断字符串的字母是否都是小写:',str3.islower())
print('判断字符串是否标题化:',str3.istitle())
print('判断字符串是否全是空格:',str3.isspace())
print('判断字符串是否以hello开头',str3.startswith('hello'))  #可指定范围
print('判断字符串是否以Street1908结束',str3.endswith('!'))   #可指定范围

运行结果:

 

 6、字符串内建函数附录:

操作

字符串函数

函数描述

查找

count(str,beg=0,len(string))

返回 str 在 string 里面出现的次数,如果 beg 或者 end 有值则返回指定范围内 str 出现的次数

find(str, beg=0, len(string))

检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1

rfind(str, beg=0,len(string))

类似于find(),不过是从右边开始.

index(str,beg=0,len(string))

跟find()方法一样,只不过如果str不在字符串中会报一个异常.

rindex(str,beg=0, len(string))

类似于 index(),不过是从右边开始.

分割

partition(str)

将字符串以str分割成三部分:str前、str、str后

rpartition(str)

类似于partition (),不过是从右边开始.

splitlines([keepends])

按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符

split(str, string.count(str))

以 str 为分隔符截取字符串,如果 num= string.count(str) 有指定值,则仅截取 num+1 个子字符串。str不存在,则返回完整的元素列表。

替换

replace(old, new [, max])

将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。

变形

upper()

转换字符串中的小写字母为大写.

lower()

转换字符串中所有大写字符为小写.

swapcase()

将字符串中大小写互换

title()

返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写

capitalize()

将字符串的第一个字符转换为大写

expandtabs(tabsize=8)

把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8

修饰

center(width, fillchar)

返回一个指定的宽度居中的字符串,fillchar 为填充的字符,默认为空格。

ljust(width[, fillchar])

返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。

rjust(width,[, fillchar])

返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串

zfill (width)

返回长度为 width 的字符串,原字符串右对齐,前面填充0

format(str1,str2)

按照顺序将后面的参数传递给前面的大括号

strip([chars])

在字符串上执行 lstrip()和 rstrip()

rstrip()

删除字符串末尾的空格或指定字符.

lstrip()

删除字符串左边的空格或指定字符。

判断

isalnum()

如果字符串完全由字母或数字组成,则返回 True,否则返回 False

isalpha()

如果字符串完全由字母组成,则返回 True, 否则返回 False

isdigit()

如果字符串完全由数字组成,则返回 True 否则返回 False

isupper()

如果字符串中的字母都是大写,则返回 True,否则返回 False

islower()

如果字符串中的字母都是小写,则返回 True,否则返回 False

istitle()

如果字符串是标题化的,则返回 True,否则返回 False

isspace()

如果字符串中只包含空格,则返回 True,否则返回 False.

startswith(str, 0,len(string))

检查字符串是否以str 开头,是则返回 True。可检查指定范围内是否以str开始。

endswith(str,0, len(string))

检查字符串是否以str结束,是则返回 True。可检查指定范围内是否以str结束。

 

7、练习题

要求:

计算BMI(身体质量指数)=体重(公斤)/身高的平方(米)。当输入体重和身高时,可以计算BMI值,并判断体重等级。小于18.5,太轻;小于24,正常;大于等于24,肥胖。

代码实例:

#练习:计算BMI(身体质量指数)=体重(公斤)/身高的平方(米)
name=input('请输入你的名字:')
weight=input('请输入你的体重:')
high=input('请输入你的身高:')
BMI=float(float(weight)/(float(high)**2))
print('%s的身高质量指数为:%.2f'%(name,BMI))
if BMI <18.5:
    print('%s,你的体重太轻了,要认真吃饭哦'%(name))
elif BMI <24:
    print('%s,你的体重正常,真的是魔鬼身材,要好好保持哦!'%(name))
else:
    print('%s,你的体重超标了,该减肥了哈哈!'%(name))

运行结果:

 

posted @ 2020-05-30 17:15  搁浅的青木儿  阅读(291)  评论(0编辑  收藏  举报