黑马程序员技术交流社区

标题: 笔记 [打印本页]

作者: baiyujie    时间: 2019-6-20 15:31
标题: 笔记
# 循环语句

语法格式一:

```python
# 循环从while开始,后面添加条件
while "条件":
        "反复执行的代码"
        .....
```

循环变量控制:

```python
i = 0                                # 循环变量的初始值,通常从0开始
while i <= 3:
        print()
    "或者" ...
        i += 1                        # 循环次数设置,若未设合理退出条件,会在循环内一直运行(死循环)
```

举例:1-100以内求和

```python
num = 1
sum = 0
while num <= 100:
    sum += num                # sum+num后,再放回sum
    sum += 1                # 循环变量控制
print(sum)
```

易入误区:要提高思考问题和需求的逻辑关系(简单例子)

```python
num = 1
sum = 0
while num <= 100:
        sum += num
    num += 2                # 人脑代替来逻辑,不可取

   
num = 1
sum = 0
while num <= 100:
           if num % 2 ==0:  # 正常逻辑,学会思维和思路的逻辑想法
        sum += num
    num += 1
```



# 输出格式改造

通过“end  = ”改变输出:

```python
print("...",end=" \n[换行符]" )    # end(表示print结束时,要做的内容,例:换行 -\n)
```

几种类型:

```
end =                  # print完成后,用......结束

values()        #

sep()            #

file()            #

flush()         #
```



# break 与 continue???

注意: **必须** 出现在循环体中,只能控制 **当前的** 循环体(循环嵌套中)

break:

```python
i = 1
while i <= 10:
    if i == 5:
        break                        #可以提前终止,直接跳出当前循环,执行循环后面的代码
    print("....")
print("next")                  #不满足while时,开始从此处执行
>>next
```

continue:

```python
i = 1
while i <= 10:
    if i == 5:
        continue        #不向下运行,直接跳回while,执行下次当前循环,至当前循环跳出
    print("....")
print("next")
```

# 循环嵌套

while 条件:

​        while 条件:

​                反复执行的代码

​                .........

练习:99乘法表模型

```python
*
**
***
#......
#每一行由不同的*打印 ,有多个行
#先完成1*3=3,再完成 1*1 1*2 1*3 , 最后完成竖列的循环
j = 1
while j <= 9:                                                # 行,控制竖排量
    i = 1                                                       
        while i <= j:                                        # 列,控制横排量
            print("%d*%d=%d" % (i, j, i*j) ,end = "")         # i*j 打印
            i += 1                                                # 内循环,控制i
    print()                                        # 空格,空一行
    j+=1                                                        # 外循环,控制j
```



# 循环嵌套中的break和continue

break和continue仅能控制其所在的循环,不能控制其他循环结构

```python
j = 1
while j <= 9:                                               
    i = 1                                                       
        while i <= j:
        break                                                             # 到此break,跳至第8
            print("%d*%d=%d" % (i, j, i*j) ,end = "")         
            i += 1                                               
    print()                                       
    j+=1
    break                                                                                        # 外层break,不影响内部
print()
```

特殊理解:

```python
#    *
#   ***
#  *****
# *******
# 有两种字符, 空格 与 *号

i = 0
while i < 4:
    j = 0
    while j < 2 - i:
        print(" " ,end="")
        j += 1
    k = 0
    while k < 2 *(i + 1) - 1:
        print("*", end="")
        k += 1
    print()
    i +=1
>>
```



# 函数

定义格式与调用规则:

```python
def 函数名():                # 格式一
        函数体
        .....
       
>>函数名()                        # 调用一


def 函数名(参数1,参数2...):        # 格式二
        函数体
        ....
               
>>函数名(参数1,参数2,...)                #调用二
```

顺序规则:

```python
# 函数的调用,只能在定义之后,因为程序自上而下运行
```

函数文档注释:

```python
# 两个函数间 尽量隔两行


def fx():
""" ...函数注释... """


def fx2():
""" ...函数注释... """
```

函数定义的参数:

```python
# 参数一定要一一对应
# 定义的位置,参数只能写变量,直接写数据会报错
# 调用的位置,参数可以是数据,也可是变量
```

形参与实参:

```python
def 函数名(形参):
        函数体
        ....
               
>>函数名(实参):

# 形参在定义使用,实参在调用使用
# 均需一一对应,否则报错
```

函数定义——返回值

```python
def 函数名(a,b,c):                                  #        a,b,c 为变量列表
        函数体
        ...
        return 函数运行结果返回值               # 用返回值,继续使用时选择此方法
>>
变量名 = 函数名(a,b,c)

def def 函数名(a,b,c):                                  #        a,b,c 为变量列表
        函数体
        ...
    return 1                                # 同一个函数执行过程中,只能执行一次return 语句,      
        print("777")                        # 执行过后,后面内容不再执行,函数执行完毕
       
    ....
    return 2, 3, 4                         
a = mul(a,b,c)                                # 可以接收多个值,变量数量对应即可
```



# 变量作用域

局部变量:函数内部定义的变量,从 <font color = red>定义位置</font> 开始,到 <font color = red>定义结束位置</font> 有效

全局变量:函数外部定义的变量,在 <font color = red>整个文件</font> 中有效

```python
def num1(s1,s2):
        s1 = 1                        # 局部变量
        s2 = 1 + s1

s1 = 1                                #全局变量

def num1(s3,s4):
        s3 = 1                        # 局部变量
        s4 = 1 + s3
```

函数间不能共享内部定义的变量

```
#  s1 ,s2不能再 def num1()里使用
```

变量转换

```python
global 变量                #更换类型的方式

使用:

global X
x = 10           #global一定要在X的上面,先声明再使用
```



# 函数间调用

可以在一个函数的书写中,加入其他的函数

```python
def add(a,b):
        return a + b
       
       
def div(a,b):
        return a / b
       
def get(a,b):
        c = add(a,b)                        # 再次调用其他函数
        d = div(c,2)                        # 再次调用其他函数
        return d
```






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2