小白自学笔记之Python入门-第三章 内置函数 & 算法-1
学习完了数据类型、变量名和基本运算符,我们再来看看Python自带的一些数学函数、字符函数、格式函数和输入输出函数,下面只是列出一些常用的内置函数22个,按照字母顺序排列。

看完了?回去再认真看2遍!
看完3遍了?ok,但是光看怎么行呢,一定要上机练习啊!所有的函数都练习三次,而且是各种不同形式的,然后才能继续往下看!
input()、format()和print()练习写的是啥?估计就是贼简单的类似print("俺叫魏淑芬、女、29岁、至今未婚!")。还是重点学习一下吧!
input() 接受一个标准输入数据,返回为 string 类型,返回为 string,返回string,string,字符串。
a = input("input:")
print(type(a))
input:123
<class 'str'>
但是如何实现输入数值呢?别说不会,好好想一想,前面表格了已经介绍过相关函数了,看了三遍还不记得,跟记忆时间只有7秒钟的鱼比赛dementia呢(为了帮助你学习英语单词,提高记忆力,这个单词的意思是痴呆,音标[dɪˈmenʃə],both American accent and British accent is the same.)?回去再看看内置函数表没准就有思路了。
考虑我们想编程实现输入两个整数,输出他们的四则运算(这个应该知道是加减乘除吧)结果。写代码吧,至少可以写出下面的。
a=input("a:")
b=input("b:")
print(a+b)
print(a-b)
print(a*b)
print(a/b)
运行程序试一下,结果为:
a:3
b:4
Traceback (most recent call last):
File "F:/教学/2019秋/Python code/Test.py", line 4, in <module>
print(a-b)
TypeError: unsupported operand type(s) for -: 'str' and 'str'
34
Process finished with exit code 1
这是什么鬼?

输入3和4,都是string 类型,字符串的“3”和字符串的“4”加“+”在一起是“34”。因为+对字符串来说是连接的意思。但是字符串没有“-”操作,所以后面print(a-b)会提示TypeError: unsupported operand type(s) for -: 'str' and 'str',表示类型错误,对于字符串来说不支持“-”运算。所以后面有Process finished with exit code 1表示程序代码错误(code 0的意思是运行成功)。然后咋办呢?
“-”运算符要求是数值,而input得到的是字符串,那就字符串转换数值呗,前面哪个函数能实现这个功能呢?int、float都可以啊,还有一个eval也行!但是一般来讲,数值不一定就是整数,所以我们用后面两个,改吧!
a=float(input("a:"))
b=float(input("b:"))
print(a+b)
print(a-b)
print(a*b)
print(a/b)
运行程序结果为:
a:3
b:4
7.0
-1.0
12.0
0.75
Process finished with exit code 0
噢耶,成功! ,起来跑两圈庆祝一下!

不过说实在的,我一直以为这个图是粽子呢(话说今天真是端午节呢。Believe it or not,现在时刻2020年6月25日星期四10时50分1秒),这就是吃货的脑洞!
format()
语法:format(value, format),其中value为任何格式的值,format是格式串,说明如下。
'<' - 左对齐结果(在可用空间内)
'>' - 右对齐结果(在可用空间内)
'^' - 居中对齐结果(在可用空间内)
'=' - 将符号置于最左侧
'+' - 使用加号来指示结果是正还是负
'-' - 负号仅用于负值
' ' - 在正数前使用空格
',' - 使用逗号作为千位分隔符
'_' - 使用下划线作为千位分隔符
'b' - 二进制格式
'c' - 将值转换为相应的 unicode 字符
'd' - 十进制格式
'e' - 科学格式,使用小写字母 e
'E' - 科学格式,使用大写字母 E
'f' - 定点编号格式
'F' - 定点编号格式,大写
'g' - 通用格式
'G' - 通用格式(将大写 E 用作科学计数法)
'o' - 八进制格式
'x' - 十六进制格式,小写
'X' - 十六进制格式,大写
'n' - 数字格式
'%' - 百分百格式
算了,估计看两眼就不看了,还是举例子吧,其它的如果以后用到再试吧。
#指定3.1415926右对齐,显示正号占10位,小数部分占2位的方式(小数点占1位),
print(format(3.1415926, '>+10.2f'))

下面的代码可以直接复制,分析一下运行结果。
print("1234567890") #显示对应第几列值,参考用
print(format(3.1415926, '>+10.2f')) #指定3.1415926右对齐占10位,小数占2位(小数点占1位)
print(format(25, 'd')) #10进制形式输出25 25
print(format(25, '>5x')) #16进制形式输出25 右对齐占5位 19
print(format(25, 'o')) #8进制形式输出25 31
print(format(25, '>8b')) #2进制形式输出25 右对齐占8位 11001
运行程序结果为:
1234567890
+3.14
25
19
31
11001
前面介绍的是format内置函数,还有一个字符串 format() 方法,一起讲解方便比较。
format() 方法格式化指定的值,并将其插入字符串的占位符内。占位符使用大括号 {} 定义,占位符 可以使用命名索引 {price}、编号索引{0}、甚至空的占位符 {} 来标识占位符。举例如下:
#named indexes:
txt1 = "My name is {fname}, I'm {age}".format(fname = "AJ", age = 9)
#numbered indexes:
txt2 = "My name is {0}, I'm {1}".format("AJ",8)
#empty placeholders:
txt3 = "My name is {}, I'm {}".format("AJ",7)
print(txt1)
print(txt2)
print(txt3)
运行程序结果为:
My name is AJ, I'm 9
My name is AJ, I'm 8
My name is AJ, I'm 7
print()用于打印输出,直接上例子。
print("aaa""bbb")
print("aaa","bbb")
print("aaa", "bbb", sep=" ---")
print("aaa", end='this is the end')
print("bbb")
运行程序结果为:
aaabbb
aaa bbb
aaa ---bbb
aaathis is the endbbb
这是最后一个函数了,自己对照程序分析一下运行结果吧,我不想写了,因为现在是2020年端午节11时35分3秒。
To be continued.