python (2) 基本语法 (if、for、while、函数、模块、)

1. if

1.1 简介

if 条件测试1 :
	条件测试1True 后执行的
elif 条件测试2 :
	条件测试2True 后执行的
else :
	条件1和条件2都为False时执行的
tuples = ('a', 'b', 'c', 'd')

for data in tuples:
    if data == 'c':
        print(data)
    elif data == 'd':
        print(data)
    else:
        print('no')

1.2 条件测试

条件测试区分大小写。如果不在意大小写可以将变量值转换为小写 x.lower()
Python2不支持 True和False,只有0和1。Python3支持。

1. 等于、不等于、大于、小于、大于等于、小于等于

==、!=、>、<、>=、<=

2. 检查多个条件, and与、or或

3. 检查特定值是否在列表中

tuples = ['a', 'b', 'c', 'd']

if 'a' in tuples:
    print('yes')
else:
    print('no')

4. 确定列表不是空的

tuples = []

if tuples:
    print('yes')
else:
    print('no')

2. for

for循环用于遍历一个迭代对象的所有元素。循环内的语句段会针对迭代对象的每一个元素项目都执行一次。

for test_str in ['are', 'you', 'ok', '?']:
    print(test_str)  # 打印 are you ok ?

for i in range(4):
    print(i)  # 打印 0、1、2、3

else

Python中的for循环可以选择是否关联一个else子句。在for循环完成才会执行此else子句。
else子句是可选的秒如果没有else子句,for循环完成后会顺序执行后面的语句。

for test_str in ['are', 'you', 'ok', '?']:
    print(test_str)  # 打印 are you ok ?
else:
    print('Yes')

break

break表示立即跳出当前整个for循环,包括else子句中的动作也不会执行。

for test_str in ['a', 'b', 'c', 'd']:
    if test_str == 'b':
        print('found')
        break
else:
    print('not found in test_str[]')
# 打印 found 

continue

3. while

else

while循环执行完成后会执行一次else下的语句块。

break

结束当前整个循环,包括else下的语句块都不执行。

continue

跳出当前迭代,执行下一个迭代。

4. 用户输入 intput

基础用法

提示输入,intput的返回值就是字符串。

a = input('输入字符串')
print(a)
print('类型是 ', type(a))  # 类型是 str

结合 int(),将字符串转为 int类型

a = int(input('输入数字'))
print(a)
print('类型是 ', type(a))  # 类型是 int

结合 float(),将字符串转为 int类型

a = float(input('输入数字'))
print(a)
print('类型是 ', type(a))  # 类型是 float

5. 注释

# 注释
  # 行尾的注释,在代码后面加两个空格再 #

'''
多行注释用 三个引号 '''    '''
'''

6.函数

6.1 创建函数

def function_name(parameters):
    ''' docstring '''
    函数体
    return

1)关键字def,表示函数头的开始
2)function_name 函数名字
3)parameters 函数参数
4)冒号标记函数头的结束
5)docstring 描述函数功能的文档字符串
6)函数体,语句必须具有相同的缩进级别
7)可选的return语句

6.2 函数参数

6.2.1 实参和形参

def func_test(test_para):
    print('test_para:', test_para)
    return

a_str = input('输入字符串')
func_test(a_str)

函数中定义的参数是形参,上列中的 test_para;
调用函数时实际传递给函数的值是实参,上列中的 a_str ;

6.2.2 传递实参

1)位置实参

调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此,最简单的关联方式是基于实参的顺序。这种关联方式被称为位置实参

def func_test(para_name, pare_work):
    print('', para_name, pare_work)
    return

a_str = input('name 输入字符串')
b_str = input('work 输入字符串')
func_test(a_str, b_str)
2)关键字实参

关键字实参是传递给函数的 名称—值对,直接在实参中将名称和值关联起来了,无需考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。

def func_test(para_name, pare_work):
    print('', para_name, pare_work)
    return

func_test(para_name = 'abc', pare_work = 'edf')

6.2.3 默认值

