【重新学一遍python】2.基础语法

1. 引述

学习任何语言,都要学习其语法,句子结构。学习编程语言亦是如此。
所幸,与机器的交流的语言相比人与人之间交流的语言,要简单明了得多。

本章中,主要讲述python的三个基本点。变量,函数,结构。

2. 变量

2.1 什么是变量?为什么要有变量?

首先,什么是变量,是相对与常量而言的。

假设我们制作一个计算器。

当你使用计算器根据半径计算周长的时候,c = 2ΠR ,此时R是变量,Π是常量等于3.1415926……。

为什么要有变量?因为你在编程的时候,只需要用R这个符号,就可以替代你输入的任何值,它随你输入变化而变化。

2.2 变量的类型

数据类型 示例
Number int 32
float 32.0
bool True False
complex 32 + 4j
String 字符串 ‘32’ 或者是 “32”
List 列表 [3,2,1] 方括号
Tuple 元组 (3,2,1) 圆括号
Set 集合 {3,2,1} 花括号
Dictionary 字典 {‘first’:1,‘second’:2} 花括号+冒号

首先,明确无论是怎样的数据,在计算机内部,都是以0和1的形式存储的。一个0或者一个1,所占用的内存,称之为1bit(比特)。上述不同的类型,所占用的空间也不同。

2.2.1 int类型常用场景:索引。

比如我有一个列表list1 = [4,5,6] ,list[1] 就是5 。

注意,在除了matlab的编程语言之中,大多数索引都是以0开始的。 所以1索引到list1的第个值。list1[方括号内必须为整数],否则会报错。 这很好理解,因为list1中只有第1,2,3个数,不存在第1.5个数.

在python之中,你甚至可以使用负整数索引,猜猜list1[-1]的值是多少?

没错,倒数第一个,它的值是6。

  • float,conplex类型应用场景:计算

2.2.2 bool类型应用场景:判断

bool类型只有两个值,True 和 False。这里就要讲到逻辑语句。

还是假设我们在做一个计算器,要实现一个功能,假如一个数大于10,就让他乘以2,否则,就让他加上3

if num > 10:
	num = num * 2
else:
	num = num + 3

这里的num > 10 的值,就是一个bool类型。当num = 11,那么它为真,执行后变成22,当num = 9,执行else里面的语句,变成12.

顺便一提,在python中,=表示赋值,==表示判断两边值是否相等。

2.2.3 字符串

字符串是一个最为直观的数据类型,比如’hello, world’。可以看看另一篇博文讲述python3字符串

2.2.4 列表

列表无疑是最为实用的一个数据类型,再也不用思考C++那种,需要预分配多少内存,放的是什么样的数据类型, 才足够放下一个可变长的输入数据了。只需要一个append,你就能放下无限长的数据!(雾)

例如下面这一段

[
1,
'你好呀',
True,
{'心愿':'一夜暴富'},
……
]

2.2.5 其他数据类型

元组和字典,放在函数里面讲吧,现在只要知道它的形式是怎么样的就行。

元组a=(1,’2‘,{},[]),和列表差不多,区别是不能修改值。例如,可以使用
list1[0] = ‘先定个小目标’,但你不能使用a[0] = ‘赚他一个亿’。这是做不到的。

字典,顾名思义,就是你可以根据一个值来查找对应的说明。也称之为“键值对”。冒号左边是键key,右边是值value。例如下面这个例子。

person = {
	'name':'老王',
	'age':'33',
	'height':180,
	'weight':'76kg',
	'position':None,
}

可以看到,这种数据类型非常清晰,你可以使用person[‘name’],就得到“老王”,person[‘age’]就得到33。

至于集合,数学意义上的集合,交并差,元素唯一等性质。用得时候再看吧。

3.函数

3.1 函数的结构

def 函数名(参数)
	……
	return 返回值

主要就是,函数名称,参数,以及返回值。调用方式就是,函数名()

  • 函数名称

和变量名一样,随便取,只要不和现有的冲突了,都行。

  • 返回值

可以在调用的时候,返回一个值。例如

def A()
	return 32
a = A()

实际上a = 32.

返回值的使用,注意两点:

  1. 无return语句,默认返回None,什么也不是
  2. return 1,2,3,4 实际上是返回元组类型 (1,2,3,4)
def A():
    return 1, 2, 3, 4
s = A()
a, b, c, d = A()

这种情形下,s 的数据类型是tuple,用print打印,可以得到(1,2,3,4)
而下面,a,b,c,d就是分别赋值,你可以得到a=1,b=2,c=3,d=4.整数类型

当你左边的变量个数不是1或者4,就会报错哦!因为你1个变量,情有可原,我把这个返回的元组赋值给你,你4个变量,也可以接受,元组解包,对号入座没有问题。

a, b = A()

但你只有两个变量在左边,是要干啥呢,1给a,还是1,2给a,还是1,2,3?

暧昧不清的命令,无法正确执行。

  • 传入参数

函数中较为复杂的一点,就是这个传入参数了,因为形式灵活。

  1. 简单变量传参
def A(a,b)
	print(a+b)

这种情况,你必须传递两个参数到A中。A(3,10)

  1. 默认参数
def A(a,b=10)
	print(a+b)

这种情况,你可以传递1-2个参数到A中。A(3,10) 或 A(3)都可以得到13的结果。

  1. 不定长参数-元组 (注意写法:一个*号)
def A(*args):
    print(args)
A(1,2,3,4,5,6,7,8,9)

这种情况,你可以传递任意个参数,你可以写A(3,10)或者A(1,2,3,4,5,6,7,8,9)。
因为它会把你传入的所有参数存储在元组之中,你实际上做的就是args = (3,10)

  1. 不定长参数-字典(注意写法:两个*号)
def A(**kwargs):
    print(kwargs)
A(name='隔壁老王', age=18, money=99999999)

这种情况,你可以传递任意个参数,但是格式要符合字典格式,key=value.

4. 结构

4.1 缩进 - 4个空格

提的有点晚了点,不过顺口一说就行。在python语言之前,一个代码块是这样的:用花括号,或者是其他的方式,begin,end之类的包裹起来。

int A(){
	pass
	return 0
}
```A
```python
def A():
	pass

python里,简化了这种形式,使用强制的缩进,来保证代码块以及简洁性。

a = 10
def A()
	b = 3
	print(b)
b = 5
print(b)

在def函数的时候,缩进了四格,代表这一块代码是输入def函数的,而到了b=5的时候,又回来到顶格,就表示函数的定义结束了。其他类似的代码块也是如此。

4.2 判断 if

if 你喜欢我:
	你点个关注+else:
	你关掉了网页

if 后面是一个逻辑语句,判断是True或是False,若真,执行if框内的语句,否则就执行else框内的语句。

结构如此,注意末尾有冒号。

4.3 循环for 和 while

while True:
	print('I Love You')

上面这条语句,就是不停地说“I Love You”,也称死循环,没有结束条件。

c 
while c < 100:
	c += 1
	print('I Love You')

while后面加上判断条件,这次说一百遍就不说了!且行且珍惜。

for c in range(100):
	print('I Love You ')

range(100)的作用是得到[0,1,2,3,4,……,98,99]
for c in range(100)就是遍历一下上面的列表,c=0,执行一下下面的print,然后c=1,执行下面的print。也是只说一百次。

是for循环比较常用的一个句式结构。

你可能感兴趣的:(python,python教程,python入门,初学编程,Python)