day01

在python3中,基础的数据容器有:字符串,列表,元组,集合,字典。下面我将一一介绍这几种常用的容器类型

1.字符串(str)

	这应该是见得最多的了,无论什么语言都是,我对其他语言并没有什么了解,所有只能说说在python中的字符串。
	(1).字符串的语法格式是:单引号('xxx'),双引号(''xxx''),三引号('''xxx''')将内容包起来,如s = 'abc',s = ''abc'',需要注意,三引号一般不会经常用,它一般会用在函数的文档字符串中,这个后面讲函数再说。
	(2).字符串是一个序列,何为序列?就是有序排列,“有序”是一个重要的特征,需要注意。且字符串是不可变序列,何为不可变?就是一旦定义好了,内部的元素就不可以再增加,删除和修改。
	(3).字符串可以运算,但是仅仅可以‘+’和‘*’,这个举个简单的例子立刻就能明白:

a = ‘1a2b3c’ b = ‘abc’ c = a+b c = ‘1a2b3cabc’ 也可以这样写:a +=b a=‘1a2b3cabc’
a = ‘1a2b3c’ c = a*2 c = ‘1a2b3c1a2b3c’ 也可以这样写:a *=2 a = ‘1a2b3c1a2b3c’
需要注意,其实在python内部,+ 和 += 是有区别的,执行+ 只有add方法,而+= 有iadd 和add方法,是不一样的
(4).字符串可以按照下标来取值,如 a = ‘abc’ a[0] = ‘a’ a[1] = ‘b’ a[2]=‘c’ ,也可以切片,何为切片?可以理解为用刀去把想要的元素切下来,如 a=‘abc’ a[:2] = ‘ab’ 默认从0开始,取值下标是前开后闭。如a[0:2] = ‘ab’ 2这个下标元素是取不到的,只能取到下标为1的元素,其实还有一个参数是步长,默认为1,所以完整的应该是a[开始下标:结束下标:步长],都用冒号隔开。
(5).可以用在字符串的内建方法:len(a) 计算字符串的长度,也就是字符数,返回一个数字,max(a)返回该字符串中字符的uncode码最大的那个字符,同理min(a),返回最小,这三个内建函数中,len()是最有用的。还有一个也很有用的方法,str(对象),这个方法可以将一切的数据转换成字符串,很暴力,也很强大。

2.列表(list)

		如果看懂了字符串,那么就具备了基本的思维了,其他几种都可以参照学习,列表也是一个序列,但是列表是可变的,就是可以随时增加,删除,修改里面的元素,这个在后面也是非常常见的,而且很多时候我们的数据就是用列表来保存。
		(1).语法格式,[元素,元素,元素,。。。。。。] 就是用中括号把数据包起来,数据与数据之间用逗号隔开
		(2).列表和字符串一样,可以用下标取值,如:a=['a','b','c']  a[0]='a' a[1]='b',也可以像字符串一样切片,且方法都是一样的,不同的是可以切片赋值,相当于修改元素。列表可以用append()在末尾增加元素或者指定增加元素放在哪个位置,也可以用remove()删除末尾的元素,也可以用del()删除指定的元素。
			(3).列表也有一个方法,list()

3.元组(tuple)

		元组是不可变容器,有序,这个类型用的比较少,了解一下就行
		(1).语法:(,),元组内元素与元素之间也是用逗号隔开,但是空元祖也必须要有一个逗号作为这是一个元组的标志。
		(2).也可以用下标取值
		(3).也可以切片
		(4).元组的转变方法:tuple()

4.集合(set)

		集合是一个可变的,无序的容器,集合有一个特殊的地方就是,集合内的元素都是不可重复的。
		(1).集合的语法格式:{元素,元素,。。。。。}
		(2).集合也可以用下标取值
		(3).集合内的元素也必须是不可变对象
		集合可以用来去重,当需要将某个容器呢重复的元素去掉时,可以利用集合的元素不可重复来实现,方法是,set(对象)返回一个集合,再将集合变回去就行了。

5.字典

		这个是非常重要的容器类型,主要是高效,它是以键值对的形式显示的,字典是可变的容器,无序,但是字典的键是不可以重复的,我们可以将字典的键看成新华字典的目录,目录是不可能重复的,不然就失去了它的意义。
		(1).语法格式:{key:value}   如a = {‘a’:'b',‘b’:1} 键值对与键值对之间用逗号隔开。
		(2).字典的取值,用键来取值,如:a = {‘a’:'b',‘b’:1} a['a'] = 'b'  a['b'] = 1
		(3).字典的增删改:直接对键进行赋值,如果该键存在,则修改该键对应的值,如果该键不存在,则就是新增一个键值对,也就是新增一个元素,删除也是用键来删除,语法为:del a['a']  就是删除a字典中,键是‘a’的那个键值对。
		(4).字典的查找,删除,增加都要快于集合,因为字典相当于直接去找确定的那个元素,而集合需要一个一个的去判断是不是我们需要操作的元素,数据量小是没有多少差距的,数据量一旦大了,差距就会很明显。