编写函数时,可给每个形参指定默认值 默 。在调用函数中给形参提供了实参时,Python将使用指定的实参值;否则,将使用形参的默认值。因此,给形参指定默认值后,可在函数调用中省略相应的实参。使用默认值可简化函数调用,还可清楚地指出函数的典型用法。

def func_test(para_name='abc', pare_work='edf'):
    print('', para_name, pare_work)
    return

func_test()

6.2.4 列表做实参

list_test = ['abc', 'edf']

def func_test(names):
    print('', names[0], names[1])
    return

func_test(list_test)
在函数中修改列表
list_test = ['abc', 'edf']

def func_test(names):
    names[0] = '123'
    print('', names[0], names[1])  # 打印 123 edf
    print('', list_test[0], list_test[1])  # 打印 123 edf
    return

func_test(list_test)
禁止在函数中修改列表

可向函数传递列表的副本而不是原件;这样函数所做的任何修改都只影响副本,而丝毫不影响原件。切片表示法[:] 创建列表的副本。

list_test = ['abc', 'edf']

def func_test(names):
    names[0] = '123'
    print('', names[0], names[1])  # 打印 123 edf
    print('', list_test[0], list_test[1])  # 打印 abc edf
    return

func_test(list_test[:])

6.2.5 任意数量的实参,元组做形参

Python允许函数从调用语句中收集任意数量的实参,形参名中的星号(*)让Python创建一个名为此形参的空元组,并将收到的所有实参都放在这个元组中。

def func_test(*names):
    print('', names, type(names))  ## ('a', 'b', 'c') <class 'tuple'>
    for a in names:
        print(a)
    return

func_test('a', 'b', 'c')

6.2.6 位置方式传递实参+任意数量实参,元组做形参

def func_test(size, *names):
    print('', size, names, type(names))  ## 3 ('a', 'b', 'c') <class 'tuple'>
    for a in names:
        print(a)
    return

func_test(3, 'a', 'b', 'c')

6.2.7 关键字方式传递实参+任意数量实参,字典做形参

形参名中的星号(**)让Python创建一个名为此形参的空字典,并将收到的所有实参都放在这个元组中。

def func_test(num, size, **names):
    print('', size, names, type(names)) ## 3 {'name': ('a', 'b', 'c')} <class 'dict'>
    return

func_test(num=1, size=3, name=('a', 'b', 'c'))

6.3 返回值

函数可返回任何类型的值,包括列表和字典等较复杂的数据结构。

6.4 函数变量作用域

定义在函数内部的局部变量只在函数内部生效

a = '123'

def func_test():
    a = 'abc'
    print(a)  # abc
    return

func_test()
print(a)  # 123

7.模块 module

7.1 简介

Python的模块 (module) 是一个后缀为.py的文件,文件中包含Python的定义和语句。

封装路线:函数、类、模块、包、项目

7.2 模块的引入

一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。

1) 导入整个模块 import

import 模块名 导入模块,后续采用 模块名.函数名 使用模块的函数。

2) 导入模块中的指定内容 from … import

from modname import name1[, name2[, … nameN]]

# 导入模块内所有名称
from fibo import *

3) 模块别称 as

模块名后使用 as 时,直接把 as 后的名称与导入模块绑定,相当于给模块起了一个别称。

import fibo as fib
fib.fib(500)

from fibo import fib as fibonacci
fibonacci(500)

4) 重新加载模块 reload

reload() 用于重新载入之前载入的模块。

为了保证运行效率,每次解释器会话只导入一次模块。如果更改了模块内容,必须重启解释器;

import importlib
importlib.reload(modulename)

5) 模块的搜索路径

当你导入一个模块,Python 解析器对模块位置的搜索顺序是:
1.当前文件所在的目录
2.如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
3.如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。
模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

sys.path本质上是一个列表,可以通过操作列表的方式去新增和删除路径。

import sys

print(sys.path)  # 查看sys.path

# 插入路径
sys.path.insert(0, "D:\\Program Files (x86)\\python\\home\\test")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值