一、标识符

定义:标识符就是一个名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。就好像我们人一样,需要起个名字,便于称呼、指代。

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小白入门第二课-标识符数据类型字符串方法相关推荐

  1. Python基础入门第二课--Python编辑器的选择

    Python 非常易学,强大的编程语言.Python 包括高效高级的数据结构,提供简单且高效的面向对象编程. Python 的学习过程少不了 IDE 或者代码编辑器,或者集成的开发编辑器(IDE).这 ...

  2. python入门基础系列_03python—9个基础常识-python小白入门系列

    <python小白入门系列教程> 专栏 • 第03篇 文 | xc_718 深度好文:1828字 | 4分钟阅读 ​ 1. 注释 1)单行注释:****# #注释内容 print('123 ...

  3. python入门基础系列八_03python—9个基础常识-python小白入门系列

    <python小白入门系列教程> 专栏 • 第03篇 文 | xc_718 深度好文:1828字 | 4分钟阅读 ​ 1. 注释 1)单行注释:##注释内容 print('123') #1 ...

  4. C# 编程入门第二课 注释变量,VS2019快捷键,String和string,命名规则,赋值运算符,+号作用占位符,转义字符算术运算符,类型转换

    C# 编程入门第二课 文章目录 C# 编程入门第二课 1. 注释 2 变量 3.VS2019快捷键 4. String和string 5. 命名规则 6. 赋值运算符,+号作用 7. 占位符 8.转义 ...

  5. Python学习第三课-基本数据类型

    Python学习第三课-基本数据类型 一.基本概念 1.1表达式 1.2语句 1.3程序 1.4函数 内置函数 自定义函数 参数 返回值 二.标识符 2.1 关键字 2.2标识符概念 驼峰命名法 下划 ...

  6. Python基础第三课-基本数据类型

    Python基础第三课-基本数据类型 1.几个基本概念 1.1 表达式 1.2 语句 1.3 程序(program) 1.4 函数(function) 2.标识符 2.1 关键字 2.2 标识符概念 ...

  7. 清华大学python基础_清华大学出版社-图书详情-《Python基础入门-微课视频版》

    前言 Python语言自从20世纪90年代初诞生至今,逐渐被广泛应用于处理系统管理任务和科学计算,是最受欢迎的程序设计语言之一. 学习编程是工程专业学生学习的重要部分.除了直接的应用外,学习编程还是了 ...

  8. python基础实例教程 微课版-清华大学出版社-图书详情-《Python基础入门-微课视频版》...

    前言 Python语言自从20世纪90年代初诞生至今,逐渐被广泛应用于处理系统管理任务和科学计算,是最受欢迎的程序设计语言之一. 学习编程是工程专业学生学习的重要部分.除了直接的应用外,学习编程还是了 ...

  9. 小学生python趣味编程-【少儿编程】python趣味编程第二课:写文字

    python趣味编程第二课:本文仅针对8-16岁的青少年,所以流程是按如何去教好中小学生走的,并不适合成人找工作学习,因为进度也是按照青少年走的 大家好,我是C大叔,上一篇文章已经跟大家介绍了一款开发 ...

最新文章

  1. 每日一道面试题(第7期)---Android补间动画与属性动画的区别
  2. jmeter发送json数据,报405、400错误解决方案
  3. ProGit-读书简记
  4. Gym - 101986F Pizza Delivery(最短路+DAG必经边)
  5. cdrom是多媒体微型计算机,全国计算机二级题库第三章
  6. 有意思的逻辑思维题(二)(hdu1052)
  7. 图像块的访问(填充 padding,步长 stride,窗 Window/kernel/filter)
  8. 20170908-构建之法:现代软件工程-阅读笔记
  9. VBS中Sub与Function的区别[资料]
  10. DeepMatch推荐系统中的常用算法——Youtube的DeepMatch
  11. 计算机一级excel 试题及答案,计算机一级excel考试试题及答案
  12. LVDS通信接口详细介绍
  13. 锦鲤阅读自动阅读问题解答,小白必看!
  14. 数理统计基础-相关系数
  15. 光量子计算机的信息载体,如何使“孤傲”的光子改变彼此的量子态?
  16. 微信h5页面不用服务器吗,你知道微信h5页面到底是个什么意思吗?
  17. 拿到6个重磅offer的大神,超详细面试经验总结
  18. PHP高级工程师必备技术合集
  19. 如何自己写一门简单的编程语言(解释型语言)
  20. 【JavaScript】MDN 阅读笔记

热门文章

  1. hive笔记(与上一偏 《hadoop集群搭建》结合)
  2. 2017网易笔试矩阵快速幂
  3. iOS双重验证设备无法接收验证码,更新手机号。
  4. python城市经纬度网格_Python3爬虫 利用百度地图api得到城市经纬度
  5. android 设置壁纸,在Android中使用WallpaperManager设置壁纸
  6. CSS3正方体图片轮换
  7. Centos 7 部署 OpenStack_Rocky版高可用集群3-1
  8. Serverless Computing Fass $ openwhisk快速部署、应用、实例
  9. 中亦安图通过创业板注册:年营收近12亿 拟募资6亿
  10. Charset API