python基础三 标识符、变量、运算符、数据类型

文章目录

    • 1. 标识符
      • 1.1 标识符的概念
      • 1.2 关键字
    • 2. 变量
      • 2.1**变量的概念?**
      • 2.2**变量的赋值?**
      • 2.3**变量的运算?**
      • 2.4 变量在内存中的原理(非常重要)
        • 2.41 引用变量
        • 2.42 拷贝
    • 3.运算符
      • 3.1 运算符的概念
      • 3.2 运算符的分类
        • 算术运算符
        • 赋值运算符
        • 比较运算符(关系运算符)
        • 特殊的比较方式
        • 布尔值的运算(逻辑运算)
        • 非布尔值的与运算
        • 条件运算符(三元运算符)
    • 4. 数据类型
      • 数据类型的种类
      • 4.1 字符串
        • 4.1.1 转义字符
        • 4.1.2 长字符串
        • 4.1.3 格式化字符串
        • 4.1.4 字符串的其他操作
      • 4.2 整数类型
    • 5. 练习题

1. 标识符

1.1 标识符的概念

  • 开发人员在开发过程中自定义的一些符号和名称。标识符是自定义的,如变量名、函数名等
  • 标识符的规则
    • 标识符中可以包含数字、字母、下划线_,但是不能以数字开头。如:myName、MyName、My_name01、_myname等,但03MyName不行。
      - 标识符命名方式
    • 驼峰命名法
      • 小驼峰命名法:第一个单词首字母以小写开始,第二个单词首字母大写。如:firstName、aDog
      • 大驼峰命名法:每一个单字的首字母都要大写。如:MyName、FirstName
    • 下划线命名法:用下划线“_”来连接所有的单词,比如 name_list,age_list

1.2 关键字

  • python一些具有特殊功能的标识符,这就是所谓的关键字关键字,是python已经使用的了,所以不允许开发者自己定义和关键字相同的名字的标识符
    python基础三 标识符、变量、运算符、数据类型_第1张图片

2. 变量

2.1变量的概念?

  • 变量是计算机内存中的一块区域,存储规定范围内的值,值 可以改变,通俗的说变量就是给数据起个名字。
    • 变量命名规则:
    • 变量名由字母、数字、下划线组成要符合标识符的命名规范
    • 数字不能开头
    • 不能使用关键字
  • 注意 : 是两个对象相等和两个对象是同一个对象是两个概念
s1 = {'Jerry':'Python'}
import copy
s2 = copy.deepcopy(s1)
print(s2) # {'Jerry': 'Python'}

print(id(s1),id(s2))
print(s1==s2)

2.2变量的赋值?

我们先来看一下这行代码:

name='哪吒'
  • 这就是一个常见的给变量赋值的招式。 在这里name就是一个变量,将’哪吒’这两个文字赋值给了name这个变量
    说白了, 就相当于有一个杯子,我们可以向杯子中倒入饮料,饮料可以是水、可乐、橙汁、咖啡、啤酒等等。杯子是存放饮料的器皿,就相当于电脑的内存或者硬盘,而饮料就相当于我们要在电脑中存储的数据。
    python基础三 标识符、变量、运算符、数据类型_第2张图片
    往杯子里倒入饮料的过程,在Python中称为赋值

2.3变量的运算?

python基础三 标识符、变量、运算符、数据类型_第3张图片

  • 变量的运算就是正常的四则运算 ,需要注意的是在运算过程中含有浮点数,那么它返回的就是一个浮点数类型

2.4 变量在内存中的原理(非常重要)

2.41 引用变量

  • 两个引用指向同一个int数据
a = 10
b = 10
print(id(a),id(b))

结果:地址一样

  • 两个引用指向同一个str数据
str1 = 'fsfsfsdd'
str2 = 'fsfsfsdd'
print(id(str1),id(str2))

结果:地址一样

  • 两个引用指向同一个list数据
