跳至工具栏

Arudino基础教程

基本

Arduino 网络通信

Arduino 无线通信

Arduino 音调库

Arduino 串行外设接口

Arduino 内部集成电路

Arduino 中断

Arduino 通信

Arduino 随机数

Arduino 脉冲宽度调制

Arduino Due 和 Zero

Arduino 三角函数

Arduino 数学库

Arduino 字符函数

Arduino 高级I/O函数

Arduino I/O函数

Arduino 数组

Arduino 时间函数

Arduino 字符串

Arduino 函数

Arduino 循环

Arduino 控制语句

Arduino 运算符

Arduino 变量和常量

Arduino 数据类型

Arduino 程序结构

Arduino 安装

Arduino 板的说明

Arduino 概述

键盘

Arduino 键盘串口

Arduino 鼠标按钮控制

Arduino 键盘消息

Arduino 键盘注销

LED

Arduino LED条形图

Arduino 闪烁LED

电机

Arduino 步进电机

Arduino 伺服电机

Arduino 直流电机

传感器

Arduino 连接开关

Arduino 水位检测器/传感器

Arduino 温度传感器

Arduino 超声波传感器

Arduino PIR传感器

Arduino 湿度传感器

Python3 实例

Python3 实例

以下实例在 Python3.4.3 版本下测试通过:

  • Python Hello World 实例
  • Python 数字求和
  • Python 平方根
  • Python 二次方程
  • Python 计算三角形的面积
  • Python 随机数生成
  • Python 摄氏温度转华氏温度
  • Python 交换变量
  • Python if 语句
  • Python 判断字符串是否为数字
  • Python 判断奇数偶数
  • Python 判断闰年
  • Python 获取最大值函数
  • Python 质数判断
  • Python 阶乘实例
  • Python 九九乘法表
  • Python 斐波那契数列
  • Python 阿姆斯特朗数
  • Python 十进制转二进制、八进制、十六进制
  • Python ASCII码与字符相互转换
  • Python 最大公约数算法
  • Python 最小公倍数算法
  • Python 简单计算器实现
  • Python 生成日历
  • Python 使用递归斐波那契数列
  • Python 文件 IO
  • Python 字符串判断
  • Python 字符串大小写转换
  • Python 计算每个月天数
  • Python 获取昨天日期
  • Python list 常用操作

Python 使用递归斐波那契数列

Python 使用递归斐波那契数列

Python 使用递归斐波那契数列 Python3 实例

以下代码使用递归的方式来生成斐波那契数列:


# Filename : test.py
 
  def recur_fibo(n):
    """递归函数
    输出斐波那契数列"""
    if n <= 1:
 


return n
    else:
 
  return(recur_fibo(n-1) + recur_fibo(n-2))  
# 获取用户输入 nterms = int(input("您要输出几项? ")) 
# 检查输入的数字是否正确 if nterms <= 0:
  
print("输入正数")
 else:
  
print("斐波那契数列:")
    for i in range(nterms):
 

print(recur_fibo(i)) 

执行以上代码输出结果为:

 您要输出几项? 10 斐波那契数列: 0 1 1 2 3 5 8 13 21 34 

Python 使用递归斐波那契数列 Python3 实例

Python 简单计算器实现

Python 简单计算器实现

Python 简单计算器实现 Python3 实例

以下代码用于实现简单计算器实现,包括两个数基本的加减乘除运输:


# Filename : test.py
  
# 定义函数 def add(x, y):
    """相加"""
   

return x + y
  def subtract(x, y):
    """相减"""
   

return x - y
  def multiply(x, y):
    """相乘"""
   

return x * y
  def divide(x, y):
    """相除"""
   

return x / y 
# 用户输入
print("选择运算:")
print("1、相加")
print("2、相减")
print("3、相乘")
print("4、相除")  
 choice = input("输入你的选择(1/2/3/4):")  
 num1 = int(input("输入第一个数字: ")) 
 num2 = int(input("输入第二个数字: "))
  if choice == '1':
  
print(num1,"+",num2,"=", add(num1,num2))
  elif choice == '2':
  
