python小白入门第二课-标识符数据类型字符串方法
一、标识符
定义:标识符就是一个名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。就好像我们人一样,需要起个名字,便于称呼、指代。
1、变量就是标识符的一种
2、标识符:只要是在python当中你自己命名的都是标识符。
3、标识符:变量,项目名,包名(文件夹), 模块名(文件),函数名,类名。
4、标识符的命名规范:
a.标识符是由字母(A–Z 和 a–z)、下划线和数字组成。如果标识符中出现除了这 3 类字符之外的其他字符,就肯定是不合法标识符。
b.标识符的第一个字符不能是数字。
c.标识符不能和 Python 关键字相同。
d.标识符中的字母是严格区分大小写的。
e.以下划线开头的标识符有特殊含义,除非特定场景需要,应避免使用以下划线开头的标识符。
f.标识符可以是汉字。但我们应尽量避免使用汉字作为标识符,这会避免遇到很多没必要的错误。
5、虽然支持中文标识符,但是不要用。
例如:name = 'yanli'
名字 = 'yanlizheng'
print(名字)
6、python其他命名规则(参考)
a.函数名、类中属性名、类中的方法名:全部使用小写字母,多个字母之间可用下划线_分隔,例如user_age、user、book_num等。
b.常量名:全部使用大写字母,多个字母之间可用下划线_分隔,例如DEF_NUMBER、AGE、YEAR等。
c.类名:单词首字母大写,例如User、Book、Blog等。
d.包名:应尽量简短,全部使用小写字母,多个字母间可用.分隔,例如com.baidu、com.python、net.csdn.editor等。
e.模块名:应尽量简短,全部使用小写字母,多个字母间可用下划线_分隔,例如 user_login、game_login、book_name等。
二、数据类型
1、type() 获取某个数据的数据类型
print(type(3)) <class ‘int’>
print(type('3')) <class ‘str’>
print(type(True)) <class ‘bool’>
print(type(None)) <class ‘NoneType’>
print(type([])) <class ‘list’>
print(type(())) <class ‘tuple’>
print(type(1+2j)) <class ‘complex’>
2、数据类型的转化
number = 3print(number)#3print(type(number))#<class 'int'>number_str = str(number) #int转化成字符串print(number_str)#3print(type(number_str))#<class 'str'>number_float=float(number) #int转换成floatprint(number_float)#3.0print(type(number_float))#<class 'float'>
3、字符串的引号只是我们在编写代码的时候表示字符串,计算机显示出来没有引号
print("人生苦短,我学python")
输出:人生苦短,我学python
4、两个不同的数据类型是不是可以随意转化?有些类型不可以相互转换
c = int("5")#字符串转换成整型print(c)print(type(c))
d = int('3.0')#浮点型不可以转换成整型print(d)
5、基本上:任意数据类型可以转成字符串
a=678 #a为intb=[1,2,3] #b为listprint(type(a),type(b))#打印出a、b的数据类型print(type(str(a))) #a由int变为strprint(type(str(b))) #b由list变为str
三、字符串表示
1、数据左右两边带有 '数据', "数据", """数据""" , '''数据'''
#单引号dalao = '星星'print(dalao)#双引号dalao = "simple"print(dalao)#三双引号dalao = """紫云"""print(dalao)#三单引号dalao = '''紫云'''print(dalao)
3、\ 不是换行,是拼接
lines = '第一行'\'第二行'print(lines) # 第一行第二行
4、三引号表示多行字符串
#输出保持格式lines = """第一行第二行"""print(lines)
5、\n 表示换行符 \t在需要在字符中使用特殊字符时,python 用反斜杠 \ 转义字符。常用转义字符如下表:
(在行尾时) |
续行符 |
\\ |
反斜杠符号 |
\' |
单引号 |
\" |
双引号 |
\a |
响铃 |
\n |
换行 |
\t |
横向制表符 |
\r |
回车 |
\b |
退格 |
\f |
换页 |
lines = '第一行\t第二行' print(lines) # 第一行 第二行lines1 = '第一行\n第二行'
# 第一行
# 第二行print(lines1)lines2 = '第一行\\第二行'print(lines2) # 第一行\第二行
6、r'', windows 系统下的路径有反斜杠,记得添加 r"c:\\data\a\b"
#输出不换行,第一行\n第二行lines = r'第一行\n第二行'print(lines)#输出结果:c:\data,原因:\a 响铃 \b 退格 是转义字符b="c:\\data\a\b"print(b)#输出结果:c:\\data\a\bb=r"c:\\data\a\b"print(b)
四.字符串索引
1、索引:任何序列类型中的元素都有 索引
用来表示它在序列中的位置。
2、索引的作用:方便精准定位到某个具体的位置。
3、字符串的索引:str[index]。
4、字符串,多个字符串起来的,索引能获取到某个特定的字符
5、TODO:通过索引为 0 获取到第一个字符 Index
name = '那年的我们'#左数01234,右数-5、-4、-3、-2、-1first_letter = name[0]#第一个字符,从左数第0个last_letter = name[-1]#最后一个字符,从右数第1个print(first_letter)print(last_letter)print(name[2])#左数012print(name[4])#左数01234
6、索引可以是负数,从右边开始数,-1开始
7、如果索引超出范围 IndexError
8、IndexError: 索引超出范围了
name = '那年的我们'#左数01234,右数-5、-4、-3、-2、-1print(name[5])#索引超出范围,报错:IndexError: string index out of range,程序终止
五、字符串切片
定义:获取序列中的子序列叫切片。字符串的切片就是获取字符串的子串。
语法:str[start:end:step],start
表示起始索引,end
表示结束索引,step
表示步长。
str[m:n:t]
表示从字符串索引为 m
到 n
之间不包含 n
每隔 t
个字符进行切片。
当 step
为 1 的时候可以省略,str[start:end]。
1、切片的作用:获取字符串的某个子串,可以只有一个字符,也可以有多个
name = '那年的我们'print(name[0:3])#从0开始,不包含3,输出结果:那年的
2、切片 字符串[start:end], end 是不包含的,不会取
顾头不顾腚,取左不取右
name = '那年的我们'print(name[0:1])#结果:那print(name[0:3])#结果:那年的
3、切片 end 超出范围了,规定的不报错。
4、切片和索引超出范围是不一样的。
name = '那年的我们'print(name[3:5])#结果:我们print(name[3:6])#结果:我们print(name[3:100])#结果:我们print(name[3:10000])#结果:我们print('切片超出范围不会报错,也不会终止程序,与索引不同!')#结果:切片超出范围不会报错,也不会终止程序,与索引不同!
5、切片位置可以省略
name = '那年的我们'print(name[:]) #切片的位置可以省略,输出结果:那年的我们
6、复制操作
name = '那年的我们'b=name[:] #B复制nameprint(b) #输出结果:那年的我们
7、string[start:end:step] 步长, 用得很少,了解即可
name = '那年的我们'print(name[0:100:2])#步长为2, 0 + 2 + 2,结果:那的们print(name[0:100:1])#步长为1, 0 + 1 + 1+1+1,结果:那年的我们print(name[0:100:3])#步长为3, 0 + 3,结果:那我
8、了解:step 是可以为负数的
9、倒着数
name = '那年的我们'print(name[::-1])#倒着数,结果:们我的年那print(name[-2:])#结果:我们
六、方法
字符串的操作
1、获取字符串长度:len()
name = '游标_卡尺'print(len(name))#结果:5
2、split, 分割,存到列表当中
name = '游标_卡尺'print(name.split('_'))#结果:['游标', '卡尺']a=('1%2%3')print(a.split('%'))#字符串有split属性,结果:['1', '2', '3']
3、join, 把一个列表拼接成字符串
a = ['游标', '卡尺'] # 数据类型<class 'list'>new_string = "_".join(a) # 把a列表拼接成字符串,new_string数据类型<class 'str'>print(new_string) # 结果:游标_卡尺print(type(a))print(type(new_string)) # <class 'str'>
4、find / index, index 找不到会报错,find找不到不会报错,得到结果-1
name = '游标_卡尺'print(name.find('卡尺'))#位置3print(name.find("标尺"))# 如果找不到,不会报错,得到 -1,print(name.find("卡a"))# 如果找不到,不会报错,得到 -1,print(name.index("卡尺"))#结果:3print(name.index("卡a"))#索引找不到位置会报错:ValueError: substring not found,程序终止
5、replace 替换
name = '游标_游标_卡尺'print(name.replace("游标", "稻草"))#结果:稻草_稻草_卡尺
6、strip() 左右两边的空格去掉,中间的不能去
#去掉两边的空格name = ' fow fw 'print(name.strip()) #结果:fow fw,两边的空格去点,中间的不会去掉print(name) #结果: fow fw
7、 format 格式化
8 字符串拼接 +: 禁止使用
name = 'jianjian'password = '123456'age = 19print("我的名字是" + name +"," + "我的密码是" + password + "我今年" + str(age) + "岁" )
9,format
name = 'jianjian'password = '1234556'age = 19print("我的名字是jianjian, 我的密码是123456,我今年19岁")#结果:我的名字是jianjian, 我的密码是123456,我今年19岁print("我的名字是{},我的密码是{},我今年{}岁".format(name,password,age))#结果:我的名字是jianjian, 我的密码是123456,我今年19岁
10、f-string, python3.6 以后才可以使用。把变量放到花括号当中。推荐用法
name = 'jianjian'password = '1234556'age = 19print(f"我的名字是{name},我的密码是{password},我今年{age}岁")#结果:我的名字是jianjian,我的密码是1234556,我今年19岁
11 upper
print('hello'.upper()) #结果:HELLOprint('HELLO'.lower())#结果:hello
七、常见错误提示汇总
1、SyntaxError: invalid syntax 语法错误:无效语法
2、IndentationError: unexpected indent缩进错误:意外缩进
3、IndexError: string index out of range索引器错误:字符串索引超出范围
4、SyntaxError: invalid character ':' (U+FF1A) 语法错误:无效字符“:”(U+FF1A)。注:标点符合用了中文。
5、AttributeError: 'int' object has no attribute 'split' 属性错误:'int'对象没有属性'split'
6、ValueError: substring not found ValueError:未找到子字符串
八、作业:
题目一:现在有字符串:str1 = 'python cainiao 666'
请使用代码找出第 5 个字符
请复制一份字符串,保存为 str_two
答:
#1、使用代码找出第 5 个字符
str1 = 'python cainiao 666'#第5个字符是o,从左边0开始数,索引位置是4
print(str1[4])
#2、复制一份字符串,保存为 str_two
str1 = 'python cainiao 666'
str_two = str1[:]#把字符串str1复制给str_two
print(str_two)
题目二:卖橘子的计算器:写一段代码,提示用户输入橘子的价格,和重量,最后计算出应该支付的金额!不需要校验数据,都传入数字就可以了。使用input函数获取用户输入哦,并且input 得到的数据都是字符串类型
price = input("请输入价格")
weight = input("请输入重量")
答:
price = input("请输入橘子的价格\n")
price_float = float(price) #把price的类型转化成float类型
weight = input("请输入橘子的重量\n")
weight_float = float(weight) #把weight的类型转化成float类型
money = price_float * weight_float #价格*重量=金额
print(f"应该支付的金额:{money}") #用f-string,把变量放到花括号中
题目三:演练字符串操作 my_hobby = "Never stop learning!"
说明:“位置”指的是字符所处的位置(比如位置1,指的是第一个字符“N”);“索引”指的是字符的索引值(比如索引0, 代表的是第一个字符“N”);开始位置 ,是指字符串起始,即下标为0开始;末尾,是指字符串最后。
截取从 位置2 ~ 位置6 的字符串(含 位置6)
截取完整的字符串
从 索引3 开始,每2个字符中取一个字符
截取字符串末尾两个字符
字符串的倒序
答:
my_hobby = "Never stop learning!"
# 1、截取从 位置2 ~ 位置6 的字符串(含 位置6)
print(my_hobby[1:6]) #位置2 ~ 6的字符串为ever (后面有个空格,空格算一个字符),长度为5,打印结果:ever,取头不取尾
# 2、截取完整的字符串
print(my_hobby[0:]) #截取从0到最后,输出结果:Never stop learning!
print(my_hobby[:])
print(my_hobby[:100]) #截取从0到100,切片超出范围不会报错,与索引不同
# 3、从 索引3 开始,每2个字符中取一个字符
print(my_hobby[3::2]) #2是步长,输出结果:e tplann!
# 4、截取字符串末尾两个字符
print(my_hobby[-2:]) #输出结果:g!
# 5、字符串的倒序
print(my_hobby[::-1]) #输出结果:!gninrael pots reveN
题目四:将字符串中的单词位置反转,“hello xiao mi” 转换为 “mi xiao hello” (提示:通过字符串分割,拼接,列表反序等知识点来实现)
答:
#“hello xiao mi” 转换为 “mi xiao hello”
say = "hello xiao mi"
say_division = say.split(' ') #通过空格进行分割,结果:['hello', 'xiao', 'mi']
say_back = say_division[::-1] #列表倒序,结果:['mi', 'xiao', 'hello']
new_say =' '.join(say_back) #通过空格进行拼接,结果:mi xiao hello
print(say_division)
print(say_back)
print(say)
print(new_say)
题目五:把姓名、年龄、密码、性别、专业、爱好分别存储在变量中,用下列格式展示:
-------------------------------
姓名:xxx
年龄:xxx
密码:xxx
性别:xxx
专业:xxx
爱好:xxx
-------------------------------
答:
#姓名、年龄、密码、性别、专业、爱好
name = '星星'
age = '18'
password = '123456'
sex = '女'
major = 'software engineering'
hobby = 'run'
#使用f-string,把变量放到花括号当中,再用转义字符换行
print(f"-------------------------------\n姓名:{name}\n年龄:{age}\n密码:{password}\n性别:{sex}\n专业:{major}\n爱好:{hobby}\n-------------------------------")
python小白入门第二课-标识符数据类型字符串方法相关推荐
- Python基础入门第二课--Python编辑器的选择
Python 非常易学,强大的编程语言.Python 包括高效高级的数据结构,提供简单且高效的面向对象编程. Python 的学习过程少不了 IDE 或者代码编辑器,或者集成的开发编辑器(IDE).这 ...
- python入门基础系列_03python—9个基础常识-python小白入门系列
<python小白入门系列教程> 专栏 • 第03篇 文 | xc_718 深度好文:1828字 | 4分钟阅读 1. 注释 1)单行注释:****# #注释内容 print('123 ...
- python入门基础系列八_03python—9个基础常识-python小白入门系列
<python小白入门系列教程> 专栏 • 第03篇 文 | xc_718 深度好文:1828字 | 4分钟阅读 1. 注释 1)单行注释:##注释内容 print('123') #1 ...
- C# 编程入门第二课 注释变量,VS2019快捷键,String和string,命名规则,赋值运算符,+号作用占位符,转义字符算术运算符,类型转换
C# 编程入门第二课 文章目录 C# 编程入门第二课 1. 注释 2 变量 3.VS2019快捷键 4. String和string 5. 命名规则 6. 赋值运算符,+号作用 7. 占位符 8.转义 ...
- Python学习第三课-基本数据类型
Python学习第三课-基本数据类型 一.基本概念 1.1表达式 1.2语句 1.3程序 1.4函数 内置函数 自定义函数 参数 返回值 二.标识符 2.1 关键字 2.2标识符概念 驼峰命名法 下划 ...
- Python基础第三课-基本数据类型
Python基础第三课-基本数据类型 1.几个基本概念 1.1 表达式 1.2 语句 1.3 程序(program) 1.4 函数(function) 2.标识符 2.1 关键字 2.2 标识符概念 ...
- 清华大学python基础_清华大学出版社-图书详情-《Python基础入门-微课视频版》
前言 Python语言自从20世纪90年代初诞生至今,逐渐被广泛应用于处理系统管理任务和科学计算,是最受欢迎的程序设计语言之一. 学习编程是工程专业学生学习的重要部分.除了直接的应用外,学习编程还是了 ...
- python基础实例教程 微课版-清华大学出版社-图书详情-《Python基础入门-微课视频版》...
前言 Python语言自从20世纪90年代初诞生至今,逐渐被广泛应用于处理系统管理任务和科学计算,是最受欢迎的程序设计语言之一. 学习编程是工程专业学生学习的重要部分.除了直接的应用外,学习编程还是了 ...
- 小学生python趣味编程-【少儿编程】python趣味编程第二课:写文字
python趣味编程第二课:本文仅针对8-16岁的青少年,所以流程是按如何去教好中小学生走的,并不适合成人找工作学习,因为进度也是按照青少年走的 大家好,我是C大叔,上一篇文章已经跟大家介绍了一款开发 ...
最新文章
- 每日一道面试题(第7期)---Android补间动画与属性动画的区别
- jmeter发送json数据,报405、400错误解决方案
- ProGit-读书简记
- Gym - 101986F Pizza Delivery(最短路+DAG必经边)
- cdrom是多媒体微型计算机,全国计算机二级题库第三章
- 有意思的逻辑思维题(二)(hdu1052)
- 图像块的访问(填充 padding,步长 stride,窗 Window/kernel/filter)
- 20170908-构建之法:现代软件工程-阅读笔记
- VBS中Sub与Function的区别[资料]
- DeepMatch推荐系统中的常用算法——Youtube的DeepMatch
- 计算机一级excel 试题及答案,计算机一级excel考试试题及答案
- LVDS通信接口详细介绍
- 锦鲤阅读自动阅读问题解答,小白必看!
- 数理统计基础-相关系数
- 光量子计算机的信息载体,如何使“孤傲”的光子改变彼此的量子态?
- 微信h5页面不用服务器吗,你知道微信h5页面到底是个什么意思吗?
- 拿到6个重磅offer的大神,超详细面试经验总结
- PHP高级工程师必备技术合集
- 如何自己写一门简单的编程语言(解释型语言)
- 【JavaScript】MDN 阅读笔记
热门文章
- hive笔记(与上一偏 《hadoop集群搭建》结合)
- 2017网易笔试矩阵快速幂
- iOS双重验证设备无法接收验证码,更新手机号。
- python城市经纬度网格_Python3爬虫 利用百度地图api得到城市经纬度
- android 设置壁纸,在Android中使用WallpaperManager设置壁纸
- CSS3正方体图片轮换
- Centos 7 部署 OpenStack_Rocky版高可用集群3-1
- Serverless Computing Fass $ openwhisk快速部署、应用、实例
- 中亦安图通过创业板注册:年营收近12亿 拟募资6亿
- Charset API