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、字符串格式化
符 号 | 描述 |
---|---|
%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----标准数据类型的更多相关文章
- 二.Python基础语法和数据类型
Python第二节 基础语法和数据类型 Python编码 python3默认情况下源码文件以UTF-8编码, 字符串均为unicode字符串.同时也可以通过# -*- coding: cp-1252 ...
- Python基础语法和数据类型最全总结
摘要:总结了Python最全基础语法和数据类型总结,一文带你学会Python. 本文分享自华为云社区<Python最全基础语法和数据类型总结>,原文作者:北山啦 . 人生苦短,我用Pyth ...
- Python基础(2) - 动态数据类型
Python是一门强类型语言,单定义变量时不需要制定类型. C#这样定义变量: ; VB这样定义变量: Python不需要制定类型,给变量赋什么类型的值,它就是什么类型.(穿神马就是神马?) > ...
- python基础(9):基本数据类型四(set集合)、基础数据类型补充、深浅拷贝
1. 基础数据类型补充 li = ["李嘉诚", "麻花藤", "⻩海峰", "刘嘉玲"] s = "_&qu ...
- Python基础_python的数据类型
一.Python 的标准数据类型 二.以下单个实际举例分析数据类型 2.1 python的数字类型 Int:整型,Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python ...
- python基础之常用数据类型和字符串
一.数据类型 在python3中有六大标准数据类型:Numbers(数字).String(字符串).List(列表).Tuple(元组).Sets(集合).Dictionaries(字典). 其中: ...
- python基础知识之数据类型
一.与用户的交互 古时候,我们去银行取钱,需要有一个银行业务员等着我们把自己的账号密码输入给他, 然后他去进行验证,成功后,我们再将取款金额输入/告诉他 骄傲的现代人,会为客户提供一台ATM机(就是一 ...
- python基础二(基本数据类型)
python的基本数据类型:数字.字符串.列表.元祖.字典.集合 一.基本数据类型 1.1 数字int 数字主要是用来计算用的,使用方法并不多. # bit_length() 当十进制用二进制表示的时 ...
- python 基础之python的六大标准数据类型
一:Number 数字类型(int float bool complex) 1.整型: (正整数 0 负整数)#(1)二进制用0b表示intvar = 0b1010print(intvar)pr ...
随机推荐
- 使用vue2.0创建的项目的步骤
1.由于vue项目依赖 node.js npm 需要先安装. 若没有请先安装,请百度 //检查是否有node.js npm vue win+r 输入cmd 输入node -v 回车 会出 ...
- Node.js NPM Tutorial
Node.js NPM Tutorial – How to Get Started with NPM? NPM is the core of any application that is devel ...
- JavaScript实现队列结构
参考资料 一.什么是队列结构? 1.1.简介 队列(Queue),类似于栈结构,但又和栈结构不同 是一种运算受限的线性表,受限之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rea ...
- Robot Framework(1)- 入门介绍
如果你还想从头学起Robot Framework,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1770899.html RF 的介绍 R ...
- 远程快速安装redis和远程连接
一.安装redis 1.设置redis的仓库地址, 执行命令: yum install epel-release 出现下图即设置成功 2.安装redis 执行命令如下: yum insta ...
- vue-cli3的eslint配置问题
vue-cli3按照官网教程配置搭建后,发现每次编译,eslint都抛出错误 error: Expected indentation of 4 spaces but found 0 (indent) ...
- Java中的集合类型体系(一)
Java中的集合类型体系(一) 提问:为什么需要集合? 通常情况下,程序需要根据运行时才知道创建了多少对象.若非程序运行时,而在开发阶段,我们并不知道创建了多少对象,甚至不知道对象的准确类型,为了满足 ...
- AUTOSAR-软件规范文档阅读
https://mp.weixin.qq.com/s/Jzm9oco-MA-U7Mn_6vOzvA 基于AUTOSAR_SWS_CANDriver.pdf,Specification of CAN ...
- python3 pymysql查询结果包含字段名
python2使用MySQLdb模块进行连接mysql数据库进行操作:python3则使用pymysql模块进行连接mysql数据库进行操作:两者在语法上有稍微的差别,其中就包括查询结果包含字段名,具 ...
- (Java实现) 有重复元素排列问题
有重复元素的排列问题 [问题描述] 设R={ r1, r2 , -, rn}是要进行排列的n个元素.其中元素r1, r2 , -, rn可能相同.试设计一个算法,列出R的所有不同排列. [编程任务] ...