print(num1,"-",num2,"=", subtract(num1,num2))
  elif choice == '3':
  
print(num1,"*",num2,"=", multiply(num1,num2))
  elif choice == '4':
  
print(num1,"/",num2,"=", divide(num1,num2))
 else:
  
print("非法输入") 

执行以上代码输出结果为:

 选择运算: 1、相加 2、相减 3、相乘 4、相除 输入你的选择(1/2/3/4):2 输入第一个数字: 5 输入第二个数字: 2 5 - 2 = 3 

Python 简单计算器实现 Python3 实例

Python 最小公倍数算法

Python 最小公倍数算法

Python 最小公倍数算法 Python3 实例

以下代码用于实现最小公倍数算法:


# Filename : test.py
  
# 定义函数 def lcm(x, y):
    
#  获取最大的数
    if x >y:
 
  greater = x
    else:
 
  greater = y
     while(True):
 
  if((greater % x == 0) and (greater % y == 0)):
 
  lcm = greater
 
  break
 
  greater += 1
   

return lcm  
# 获取用户输入 
 num1 = int(input("输入第一个数字: ")) 
 num2 = int(input("输入第二个数字: "))
print( num1,"和", num2,"的最小公倍数为", lcm(num1, num2)) 

执行以上代码输出结果为:

 输入第一个数字: 54 输入第二个数字: 24 54 和 24 的最小公倍数为 216 

Python 最小公倍数算法 Python3 实例

Python 最大公约数算法

Python 最大公约数算法

Python 最大公约数算法 Python3 实例

以下代码用于实现最大公约数算法:


# Filename : test.py
  
# 定义一个函数 def hcf(x, y):
    """该函数返回两个数的最大公约数"""
    
# 获取最小值
    if x >y:
 
  smaller = y
    else:
 
  smaller = x
     for i in range(1,smaller + 1):
 
  if((x % i == 0) and (y % i == 0)):
 
  hcf = i
   

return hcf  
# 用户输入两个数字 
 num1 = int(input("输入第一个数字: ")) 
 num2 = int(input("输入第二个数字: "))
print( num1,"和", num2,"的最大公约数为", hcf(num1, num2)) 

执行以上代码输出结果为:

 输入第一个数字: 54 输入第二个数字: 24 54 和 24 的最大公约数为 6 

Python 最大公约数算法 Python3 实例

Python 获取最大值函数

Python 获取最大值函数

Python 获取最大值函数 Python3 实例

以下实例中我们使用max()方法求最大值:


# -*- coding: UTF-8 -*- 
# Filename : test.py
  
# 最简单的
print(max(1, 2))
print(max('a', 'b'))  
# 也可以对列表和元组使用
print(max([1,2]))
print(max((1,2))) 
# 更多实例
print("80, 100, 1000 最大值为: ", max(80, 100, 1000))
print("-20, 100, 400最大值为: ", max(-20, 100, 400))
print("-80, -20, -10最大值为: ", max(-80, -20, -10))
print("0, 100, -400最大值为:", max(0, 100, -400)) 

执行以上代码输出结果为:

 2 b 2 2 80, 100, 1000 最大值为:  1000 -20, 100, 400最大值为:  400 -80, -20, -10最大值为:  -10 0, 100, -400最大值为: 100 

max() 函数介绍:Python max()函数。

Python 获取最大值函数 Python3 实例

Python 判断字符串是否为数字

Python 判断字符串是否为数字

Python 判断字符串是否为数字 Python3 实例

以下实例通过创建自定义函数 is_number() 方法来判断字符串是否为数字:


# -*- coding: UTF-8 -*- 
# Filename : test.py
 
  def is_number(s):
     try:
 
  float(s)
 
 

return True
     except ValueError:
 
   pass
      try:
 
 
import unicodedata
 
   unicodedata.numeric(s)
 
 

return True
     except (TypeError, ValueError):
 
   pass
    

