Hello Python 1
因为我的树莓派只要开机风扇就会不停的转为了控制风扇的转速我需要写一些脚本来控制gpio接口。所以作为兴趣就学习了一下python语言,当然python的实际作用远不止此,先看看基础的再深入的了解下吧。MacOS自带的Python是2.7x,但是我使用的是3.x 。当然这两者是有差异的,即使你不懂python也可以从版本号上看出来这个差异。
The key differences between Python 2.7.x and Python 3.x with examples <-这篇博客详细说明了2.x与3.x的区别。因为本人是从3.x学习python的所以后面的博文都会以3.x作为案例。
环境相关
- 使用
which python3
查看当前python安装地址 - Xcode配置系列博文
- Python 3 Basic Syntax(原版)
- Python3 运算符(翻译)
基础语法
重要概念
可更改(mutable)与不可更改(immutable)对象
在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。
可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。
python 函数的参数传递:
不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响
Keyword
1 | and exec not |
Lines and Indentation
Python用缩进代表代码块,同一个代码块的语句必须包含相同的缩进空格数。
1 | if True: |
String
1 | import sys |
Formate String
字符串格式化
1 | dic = {1:"one",2:"two"} #定义字典 |
占位符 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
字符串辅助功能符:
符号 | 功能 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号( + ) |
在正数前面显示空格 | |
# | 在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’) |
0 | 显示的数字前面填充’0’而不是默认的空格 |
% | ‘%%’输出一个单一的’%’ |
(var) | 映射变量(字典参数) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
字符串的运算
1 | #!/usr/bin/python3 |
Number
python支持四种类型 int、float、bool、complex(复数类型)
1 | a, b, c, d = 20, 5.5, True, 4+3j |
int | float | complex |
---|---|---|
10 | 0.0 | 3.14j |
100 | 15.20 | 45.j |
-786 | -21.9 | 9.322e-36j |
080 | 32.3+e18 | .876j |
-0490 | -90. | -.6545+0J |
-0x260 | -32.54e100 | 3e+26J |
0x69 | 70.2-E12 | 4.53e-7j |
Tips
- type()不会认为子类是一种父类类型。
- isinstance()会认为子类是一种父类类型。
- 使用python3接受命令行的多个参数
Tuples(元组)
Tuples can be thought of as read-only lists. 元组是只读的
1 | tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 ) |
无关闭分隔符
任意无符号的对象,以逗号隔开,默认为元组,如下实例:
1 | #!/usr/bin/python |
Dictionary
通过花括号定义一个字典
1 | dict = {} |
Data Type Conversion(类型转换)
Sometimes, you may need to perform conversions between the built-in types. To convert between types, you simply use the type-names as a function. 需要类型转换的时候只需要用类型名称作为一个方法就可以转换
S.No. | Function & Description |
---|---|
1 | int(x [,base]) Converts x to an integer. The base specifies the base if x is a string. |
2 | float(x) Converts x to a floating-point number. |
3 | complex(real [,imag])Creates a complex number. |
4 | str(x) Converts object x to a string representation. |
5 | repr(x)Converts object x to an expression string. |
6 | eval(str)Evaluates a string and returns an object. |
7 | tuple(s)Converts s to a tuple. |
8 | list(s)Converts s to a list. |
9 | set(s)Converts s to a set. |
10 | dict(d)Creates a dictionary. d must be a sequence of (key,value) tuples. |
11 | frozenset(s)Converts s to a frozen set. |
12 | chr(x)Converts an integer to a character. |
13 | unichr(x)Converts an integer to a Unicode character. |
14 | ord(x)Converts a single character to its integer value. |
15 | hex(x)Converts an integer to a hexadecimal string. |
16 | oct(x)Converts an integer to an octal string. |
流程控制
Decision Making && Loop
1 | a = ["a","b","c",""] |
Iterator and Generator
这块是伪代码,核心是 iter() 与 next()
1 | list = [1,2,3,4] |
Function
使用可变参数 *args 使用星号修饰
1 | def functionA(content,*args): |
使用lambda匿名函数,后面只可以跟一句话… (我有点想吐槽)
1 | sum = lambda arg1, arg2:arg1+arg2 |
Package
初始化脚本在引用这个包的时候会自动被调用。只有拥有了初始化脚本才会被python认为这是一个包。
异常处理
1 | try: |
本文标题:Hello Python 1
文章作者:Keyle
发布时间:2017-03-27
最后更新:2024-08-20
原始链接:https://vrast.cn/posts/957d31e7/
版权声明:©Keyle's Blog. 本站采用署名-非商业性使用-相同方式共享 4.0 国际进行许可