python基础03-循环结构及函数基础
循环结构及函数基础
循环结构(for-in)
说明:也是循环结构的一种,经常用于遍历字符串、列表,元组,字典等
格式:
for x in y:
循环体
执行流程:x依次表示y中的一个元素,遍历完所有元素循环结束
示例1:遍历字符串
s = 'I love you more than i can say'
for i in s:
print(i)
示例2:遍历列表
l = ['鹅鹅鹅', '曲项向天歌', '锄禾日当午', '春种一粒粟'] for i in l:
print(i) # 可以获取下表,enumerate每次循环可以得到下表及元素
for i, v in enumerate(l):
print(i, v)
示例3:遍历字典
d = {'a':'apple', 'b':'banana', 'c':'car', 'd': 'desk'} for key in d:
# 遍历字典时遍历的是键
print(key, d.get(key)) # for key, value in d.items():
# 上下两种方式等价 d.items() <=> dict.items(d)
for key, value in dict.items(d):
print(key, value)
列表生成式
- 可迭代对象:列表、元组、字典等都是可迭代对象,就是可以遍历的对象
- range,用法如下:
print(range(10))
# 可以生成从0开始到10的连续整数的迭代对象
print(range(0, 10)) # 可以遍历
for i in range(10):
print(i) # 强制转换为列表
print(list(range(1, 11)))
- 列表生成式:快速生成具有特定规律的列表
# 列表生成式
print([i for i in range(1, 11)])
print([i*2 for i in range(1, 11)])
print([i*i for i in range(1, 11)])
print([str(i) for i in range(1, 11)])
print([i for i in range(1, 11) if i % 2 == 0])
多重循环:就是循环中嵌套循环
- 示例1:从终端输入一个整数,打印如下图形:
n = int(input('请输入一个整数:')) '''
1
1 2
1 2 3
1 2 3 4
...
1 2 3 4 ... n
''' '''
j = 1
while j <= n:
i = 1
while i <= j:
print(i, end=' ')
i += 1
print()
j += 1
''' for i in range(1, n+1):
for j in range(1, i+1):
print(j, end=' ')
print()
- 示例2:打印九九乘法表
for i in range(1, 10):
for j in range(1, i+1):
print('{}x{}={}'.format(j, i, j*i), end=' ')
print()
- 示例3:列表排序(选择法)
l = [1, 9, 4, 2, 0, 8, 3, 7] # 获取长度
n = len(l) # 外层循环用来控制循环的圈数,每一圈可以确定一个元素的位置
# 确定n个元素起始只需要n-1圈即可
for i in range(n-1):
# 内层循环用来比较大小交换元素,一圈确定一个元素
for j in range(i+1, n):
# 如果不合适
if l[i] > l[j]:
# 交换两个变量
l[i], l[j] = l[j], l[i] print(l)
函数
定义:具有特定功能的一段代码
优点:
- 解决代码的重复书写问题
- 可以将功能的实现者和使用者分开,提高开发效率
- 增加的代码的可移植性
分类:
- 库函数:print、input、abs等
- 自定义:用户自己封装的函数
格式:
def 函数名([参数列表]):
函数体
[]表示可选,参数可以没有,也可以有多个。
函数名:
- 遵循标识符的命名规范(与变量命名相同)
函数调用:
- 函数定以后不会执行,需要调用才执行
- 调用:函数名([参数])
示例:
# 无参无返回值
def print_hello():
print('Hello') # print_hello() # 带参无返回值
def print_n_hello(n):
for i in range(n):
print('Hello') # print_n_hello(5) # 带参有返回值
def add(a, b):
c = a + b
# 返回结果
return c
print(add(3, 5))
函数参数
- 形参:形式参数,函数定义处的参数
- 实参:实际参数,函数调用处的参数
- 必传参数:也叫位置参数,前面定义的函数中使用的都是必传参数,调用时的形式必须要与定义的一致。
- 默认参数:就是有默认值的参数,必须放在最后
- 可变长度参数:函数调用时传递必定义时的参数要多,多出来的参数会保存在args和kwargs中
def show(a, b='默认值'):
# a就是必传参数
print(a)
# b就是默认参数,就是有默认值的参数,必须放在最后
print(b) # show(1, 2)
# 关键字参数,传递参数的时候指定了名字,顺序就无所谓了
# show(b=456, a=123) def var_len_args(a, b, name='默认名称', *args, **kwargs):
print(a)
print(b)
print(name)
# args是一个元组,用来存放所有的多出来的位置参数
print(args)
# kwargs是一个字典,用来存放所有的多出来的默认参数
print(kwargs) var_len_args(1, 2, 3, 4, age=18)
- *的特殊用法
def show(a, b):
print(a, b)
l = [1, 2]
# 略显啰嗦
# show(l[0], l[1])
# 精简方法
show(*l)
def show2(a='aa', b='bb'):
print(a, b)
d = {'a':'apple', 'b':'banana'}
# show2(a=d['a'], b=d['b'])
# 上面方式的简单书写方法
show2(**d)
python基础03-循环结构及函数基础的更多相关文章
- python基础之循环结构以及列表
python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.python IDE的选择 IDE的全称叫做集成 ...
- 第五篇:python基础之循环结构以及列表
python基础之循环结构以及列表 python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.pyth ...
- 基础语法-循环结构for
基础语法-循环结构for 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.for循环格式 for(初始化表达式;循环条件表达式;循环后的操作表达式){ 执行语句(循环体); } ...
- 基础语法-循环结构do...while
基础语法-循环结构do...while 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.do...while语句格式 do{ 执行语句; }while(条件表达式); 温馨提示: ...
- 基础语法-循环结构while
基础语法-循环结构while 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.while语句格式 while(条件表达式){ 执行语句; } 二.while语句案例 /** * ...
- python分支和循环结构
本文收录在Python从入门到精通系列文章系列 1. 分支结构 1.1 应用场景 迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种代码结构通常称之为顺序结构.然而仅有顺序结构并不能解决 ...
- Python编程基础:循环结构
一.为什么要用循环 现在有一个任务,要求你输出一百遍"好好学习,天天向上!",想一想,你会怎么做? (一)老老实实的笨方法 print("第1遍写:好好学习,天天向上!& ...
- Python新手学习基础之循环结构——For语句
for语句 在Python里,循环语句除了while语句,还有for语句. 通常我们用for循环来遍历(按约定的顺序,对每个点进行访问,且只做一次访问)有序列的内容,比如列表和字符串(列表内容我们会在 ...
- Python语法速查: 7. 函数基础
返回目录 (1)函数基本 ● 函数是第一类对象 Python中万物皆对象,所有对象都是第一类的(first class),函数也不例外,也是第一类对象.既然是对象,那就可以当作普通的对象数据处理,比如 ...
随机推荐
- GCC笔记(警告.优化以及调试选项)
GCC提供了大量的警告选项,对代码中可能存在的问题提出警告,通常可以使用-Wall来开启以下警告: -Waddress -Warray-bounds (only with -O2) -Wc++0x-c ...
- sqlserver临时表或表变量代替游标
在很多场合,用临时表或表变量也可以替代游标 临时表用在表没有标识列(int)的情况下. 在表有标识列(int)的情况下可以用表变量,当然也可以用临时表. 利用临时表或表变量的原因时,生成一个连续的列 ...
- 747. Largest Number At Least Twice of Others比所有数字都大两倍的最大数
[抄题]: In a given integer array nums, there is always exactly one largest element. Find whether the l ...
- Apache fcgistarter命令
一.简介 fcgistarter命令用于启动FastCGI程序. 二.语法 fcgistarter -c command -p port [ -i interface ] -N num 参考:http ...
- Luogu 2597 [ZJOI2012]灾难
BZOJ 2815. 解法还是挺巧妙的. 放上写得很详细很好懂的题解链接 戳这里. 一个物种$x$如果要灭绝,那么沿着它的入边反向走走走,一定可以走到一个点$y$,如果这个点$y$的物种灭绝了,那么 ...
- .NET读取服务器或本地文件
//把本地文件信息读入数据流中 FileStream stream = new FileStream(path, FileMode.Open, FileAcces ...
- 高级软件测试技术(测试管理工具实践day4)
今天是截止日期,有胡俊辉的指导下小组成员都了解使用了Bugzilla的基本使用.大家都在晚上之前把各自的文档汇总给汪鸿,由他撰写了操作手册.并且在下午杨瑞丰完成了视频的录制工作.但是在转化为MP4 格 ...
- SVN常见问题及解决方式(一)
1.每天早上上班要update SVN,每天下班要commit SVN.2.查看是谁动了我的代码,右键 tortoise 后查看 log 日志.3.文件被别人删除,在空白处右击,show log,可以 ...
- App测试从入门到精通之安装、卸载和运行测试
关于手机App测试需要说的点有很多.目前市场上主要的APP测试主要是针对的是安卓.和苹果两大主流操作系统.主要考虑的就是功能性.兼容性.稳定性.性能测试等.我们看下App的安装和卸载有哪些常用的场景: ...
- Join导致冗余数据引起慢SQL
业务过程中碰到多个join引起慢SQL问题,数据量不大,但查询很慢,搜到一片BLog,参考解决. 业务过程不记录,以blog内容重现: 原SQL: select distinct abc.pro_co ...