return False 
# 测试字符串和数字
print(is_number('
foo'))  
# False
print(is_number('1'))
    
# True
print(is_number('1.3'))  
# True
print(is_number('-1.37'))
# True
print(is_number('1e3'))  
# True 
# 测试 Unicode
# 阿拉伯语 5
print(is_number('٥')) 
# False
# 泰语 2
print(is_number('๒')) 
# False
# 中文数字
print(is_number('四'))
# False
# 版权号
print(is_number('©

')) 
# False 

我们也可以使用内嵌 if 语句来实现:

执行以上代码输出结果为:

 False True True True True False False False False 

更多方法

Python isdigit() 方法检测字符串是否只由数字组成。

Python isnumeric() 方法检测字符串是否只由数字组成。这种方法是只针对unicode对象。

Python 判断字符串是否为数字 Python3 实例

Python3 日期和时间

Python3 日期和时间

Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。

Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。

时间间隔是以秒为单位的浮点小数。

每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。

Python 的 time 模块下有很多函数可以转换常见日期格式。如函数time.time()用于获取当前时间戳, 如下实例:

#!/usr/bin/python3
import
time; # 引入time模块

ticks
= time.time()
print ("当前时间戳为:", ticks)

以上实例输出结果:

当前时间戳为: 1459996086.7115328

时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。


什么是时间元组?

很多Python函数用一个元组装起来的9组数字处理时间:

序号 字段
0 4位数年 2008
1 1 到 12
2 1到31
3 小时 0到23
4 分钟 0到59
5 0到61 (60或61 是闰秒)
6 一周的第几日 0到6 (0是周一)
7 一年的第几日 1到366 (儒略历)
8 夏令时 -1, 0, 1, -1是决定是否为夏令时的旗帜

上述也就是struct_time元组。这种结构具有如下属性:

序号 属性
0 tm_year 2008
1 tm_mon 1 到 12
2 tm_mday 1 到 31
3 tm_hour 0 到 23
4 tm_min 0 到 59
5 tm_sec 0 到 61 (60或61 是闰秒)
6 tm_wday 0到6 (0是周一)
7 tm_yday 一年中的第几天,1 到 366
8 tm_isdst 是否为夏令时,值有:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1


获取当前时间

从返回浮点数的时间辍方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。

#!/usr/bin/python3
import time

localtime
= time.localtime(time.time())
print
("本地时间为 :", localtime)

以上实例输出结果:

本地时间为 : time.struct_time(tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=10, tm_min=28, tm_sec=49, tm_wday=3, tm_yday=98, tm_isdst=0)


获取格式化的时间

你可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime():

#!/usr/bin/python3
import
time

localtime
= time.asctime( time.localtime(time.time()) )
print
("本地时间为 :", localtime)

以上实例输出结果:

本地时间为 : Thu Apr  7 10:29:13 2016

格式化日期

我们可以使用 time 模块的 strftime 方法来格式化日期,:

time.strftime(format[, t])
#!/usr/bin/python3
import
time

# 格式化成2016-03-20 11:45:39形式

print
(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

# 格式化成Sat Mar 28 22:24:24 2016形式
print (time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))

# 将格式字符串转换为时间戳

a
= "Sat Mar 28 22:24:24 2016"
print (time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))

以上实例输出结果:

2016-04-07 10:29:46
Thu Apr 07 10:29:46
2016
1459175064.0

python中时间日期格式化符号:

  • %y 两位数的年份表示(00-99)
  • %Y 四位数的年份表示(000-9999)
  • %m 月份(01-12)
  • %d 月内中的一天(0-31)
  • %H 24小时制小时数(0-23)
  • %I 12小时制小时数(01-12)
  • %M 分钟数(00=59)
  • %S 秒(00-59)
  • %a 本地简化星期名称
  • %A 本地完整星期名称
  • %b 本地简化的月份名称
  • %B 本地完整的月份名称
  • %c 本地相应的日期表示和时间表示
  • %j 年内的一天(001-366)
  • %p 本地A.M.或P.M.的等价符
  • %U 一年中的星期数(00-53)星期天为星期的开始
  • %w 星期(0-6),星期天为星期的开始
  • %W 一年中的星期数(00-53)星期一为星期的开始
  • %x 本地相应的日期表示
  • %X 本地相应的时间表示
  • %Z 当前时区的名称
  • %% %号本身

获取某月日历

Calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历:

#!/usr/bin/python3

import calendar
cal
= calendar.month(2016, 1)
print ("以下输出2016年1月份的日历:")
print (cal)

以上实例输出结果:

以下输出20161月份的日历:
    
January
2016
Mo
Tu We Th Fr Sa Su
1 2 3
4
5 6 7 8 9 10
11
12 13 14 15 16 17
18
19 20 21 22 23 24
25
26 27 28 29 30 31


Time 模块

Time 模块包含了以下内置函数,既有时间处理相的,也有转换时间格式的:

序号 函数及描述 实例
1 time.altzone
返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。

以下实例展示了 altzone()函数的使用方法:


>>> import time
>>> print ("time.altzone %d " % time.altzone)
time.altzone -28800
2 time.asctime([tupletime])
接受时间元组并返回一个可读的形式为”Tue Dec 11 18:07:14 2008″(2008年12月11日 

周二18时07分14秒)的24个字符的字符串。

以下实例展示了 asctime()函数的使用方法:


>>> import time
>>> t = time.localtime()
>>> print ("time.asctime(t): %s " % time.asctime(t))
time.asctime(t): Thu Apr 7 10:36:20 2016
3 time.clock()
用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。
实例
4 time.ctime([secs])
作用相当于asctime(localtime(secs)),未给参数相当于asctime()

以下实例展示了 ctime()函数的使用方法:


>>> import time
>>> print ("time.ctime() : %s" % time.ctime())
time
.ctime() : Thu Apr 7 10:51:58 2016
5 time.gmtime([secs])
接收时间辍(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组t。注:t.tm_isdst始终为0

以下实例展示了 gmtime()函数的使用方法:


>>> import time
>>> print ("gmtime :", time.gmtime(1455508609.34375))
gmtime
: time.struct_time(tm_year=2016, tm_mon=2, tm_mday=15, tm_hour=3, tm_min=56, tm_sec=49, tm_wday=0, tm_yday=46, tm_isdst=0)
6 time.localtime([secs]
接收时间辍(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)。

以下实例展示了 localtime()函数的使用方法:


>>> import time
>>>
print ("localtime(): ", time.localtime(1455508609.34375))
localtime(): time.struct_time(tm_year=2016, tm_mon=2, tm_mday=15, tm_hour=11, tm_min=56, tm_sec=49, tm_wday=0, tm_yday=46, tm_isdst=0)
7 time.mktime(tupletime)
接受时间元组并返回时间辍(1970纪元后经过的浮点秒数)。
实例
8 time.sleep(secs)
推迟调用线程的运行,secs指秒数。

以下实例展示了 sleep()函数的使用方法:

#!/usr/bin/python3
import
time

print
("Start : %s" % time.ctime())
time.sleep( 5 )
print
("End : %s" % time.ctime())
9 time.strftime(fmt[,tupletime])
接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。

以下实例展示了 strftime()函数的使用方法:


>>> import time
>>> print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
2016
-04-07 11:18:05
10 time.strptime(str,fmt=’%a %b %d %H:%M:%S %Y’)
根据fmt的格式把一个时间字符串解析为时间元组。

以下实例展示了 strftime()函数的使用方法:


>>> import time
>>> struct_time = time.strptime("30 Nov 00", "%d %b %y")
>>> print ("返回元组: ", struct_time)
返回元组:
time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)
11 time.time( )
返回当前时间的时间戳(1970纪元后经过的浮点秒数)。

以下实例展示了 time()函数的使用方法:


>>> import time
>>>
print(time.time())
1459999336.1963577
12 time.tzset()
根据环境变量TZ重新初始化时间相关设置。
实例

Time模块包含了以下2个非常重要的属性:

序号 属性及描述
1 time.timezone
属性time.timezone是当地时区(未启动夏令时)距离格林威治的偏移秒数(>0,美洲;

<=0大部分欧洲,亚洲,非洲)。

2 time.tzname
属性time.tzname包含一对根据情况的不同而不同的字符串,分别是带夏令时的本地时区名称,和不带的。


日历(Calendar)模块

此模块的函数都是日历相关的,例如打印某月的字符月历。

星期一是默认的每周第一天,星期天是默认的最后一天。更改设置需调用calendar.setfirstweekday()函数。模块包含了以下内置函数:

序号 函数及描述
1 calendar.calendar(year,w=2,l=1,c=6)
返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。
2 calendar.firstweekday( )
返回当前每周起始日期的设置。默认情况下,首次载入calendar模块时返回0,即星期一。
3 calendar.isleap(year)
是闰年返回True,否则为false。
4 calendar.leapdays(y1,y2)
返回在Y1,Y2两年之间的闰年总数。
5 calendar.month(year,month,w=2,l=1)
返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。
6 calendar.monthcalendar(year,month)
返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;

范围内的日子都由该月第几日表示,从1开始。

7 calendar.monthrange(year,month)
返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);

月从1到12。

8 calendar.prcal(year,w=2,l=1,c=6)
相当于 print calendar.calendar(year,w,l,c).
9 calendar.prmonth(year,month,w=2,l=1)
相当于 print calendar.calendar(year,w,l,c)。
10 calendar.setfirstweekday(weekday)
设置每周的起始日期码。0(星期一)到6(星期日)。
11 calendar.timegm(tupletime)
和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间辍(1970纪元后经过的浮点秒数)。
12 calendar.weekday(year,month,day)
返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。


其他相关模块和函数

在Python中,其他处理日期和时间的模块还有:

  • time 模块
  • datetime模块

Python3 JSON 数据解析

Python3 JSON 数据解析

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。

Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数:

  • json.dumps(): 对数据进行编码。
  • json.loads(): 对数据进行解码。

在json的编解码过程中,python 的原始类型与json类型会相互转换,具体的转化对照如下:

Python 编码为 JSON 类型转换对应表:

Python JSON
dict object
list, tuple array
str string
int,float, int- &

float-derived Enums

number
True true
False false
None null

JSON 解码为 Python 类型转换对应表:

JSON Python
object dict
array list
string str
number (int) int
number (real) float
true True
false False
null None

json.dumps 与 json.loads 实例

以下实例演示了 Python 数据结构转换为JSON:


#!/usr/bin/python3
import json 
# Python 字典类型转换为 JSON 对象 data ={
    'no': 1,
     'name': 'W3CSchool',
     'url': 'http://www.soxitoday.com'
  }  json_str = json.dumps(data) 
print ("Python 原始数据:", repr(data)) 
print ("JSON 对象:", json_str) 

执行以上代码输出结果为:

 Python 原始数据:{'url': 'http://www.soxitoday.com', 'no': 1, 'name': 'W3CSchool'
  } JSON 对象:{"url": "http://www.soxitoday.com", "no": 1, "name": "W3CSchool"  } 

通过输出的结果可以看出,简单类型通过编码后跟其原始的repr()输出结果非常相似。

接着以上实例,我们可以将一个JSON编码的字符串转换回一个Python数据结构:


#!/usr/bin/python3
import json 
# Python 字典类型转换为 JSON 对象 data1 ={
    'no': 1,
     'name': 'W3CSchool',
     'url': 'http://www.soxitoday.com'
  }  json_str = json.dumps(data1) 
print ("Python 原始数据:", repr(data1)) 
print ("JSON 对象:", json_str) 
# 将 JSON 对象转换为 Python 字典 data2 = json.loads(json_str) 
print ("data2['name']: ", data2['name']) 
print ("data2['url']: ", data2['url']) 

执行以上代码输出结果为:

 ython 原始数据:{'name': 'W3CSchool', 'no': 1, 'url': 'http://www.soxitoday.com'
  } JSON 对象:{"name": "W3CSchool", "no": 1, "url": "http://www.soxitoday.com"  } data2['name']:  W3CSchool data2['url']:  http://www.soxitoday.com 

如果你要处理的是文件而不是字符串,你可以使用 json.dump()json.load() 来编码和解码JSON数据。例如:


# 写入 JSON 数据 with open('data.json', 'w') as f:
     json.dump(data, f) 
# 读取数据 with open('data.json', 'r') as f:
     data = json.load(f) 

更多资料请参考:https://docs.py
thon.org/3/library/json.html