3-2、Python基础之基本数据类型

一、数字类型

1.1 int整型

  • 作用:用来记录人的年龄,出生月份,学生人数等整数相关的状态。
  • 定义: 数值为正或者符,不带小数点。
    • 通常用十进制表示数字,但是有时候还用八进制或者 16进制表示,16进制用 0x 前缀和0-9。八进制用0o 前缀和0-7表示,例如0o45。
age=18
birthday=1989
student_count=40
  • 小整数对象池
    Python 初始化的时候会自动建立一个小整数对象池,方便我们调用,避免后期重复生产,这是一个包含 262 个指向整数对象的指针数组,范围是 -5 到256。比如整数10 ,即使我们在程序里面没有创建它,其实在 Python 后台已经悄悄为我们创建了。
    • 作用:这些小型整数经常用到,如果使用一个创建一个则会大大降低运行速度,所以python 就会创建小整数对象池,当需要用到小整数时,直接拿出来使用即可。
print(id(-4))
140732563260928
print(id(-5))
140732563260896
print(id(-6))
2775532657744

很显然,-4 和 -5 内存地址之间相处32 ,而-5 与-6 内存地址相差比较大,那是因为,-5到256 是在一个小整数池里面,而-6 是单独取去创建的,所分配的内存地址根据实际环境来定,所以分配的地址相差很多。

  • del : 释放内存,del a 即释放a 指向对象的内存
a = 1000
print(id(a))
del a
b = 1000
print(id(b))
## 发现a 指向的值的内存地址释放后,再次赋值内存地址还是一样的,这是为啥?
## 这是 python 缓存机制

1.2 float浮点型

  • 作用: 记录人的身高,体重,薪资等小数相关的状态。
  • 定义:
height=172.5
weight=130.5
salary=15000.00

二、字符串类型 str

2.1 字符串

  • 字符串是由数字,字母,下划线组成的一串字符

  • 注意

    • 单引号或双引号不能混合使用
    • Python 中用一对双引号或一对单引号标记起来的内容就是字符串。
  • 单引号、双引号、多引号

    1. 单引号,双引号,多引号本质上没有区别;
    2. 需要考虑引号嵌套的问题:
      msg = "My name is Jack , I'm 18 years old!"
      内层有单引号,外层就必须用双引号。
    3. 多引号: 可以写多行字符串,保存文档格式的使用。

2.2 转义字符

  • \t : 制表符
  • \n : 换行
  • ' : 仅仅表示 ' (单引号)
  • '' : 仅仅表示'' (双引号)

2.3 格式化字符串

  • 第一种格式化字符串: 拼串
    拼串: 字符串可以进行 加法和乘法操作。比如 :
str1 = 'hello' ,  str2 = 'world'
s = str1 + str2
print(s)
helloworld
  • 第二种格式化化字符串:参数传递
s = 'hello', s2 = 'python'
print('s=',s)
hello
  • 第三种格式化格式化字符串: 占位符
    就是通过占据字符串里面的一个位置,然后共给别人使用。

    1. -%s 字符串占位
    2. -%f 浮点数,小数占位
    3. -%d 整数占位
  • 第四种格式化字符串:'f'
    -f'{变量}'
    通过{}来占位,到但是必须传递参数。

  • 第五种格式化字符串 : format 方式占位
    format 方式占位,同样通过{}来占位,不需要传递参数。

案例:

>>> print('这是数据库%s的IP地址' % 'db1')
这是数据库db1的IP地址
>>> print('这是第%d台主机的IP地址' % 1)
这是第1台主机的IP地址
>>> print('学生A 体重%f' % 75.0)
学生A 的体重75.500000

>>>  app = '淘宝'
>>> m = f'这是应用{app}的 URL'
>>>print(m)
这是应用淘宝的URL

>>>g = '这是我最喜欢的{}'.format('颜色')
>>>print(g)
这是我最喜欢的颜色

2.4 字符串的其他操作

  • 常规操作
    len() 字符串长度
    max() 最大值
    min() 最小值
    str.split('分割符号') 字符串分割
    str.join('分割的符号') 字符串拼接
    str.find(查找的字符) 查找字符串
    replace() 替换字符串
    partiton() 把字符串分割为三部分

  • 去除空格
    s.strip 去除左右2边空格
    s.lstrip() 去除左边空格
    s.rstrip() 去除右边空格

  • 字符串大小写
    s.upper() 全部大写
    s.lower() 全部小写
    s.isupper() 判断是不是大写
    s.islower() 判断是不是小写


作业

  1. a,b = 6,8 让a=8,b=6 该怎么实现 ?
方法一:
a,b = 6,8
a,b = b,a
print(a,b)
8 6
方法二:
a=6
b=8
c=a
a=b
b=c
print(a,b)
  1. 完成字符串的逆序以及统计
  • 设计一个程序,要求只能输入长度低于31 的字符串,否则提示用户重新输入
  • 打印字符串的长度
  • 使用切片逆序打印出字符串
while True:
    card_passwd = input('请输入密码(小于31个字符): ')
    if len(card_passwd) > 31:
        print('密码错误,请重新输入!')
    else:
        print(len(card_passwd))
        print(card_passwd[::-1])
请输入密码(小于31个字符): asdfadf
7
fdafdsa
请输入密码(小于31个字符): 0asdfadfacaadflakdfaldf0asdfadsf
密码错误,请重新输入!
请输入密码(小于31个字符): 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容