一、标准数据类型

在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、字符串格式化

  符   号 描述
      %c  格式化字符及其ASCII码
      %s  格式化字符串
      %d  格式化整数
      %f  格式化浮点数字,可指定小数点后的精度

例如:

   

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))

运行结果:

python基础003----标准数据类型的更多相关文章

  1. 二.Python基础语法和数据类型

    Python第二节 基础语法和数据类型 Python编码 python3默认情况下源码文件以UTF-8编码, 字符串均为unicode字符串.同时也可以通过# -*- coding: cp-1252 ...

  2. Python基础语法和数据类型最全总结

    摘要:总结了Python最全基础语法和数据类型总结,一文带你学会Python. 本文分享自华为云社区<Python最全基础语法和数据类型总结>,原文作者:北山啦 . 人生苦短,我用Pyth ...

  3. Python基础(2) - 动态数据类型

    Python是一门强类型语言,单定义变量时不需要制定类型. C#这样定义变量: ; VB这样定义变量: Python不需要制定类型,给变量赋什么类型的值,它就是什么类型.(穿神马就是神马?) > ...

  4. python基础(9):基本数据类型四(set集合)、基础数据类型补充、深浅拷贝

    1. 基础数据类型补充 li = ["李嘉诚", "麻花藤", "⻩海峰", "刘嘉玲"] s = "_&qu ...

  5. Python基础_python的数据类型

    一.Python 的标准数据类型 二.以下单个实际举例分析数据类型 2.1 python的数字类型 Int:整型,Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python ...

  6. python基础之常用数据类型和字符串

    一.数据类型 在python3中有六大标准数据类型:Numbers(数字).String(字符串).List(列表).Tuple(元组).Sets(集合).Dictionaries(字典). 其中: ...

  7. python基础知识之数据类型

    一.与用户的交互 古时候,我们去银行取钱,需要有一个银行业务员等着我们把自己的账号密码输入给他, 然后他去进行验证,成功后,我们再将取款金额输入/告诉他 骄傲的现代人,会为客户提供一台ATM机(就是一 ...

  8. python基础二(基本数据类型)

    python的基本数据类型:数字.字符串.列表.元祖.字典.集合 一.基本数据类型 1.1 数字int 数字主要是用来计算用的,使用方法并不多. # bit_length() 当十进制用二进制表示的时 ...

  9. python 基础之python的六大标准数据类型

    一:Number 数字类型(int  float  bool  complex) 1.整型: (正整数 0 负整数)#(1)二进制用0b表示intvar = 0b1010print(intvar)pr ...

随机推荐

  1. 使用vue2.0创建的项目的步骤

    1.由于vue项目依赖 node.js npm 需要先安装.   若没有请先安装,请百度 //检查是否有node.js  npm vue win+r   输入cmd  输入node -v  回车 会出 ...

  2. Node.js NPM Tutorial

    Node.js NPM Tutorial – How to Get Started with NPM? NPM is the core of any application that is devel ...

  3. JavaScript实现队列结构

    参考资料 一.什么是队列结构? 1.1.简介 队列(Queue),类似于栈结构,但又和栈结构不同 是一种运算受限的线性表,受限之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rea ...

  4. Robot Framework(1)- 入门介绍

    如果你还想从头学起Robot Framework,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1770899.html RF 的介绍 R ...

  5. 远程快速安装redis和远程连接

    一.安装redis    1.设置redis的仓库地址, 执行命令: yum install epel-release    出现下图即设置成功 2.安装redis 执行命令如下: yum insta ...

  6. vue-cli3的eslint配置问题

    vue-cli3按照官网教程配置搭建后,发现每次编译,eslint都抛出错误 error: Expected indentation of 4 spaces but found 0 (indent) ...

  7. Java中的集合类型体系(一)

    Java中的集合类型体系(一) 提问:为什么需要集合? 通常情况下,程序需要根据运行时才知道创建了多少对象.若非程序运行时,而在开发阶段,我们并不知道创建了多少对象,甚至不知道对象的准确类型,为了满足 ...

  8. AUTOSAR-软件规范文档阅读

    https://mp.weixin.qq.com/s/Jzm9oco-MA-U7Mn_6vOzvA   基于AUTOSAR_SWS_CANDriver.pdf,Specification of CAN ...

  9. python3 pymysql查询结果包含字段名

    python2使用MySQLdb模块进行连接mysql数据库进行操作:python3则使用pymysql模块进行连接mysql数据库进行操作:两者在语法上有稍微的差别,其中就包括查询结果包含字段名,具 ...

  10. (Java实现) 有重复元素排列问题

    有重复元素的排列问题 [问题描述] 设R={ r1, r2 , -, rn}是要进行排列的n个元素.其中元素r1, r2 , -, rn可能相同.试设计一个算法,列出R的所有不同排列. [编程任务] ...