list1 = [1, 2, 3]
list2 = [1, 2, 3]
print(id(list1), id(list2))

结果:地址不一样

2.42 拷贝

list1 = [1,2,3,4]
list2 = list1.copy()
print(id(list1),id(list2))

结果:地址不一样

3.运算符

3.1 运算符的概念

运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”

3.2 运算符的分类

算术运算符

- 加法运算符 表现形式 + ;(12+5)
- 减法运算符 表现形式 -;(54-21)
- 乘法运算符 表现形式 *;(5*6)
- 除法运算符 表现形式 /;(46/2)
- // 整除,只会保留计算后的整数位,总会返回一个整型;(8//3)
- % 取模,求两个数相除的余数;(8%2)
- ** 幂运算,求一个值的几次幂;(2**3)

赋值运算符

- 运算符的特殊写法  x = x + 3 其实是和 x += 3 是一样的
- +=  (x+= 3 相当于 x = x + 3 )
-  -= (x -= 3 相当于 x= x - 3 )
- *=  (x *= 3 相当于 x = x* 3 )
- **= (x **= 3 相当于 x = x ** 3 )
- /=  (x /= 3 相当于 x = x/ 3 )
- //= (x //= 3 相当于 x = x // 3 )
- %=  (x %= 3 相当于 x= x % 3 )

比较运算符(关系运算符)

  • 比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False
    • 用>比较左侧值是否大于右侧值;如10 > 8
    • 用>= 比较左侧的值是否大于或等于右侧的值;如a>=3
    • < 比较左侧值是否小于右侧值;如4<7
    • <= 比较左侧的值是否小于或等于右侧的值;如b<=12

特殊的比较方式

  • == 比较两个对象的值是否相等
  • != 比较两个对象的值是否不相等
  • is 比较两个对象是否是同一个对象,比较的是对象的id
  • is not 比较两个对象是否不是同一个对象,比较的是对象的id
  • 常见ASCII码的大小规则:0-9 1)数字比字母要小。如 “7”<“F”;
    2)数字0比数字9要小,并按0到9顺序递增。如 “3”<“8” ;
    3)字母A比字母Z要小,并按A到Z顺序递增。如“A”<“Z” ;
    4)同个字母的大写字母比小写字母要小32。如“A”<“a” 。
    几个常见字母的ASCII码大小: “A”为65;“a”为97;“0”为 48

布尔值的运算(逻辑运算)

and、or、not、in、not in
1.or 逻辑
- 或运算两个值中只要有一个True,就会返回True
- 或运算是找True的
python基础三 标识符、变量、运算符、数据类型_第4张图片

2.and 逻辑
- and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
- 与 运算是找False的,如果第一个值为False,则不再看第二个值,最后返回值一定是False
python基础三 标识符、变量、运算符、数据类型_第5张图片

3.【in】与【not in】
python基础三 标识符、变量、运算符、数据类型_第6张图片

# 请先阅读代码,然后直接运行
list = [1,2,3,4]
a = 1
b = 10
c = 0
print(bool(a in list))
print(bool(b in list))
print(bool(c in list))
#返回值:
True
False
False