接下里是很重要的语句,循环语句和if语句,这个简直不要太常用。python中常用的循环语句有:while循环和for。。。in循环

if语句: if语句通常用来做条件判断:

	举个简单的例子就明白了:
		a = 100
		if a>0:
			print('a大于0')
		else:
			print('a小于0')
	这里我们定义了a的值为100,所以是大于0的,那程序就执行print('a大于0')这条语句,而不会执行print('a小于0')。
	如果我们定义a = -1 那么程序就会执行else下的print('a小于0'),而不会执行print('a大于0')。
if语句也是可以嵌套的,里面可以再嵌套几个if语句,for语句,while语句等等。不过嵌套太多小心自己把自己搞晕

for。。。in循环

与其说是循环,不入说是遍历,for循环可以遍历所有可迭代对象写段代码来说明:
	a = [1,2,3,4,5,6]
	for i  in a:
		print(i)
	这里的i是一个变量,a里面的元素会循环的赋值给i,所以打印结果就是:
	1
	2
	3
	4
	5
	6
	print是输出语句,它其实有一个默认的参数为‘\n’也就是换行,如果我们不手动设置,就自动换行了。

while循环

这个才是真的循环啊,几段代码说明
语法格式:
	while 条件:
		语句1
	else:
		语句2
	条件的结果为true就是执行语句1,为false,执行语句2
	这里我们可以用while来写一个死循环,什么是死循环?就是一旦运行,就不会停下来,会永远的运行下去,直到天荒地老,海枯石烂。
	例如:
		while True:
			print('天荒地老,海枯石烂')
		while 1>0:
			print('天荒地老,海枯石烂')
	以上两个循环都是死循环
	那么,如果我们需要死循环,但是又不像永远循环下去要怎么办?有几种解决办法。
	1.break    这个单词放到循环里,当程序一遇到这个单词,就会立刻停止循环,很简单粗暴
	2.嵌套一个if语句,if语句中还是用break
	3.return 返回值   这个语句会停止循环,返回指定的结果,一般用在函数中
	说到break,不得不说一下continue,这个语句一般是放在for循环中,由于for循环是要去把目标容器中的所有元素都取出来,是不受控制的,容器内有些元素是我们需要的,有些是我们不需要的,那么continue的作用就来了,他配合if语句,可以很方便的跳过我们不许要或者是不满足条件的元素,且不会终止for循环继续运行。非常好用,些几行代码说明一下:
	a = []
	for i in range(100):
		if  i % 2 ==0:
			continue
		else:
			a.append(i)
	print(a)
	range(100),是生成从0-99的数字
	if条件就是,取到的数字能被2整除,就不要,意思就是我只要奇数,不要偶数。如果是奇数,就执行else中的语句,将这个数放到集合中,否则就丢掉。看,是不是很好用,也可以理解为,continue之结束到当前这一层的循环,继续下一层虚循环,直到for循环全部结束。
### 苍穹外卖 Day01 课程内容概述 #### 项目初始化与环境搭建 在苍穹外卖项目的第一页(Day01),主要涉及的是项目的初始配置以及开发环境的搭建工作。这一步骤通常包括创建项目结构、引入必要的依赖库以及设置数据库连接等内容。 为了确保系统的稳定性和可扩展性,在此阶段会完成以下几项重要任务: - **Spring Boot 项目初始化**:通过 Spring Initializr 创建基础框架,选择合适的 Starter Dependencies 来支持后续的功能实现[^4]。 - **Maven 配置文件调整**:修改 `pom.xml` 文件中的版本号及相关插件配置,以便于管理外部资源和工具链集成[^5]。 #### 数据模型定义 针对业务逻辑的需求分析之后,紧接着就是数据表的设计及其对应的 Java 实体类编写过程。例如 Employee 表格将会被映射成一个名为 `Employee` 的 POJO (Plain Old Java Object),其中包含了诸如 id, username, password 等字段来表示每位雇员的基本资料信息[^6]。 此外还可能涉及到其他关联表格如 Department 或 Role ,它们之间可能存在一对多或者多对多的关系模式,这些都需要提前规划好并落实到具体的代码当中去。 ```java @Entity @Table(name="employee") public class Employee { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; private String name; // Getters and Setters omitted for brevity } ``` #### 控制器层接口声明 基于 RESTful API 设计理念下,控制器负责接收客户端请求并将参数传递给服务层处理后再返回响应结果。因此在这个部分里我们需要按照既定规则制定各个 HTTP 方法所对应的操作路径及其输入输出格式说明文档[^7]。 比如新增加一条记录可以采用 POST 请求方式;而如果要查询某个特定对象则应该利用 GET 加上唯一标识符作为附加条件等等... --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值