引言
虽然用python写过不少脚本了,但总感觉串不起来的样子。刚好在github上看到一个100天学python的帖子(https://github.com/jackfrued/Python-100-Days),闲来无事,每天重温一下吧,顺便记录下来。有错误的,欢迎指正啦。
一、分支结构的关键字
在Python中,要构造分支结构可以使用if、elif和else关键字。需要注意的是,python中不支持switch用法。
下面使用python来写这个函数:
# -*- coding: utf-8 -*- '''python实现选择函数''' x = float(input('x = ')) if x > 1: y = 3 * x - 5 elif x >= -1: y = x + 2 else: y = 5 * x + 3 print('f(%.2f) = %.2f' % (x, y))
程序分析:这种写法要比if...else..(if...else)更简洁明了。
第4行:python3将python2中的输入统一为input函数。该函数得到的为str类型,故需要使用float类型强制转换。
第5-10行:选择结构。唯一需要说明的是和C/C++、Java等语言不同,Python中没有用花括号来构造代码块而是使用了缩进的方式来设置代码的层次结构,如果if条件成立的情况下需要执行多条语句,只要保持多条语句具有相同的缩进就可以了,换句话说连续的代码如果又保持了相同的缩进那么它们属于同一个代码块,相当于是一个执行的整体。
第11行:格式化输出。%f输出为格式化浮点数字,%.2f 指定精度为小数点后两位(四舍五入)。此外,Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能,这种方法比格式化输出更好使,以后再写。f-string在功能方面不逊于传统的%-formatting语句和str.format()函数,同时性能又优于二者,且使用起来也更加简洁明了,因此对于Python3.6及以后的版本,推荐使用f-string进行字符串格式化。
附录:
1. python字符串格式化符号:
%c 格式化字符及其ASCII码 %s 格式化字符串 %d 格式化整数 %u 格式化无符号整型 %o 格式化无符号八进制数 %x 格式化无符号十六进制数 %X 格式化无符号十六进制数(大写) %f 格式化浮点数字,可指定小数点后的精度 %e 用科学计数法格式化浮点数 %E 作用同%e,用科学计数法格式化浮点数 %g %f和%e的简写 %G %f 和 %E 的简写 %p 用十六进制数格式化变量的地址2. 格式化操作符辅助指令:
符号功能*定义宽度或者小数点精度-用做左对齐+在正数前面显示加号( + )<sp>在正数前面显示空格#在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')0显示的数字前面填充'0'而不是默认的空格%'%%'输出一个单一的'%'(var)映射变量(字典参数)m.n.m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)