4.not 逻辑
not就是相反的意思。not False就是True, not True就是False
```
not True == False
not False == True

非布尔值的与运算

  • 与(and) 运算规则找False。如果第一个值为False,那么不看第二个,直接返回第一个值;如果第一个值为True,那么直接输出第二个值
result1 = 1 and 2	#	2
result2 = 1 and 0	#	0
result3 = 0 and 1	#	0
result4 = None and 0	#	N
print(result1,result2,result3,result1)
# 打印结果为:2 0 0 None

条件运算符(三元运算符)

  • 语句1 if 条件表达式 else 语句2
    • 这句换的意思是当条件满足时,输出语句1,不满足时,输出语句2;
a = 30
b = 40
c = a if a>b else b
print(c)
#输出结果:
40
  • 运算符的优先级
    python基础三 标识符、变量、运算符、数据类型_第7张图片

4. 数据类型

数据类型的种类

(1)Python3里整形只有int型,无论多大的数值都可以存;
(2)浮点型float精度只有17位,超过17位自动转化为科学计数法进行表示
(3)布尔类型,True和False
(4)字符串型,可以直接通过取字符串中的数值。

4.1 字符串

  • 字符串的概念:字符串是由数字、字母、下划线组成的一串字符
  • Python中用一对双引号或者一对单引号包裹的内容就是字符串。如:‘金刚川’、‘abcd’、‘day_01’

4.1.1 转义字符

  • 转义字符是一种特殊的字符常量。转义字符以反斜线""开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符
    常用的几个转义字符
  • \t 表示制表符
  • \n 表示换行符
  • \ 表示反斜杠
  • ’ 表示 ’
  • \ ‘’ 表示 ‘’
  • python基础三 标识符、变量、运算符、数据类型_第8张图片

4.1.2 长字符串

  • 长字符串 又叫做文档字符串 我们使用三重引号来表示一个长字符串’’’ ‘’’
  • 三重引号可以换行,并且会保留字符串中的格式
print('''哪吒,
托塔李天王家的三太子,
变化三头六臂又或三头八臂,
百邪不侵专克摄魂夺魄的莲花化身''')
# 打印结果:
哪吒,
托塔李天王家的三太子,
变化三头六臂又或三头八臂,
百邪不侵专克摄魂夺魄的莲花化身

4.1.3 格式化字符串

  • 第一种格式化字符串 拼串
 a = 'i love ' + '刘亦菲'
 print(a)
 # 结果
 i love 刘亦菲
  • 第二种格式化字符串 参数传递
a = 'i love '
print(a, '刘亦菲')
# 结果
i love  刘亦菲
  • 第三种格式化字符串 占位符
  • %s 字符串占位
# a = 'i love %s' % 1
# print(a)
  • %f 浮点数占位

height=1.7
print('刘亦菲身高%f'%height)
  • %d 整数占位
age=19
print('刘亦菲今年%d岁'%age)
  • 第四种格式化字符串 f’{变量}’
# f''
# b = '刘亦菲'
# a = f'i love {b}'
# print(a)
  • 第五种格式化字符串str.format ()
b = '刘亦菲'
a = 'i love {}'.format(b)
print(a)

4.1.4 字符串的其他操作

  • len() 字符串的长度
name='Cheney'
print(len(name))
# 打印结果:
6
  • max() 最大值
a='4200656'
print(max(a)
# 结果
6
  • min() 最小值
a='4200656'
print(min(a)
# 结果:
0
  • split()分割字符串
#字符串 "a,b,c,d" ,请用逗号分割字符串,分割后的结果是什么类型的?
"a,b,c,d".split(',')
# 打印结果:
['a', 'b', 'c', 'd']
  • join()拼接字符串
a = '123456'
b = '-'.join(a)
print(b)
# 结果:
1-2-3-4-5-6
  • find()查找字符串
    • 查找字符串所在位置的下标(索引),是从0开始的
#计算字符串 "cd" 在 字符串 "abcd"中出现的位置
"abcd".find('cd')
# 结果:
2
  • replace() 替换字符串
string = "Java is good"
string.replace('Java', 'Python')
# 结果显示为:
'Python is good'
  • partition() 把字符串分割为三部分
a='python'
b=a.partition('th')
print(b)
# 结果:
('py', 'th', 'on')
  • isalpha():表示判断是字母

  • isdigit():表示判断是纯数字

  • isspace():表示判断有空格

  • 去空格

    • s.strip() 左右两边去空格
    • s.lstrip() 去左边空格
    • s.rstrip() 去右边空格
    • 字符串大小写
    • s.upper() 全部大写
    "This IS a book".upper()
    #结果
    'THIS IS A BOOK'
    
    • s.lower() 全部小写
    #This IS a book", 请将字符串里的大写字符转成小写字符
    "This IS a book".lower()
    # 结果
    "this IS a book"
    
    • s.isupper() 判断是不是大写
    # 判断变量s的值是否为大写
    s='apple'
    s.isupper()
    # 结果
    False
    
    • s.islower() 判断是不是小写
    # 判断变量s的值是否为小写
    s='apple'
    s.isupper()
    # 结果
    True
    

4.2 整数类型

(1)如何查看变量占用多少内存空间?
要导入模块sys,调用方法sys.getsizeof(变量名)

import sys
num01 = 1000
print("num01占用的空间:",sys.getsizeof(num01))

(2)八进制0o开头,十六进制0x开头
(3)整形数值常见方法:

  • abs() 绝对值
  • math.fabs() 绝对值
  • math.sqrt() 平方根
  • math.pow(a,b) a的b次方
  • max() 返回最大值
  • min() 返回最小值

(4)获取整数位,保留指定位数有效数字
使用round方法:

print(round(12.3456))  #输出结果只会打印12
print(round(12.3456,2))  #输出结果为12.35

使用math.ceil()方法,返回数字的上入;
使用math.floor()方法,返回数字的下舍;
使用modf()方法,返回两个数值,前一个数是小数部分、后一个个数是整数部分;

print(math.modf(12.22))  #返回(0.22,12.0)

5. 练习题

  • 第三讲作业

# 1. a,b = 6, 8 我想让a=8 b=6我该怎么办?用2种方式实现
# 方法一:
# a,b=6,8
# a,b=b,a
# print(a,b)
# # 方法二:
# a,b=6,8
# a=a+b
# b=a-b
# a=a-b
# print(a,b)
#方法三
# a,b=6,8
# c=b
# b=a
# a=c
#
# print(a,b)
# 2. 完成字符串的逆序以及统计
# • 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
# string = input('请输入您的账号:')
# if len(string) < 31:
#     pass
# else:
#     print('字符串长度必须小于31,请重新输入')

# • 打印出字符串长度
# print(len(string))
# • 使用切片逆序打印出字符串
# lenght = string[::-1]
# print(lenght)
# 3. 要求从键盘输入用户名和密码,校验格式是否符合规则,如果不符合,打印出不符合的原因,并提示重新输入
# • 用户名长度6-20,用户名必须以字母开头
# • 密码长度至少6位,不能为纯数字,不能有空格
while 1:
    UserName = input('请输入您的账户名:')
    if 6<=len(UserName)<=20 and UserName[0].isalpha() == True:

        while 1:
            PassWord = input('请输入您的账户密码:')
            for i in PassWord:
                if i == ' ':
                    print('密码不能含有空格,请重新输入')
                    break
            else:
                if len(PassWord)>=6:
                    pass
                    if not PassWord.isdigit():
                        print('登录成功')
                        print(f'用户名为{UserName},密码为{PassWord}')
                        break
                    else:
                        print('密码不能为纯数字')
                else:
                    print('密码长度不能小于6位')


    else:
        print('用户名请输入有效的格式')
        continue
    break






  • 第四讲作业
# 知识点写博客
https://blog.csdn.net/zjw3542/article/details/109747016
# 练习课堂中老师敲的代码

# 以4种格式化字符串的方式来实现 521 xxx 嫁给我好吗?
a = 521
#第一种:f''
print(f'{a} my baby')
#第二种:拼串
a='521 '+'my baby'
print(a)
# 第三种:传参
a = 521
print(a,'my baby')
# 第四种:%s字符串占位符
a = '521 '
print('%smy baby'%a)
#第五种:format
a = '521 '
print('{}my baby'.format(a))
# 现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值
a = 65
b =90
c = 45
# 方法一:
result1 = a if a>b else b
result_max= result1 if result1 > c else c
print(result_max)
#方法二:
result_max = a if a > b else b and (a if a > b else b) if (a if a > b else b) > c else c
print(result_max)


你可能感兴趣的:(字符串,python,数据类型)