目录
- 一、数字类型的简单应用
- 二、初识字符串
- 1.什么是字符串
- 2.字符串的内置函数与定义方法
- 3.字符串的重要思想
- 三、python的内置函数id和len
一、数字类型的简单应用
- 对int与float的简单应用练习–初中生春游,主人公小编。
1.起因
-
小编学校组织春游,他的班级学生共51人,男生28人,女生23人。
-
每人缴费35.5元,并且根据最后使用的情况多退少补。
2.经过
- 他们早上8点出发,每个大巴可以坐30人,所以需要2辆大巴。
- 上午10点33分到达公园开始游玩。
- 中午12点开始吃饭,伙食费是25.5元。
- 到下午3点05分时集体离开公园,坐大巴回去,来回大巴费用是5元。
3.结果
- 到晚上5点回到学校,每人退回5元钱。
4.我们的任务
- 把这一天有关整型,浮点型的信息按照先后顺序打印出来。
- 定义整型与浮点型,并熟练赋值语句与print,type的使用。
5.代码
# coding:utf-8
title='小编学校的春游'
class_count=51
boys=28
girls=23
every_body_pay=35.5
start_time=8.00
bus_count=2
site_every_bus=30
come_park_time=10.33
lunch_time=12.0
lunch_pay=25.5
leave_park_time=3.05
bus_pay=5
come_back_school_time=5.00
back_pay =5
if __name__ == '__main__':
print(title)
print('小编的班级有:',class_count)
print('男生有:',boys)
print('女生有:',girls)
print('每人支付:',every_body_pay,'元')
print('出发的时间是早上:',start_time,'点')
print('出行需要:',bus_count,'公交大巴')
print('我们到达公园的时间是:',come_park_time)
print('吃午饭的时间是:',lunch_time)
print('每人支付伙食费:',lunch_pay)
print('离开公园的时间是:',leave_park_time)
print('公交大巴来回的费用是每人:',bus_pay)
print('下午',come_back_school_time,'到达学校')
print('这一天小编同学花费了:',30.5)
print('最后退回:',back_pay)
print(type(come_back_school_time))
print(type(every_body_pay))
print(type(site_every_bus))
运行结果:
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/.venv/bin/python /Users/llq/PycharmProjects/pythonlearn/pythonlearn1/number_test.py
小编学校的春游
小编的班级有: 51
男生有: 28
女生有: 23
每人支付: 35.5 元
出发的时间是早上: 8.0 点
出行需要: 2 公交大巴
我们到达公园的时间是: 10.33
吃午饭的时间是: 12.0
每人支付伙食费: 25.5
离开公园的时间是: 3.05
公交大巴来回的费用是每人: 5
下午 5.0 到达学校
这一天小编同学花费了: 30.5
最后退回: 5
<class 'float'>
<class 'float'>
<class 'int'>
进程已结束,退出代码为 0
二、初识字符串
1.什么是字符串
看图片,这是一个网页,里面有很多的内容。字符串就像我们说的话,通过字符串的形式,帮助我们去展示,去读写。这个图片上所有的信息都是字符串。
- 用‘’或“”包裹的所有数据都是字符串。
其中就包括了字符的集合。都有哪些是字符呢?比如中文、英文、各种标点符号、数字等等。只要你能想到的所有可以书写的内容,都可以被引号包裹起来成为字符串。
- 字符串中可以包含任意字符:如字母、数字、符号,且没有先后顺序。
数字类型怎么又成为字符串了呢?因为数字被引号包裹的时候,虽然表面上看它还是数字类型,其实它已经是字符串里要表达的内容的一部分了。
2.字符串的内置函数与定义方法
在python中,使用str来代表字符串类型,并且通过该函数可以定义字符串。
字符串的定义和整型,浮点型,非常类似。第一种是通过专用的定义函数来定义。比如str,括弧内是字符串信息。第二个name则直接赋值,不需要str函数的介入。在书写代码的时候,用引号包裹的信息就是字符串。
但是在打印出来用于读取的时候,引号就消失了。比如刚刚看到的图片,以及print出来这些变量之后,都是没有引号的。
并且通过type函数,字符串类型是这样的:<class 'str'>
str和我们的内置函数str是完全一致的。
3.字符串的重要思想
- 字符串不可改变!
比如name='dewei'
,当我们赋值之后,这个name就会被内存安排一个家,家里的成员是dewei,但是我们无法对于这个家庭成员进行修改。
之前学习变量的时候说过,变量的值可以改变的。比如给name重新赋值为xiaoli,这里要明确一件事,改变的是一个变量的变量值,而不是在一个变量值上进行修改。
所以,当name等于xiaoli之后,不是对于原来的字符串dewei进行了修改,而是name这个变量名找到了另一个内存里房间的主人xiaoli而已。
dewei还在它过去的内存房间里,没有任何改变,也无法改变。
三、python的内置函数id和len
1.python的内置函数id
- 返回变量的内存地址。
也可以认为,返回的是每个变量家庭地址的门牌号。它是一个整数。
- 数字地址=id(变量)
定义的方法就是将变量放到id的括弧内,并且给它赋予一个变量。或者直接打印出来,就像使用type一样。
看图片,dewei和xiaomu是住在不同的区域,看似是修改了name的字符串,但是其实dewei还在自己的家里静静的生活着,没有被打扰。这就是字符串不可改变的特性。
如果把name重新赋值dewei,能找到那个房间的dewei吗?
是不行的,因为内存里面的房间数量是很紧张的。当我们不再使用它的时候,内存管家为了腾空让新的住户进来,就会把dewei赶出去了。
所以,即便我们再定义一个dewei给name,实际上已经不是上一个门牌号的dewei了。只是巧合,长得一样而已。
随着对数据结构的深入,会对字符串不可修改的理解变得更加清晰。
2.python的内置函数len
- 返回字符串的长度。
- 无法返回数字类型的长度,因为数字类型没有长度。
- 返回值=len(字符串)
通过len括弧包裹一个字符串,可以给它赋予一个变量。也可以直接print,就像type一样。通过len这个函数可以帮助我们对于一个字符串长度的判断。
比如访问一个网站,当我们要注册的时候,会输入密码,那么密码的长度经常会被限制。实际上,通过len函数检查密码是否超出了限制,是经常用的。如果超出了,就会提醒你。
比如,对于密码的长度要求是16,如果你的密码长度定义了17个长度,就会提示错误。
len里面使用数字类型是不可以的,程序会直接报错。
3.代码
当name被重新赋值之后,之前的dewei就会被内存管家赶出去了。因为这个dewei没有人关注了。它对应的变量名又找到了新的住户,所以内存管家就将它请了出去。
但是,有什么办法让这个dewei一直存在在这里呢?很简单,只要让新的变量名等于这个dewei。
# coding:utf-8
name='dewei'
name_02='小编'
print(id(name))
print(id(name_02))
new_name=name
print(id(new_name))
运行结果:
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/.venv/bin/python /Users/llq/PycharmProjects/pythonlearn/pythonlearn1/string_test.py
4343908720
4343961328
4343908720
所以,只要有一个变量还使用着dewei,就可以通过将新的变量和老的变量再进行赋值的方式,找到之前的dewei。
三引号的注释也可以用作字符串来使用:
# coding:utf-8
name='dewei'
name_02='小编'
print(id(name))
print(id(name_02))
new_name=name
print(id(new_name))
print(type(name))
info ='''今天的天气真好呀
'''
print(info)
info1='asdf'
info2="asdf"
new_str="nihao dewei 'nihao' '' xiaomu"
str_01=''
print(len(str_01))
print(new_str)
单引号和双引号定义出来的字符串没有任何的不同。空字符串的长度是0。
运行结果:
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/.venv/bin/python /Users/llq/PycharmProjects/pythonlearn/pythonlearn1/string_test.py
4301326576
4301379312
4301326576
<class 'str'>
今天的天气真好呀
0
nihao dewei 'nihao' '' xiaomu
直接在单引号内再次输入单引号不会报错:
因为里面的单引号的内容是空的,所以,不会报任何的错误。