目录
前言:
由于博主从事嵌入式工作主要使用C语言,工作没有经常使用python,本文记录开发python上位机时用到的基本语法,博文比较精简,主要为了以后再次使用python时能快速上手。
说明:本文会根据对python掌握情况随时更新
一、变量类型
Python有五个标准的数据类型:
- Numbers(数字)
- String(字符串)
- List(列表) - []
- Tuple(元组) - ()
- Dictionary(字典) - {}
#!/usr/bin/python
# 1 数字
int = 100 # 赋值整型变量
float = 1000.0 # 浮点型
# 2 字符串
string = 'abcdef' # 字符串,等价于 "abcdef"
print string[1:5] # 打印 [1] - [4], 注意不包含尾下标的字符
# 3 列表
list = [ 'runoob', 786 , 2.23, 'john' ]
tinylist = [123, 'john']
print list # 输出结果:['runoob', 786, 2.23, 'john']
print list[1:3] # 输出第二个至第三个元素 [786, 2.23]
print list[2:] # 输出从第三个开始至列表末尾的所有元素
print list * 2 # 输出列表两次
print list + tinylist # 打印组合的列表
# 4 元组
#类似于 List(列表)。元组不允许修改,而列表是允许修改的
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
# 5 字典
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'runoob','code':6734, 'dept': 'sales'}
print dict['one'] # 结果:This is one
print dict[2] # 结果:This is two
print tinydict # 结果:{'dept': 'sales', 'code': 6734, 'name': 'runoob'}
print tinydict.keys() # 输出所有键,结果:['dept', 'code', 'name']
print tinydict.values() # 输出所有值,结果:['sales', 6734, 'runoob']
二、打印信息
1、常用打印
使用 print() 打印
print("Hello, Python!")
var1 = 'Hello World!'
var2 = "Python Runoob"
print("var1[0]: ", var1[0]) # 结果: "var1[0]: H"
print("var2[1:5]: ", var2[1:5]) # 结果: "var2[1:5]: ytho"
2、格式化打印
name = 'Steven'
age = 18
# 格式化输出方法一:
print(f'我是{name},我今年{age}岁。')
# 格式化输出方法二:
print('我是%s,我今年%s岁。' %(name, age))
# 格式化输出方法三:
print('我是{},我今年{}岁。'.format(name, age))
三、if 条件语句
name = 'luren'
if name == 'python': # 判断等于
print 'welcome boss'
elif name != '123': # 判断不等于
print "welcome %s" % name
else: # else
print name
1、逻辑与、逻辑或
- 逻辑与操作符
and
- 逻辑或操作符
or
a = 10
b = 20
#逻辑与条件语句
if a > 5 and b > 15: # 如果a大于5且b大于15,执行打印操作
print("Both conditions are true.")
else:
print("One of the conditions is false.")
#逻辑或条件语句
if a > 5 or b > 15: # 如果a大于5或b大于15,执行打印操作
print("or")
2、条件非 not
a = False
if not a: # not False 表示 True
print(a)
四、循环语句
1、while循环
count = 0
while True: # 等价于C语言 while(1)
print "count = %d" % count
count += 1
if count > 10:
break # break使用方法
while循环n次
count = 0
while (count < 9):
print('The count is:', count)
count = count + 1
2、for循环
for in语句
for letter in 'Python':
if letter == 'h':
continue # continue使用方法,continue执行下个循环
print('当前字母 :', letter)
# 列表轮询
fruits = ['banana', 'apple', 'mango']
for fruit in fruits:
print ('当前水果: %s'% fruit)
五、列表
列表有点像C语言的数组
1、添加列表项
list = [] # 初始化空列表
list.append('Google') # 使用 append() 添加元素
list.append('Runoob')
print list #['Google', 'Runoob']
extend将一个列表中的所有元素添加到另一个列表的末尾
aList = [123, 'xyz', 123];
bList = [2009, 'manni'];
aList.extend(bList)
print(aList) #[123, 'xyz', 123, 2009, 'manni']
将字典存入列表
info = []
student = {"Chinese":99,"Math":129,"English":145}
info.append(student) #字典存入列表
print(info) # [{'Chinese': 99, 'Math': 129, 'English': 145}]
2、删除列表
list1 = ['physics', 'chemistry', 2000]
del list1[1]
print(list1) # ['physics', 2000]
3、列表截取
L = ['Google', 'Runoob', 'Taobao']
L[2] #'Taobao' 读取列表中第三个元素
L[-2] #'Runoob' 读取列表中倒数第二个元素
L[1:] #['Runoob', 'Taobao'] 从第二个元素开始截取列表
4、轮询列表中的每一项
list = ["1","2","3","4"]
for item in list: #值轮询
print(item)
for i in range(len(list)): #下表轮询
print("list[i]", list[i])
5、判断元素是否在list中
my_list = [1, 2, 3, 4, 5]
# 检查项目是否存在于列表中
if 3 in my_list:
print("判断在列表中")
if 3 not in my_list:
print("判断不在列表中")
6、列表函数&方法
函数和方法会链接到菜鸟教程,可以查看具体使用方法
序号 | 函数 |
1 | 比较两个列表的元素 |
2 | 列表元素个数 |
3 | 返回列表元素最大值 |
4 | 返回列表元素最小值 |
5 | 将元组转换为列表 |
序号 | 方法 |
1 | 在列表末尾添加新的对象 |
2 | 统计某个元素在列表中出现的次数 |
3 | 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
4 | 从列表中找出某个值第一个匹配项的索引位置 |
5 | 将对象插入列表 |
6 | 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 | 移除列表中某个值的第一个匹配项 |
8 |
|
9 | list.sort(cmp=None, key=None, reverse=False) 对原列表进行排序 |
六、元组
类似于 List(列表)。元组不允许修改,而列表是允许修改的
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
七、字典
字典很像json,格式也为 {键 : 值}
1、修改、添加、删除
tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
tinydict['Age'] = 8 # 修改
tinydict['School'] = "RUNOOB" # 添加
del tinydict['Name'] # 删除键是'Name'的条目
tinydict.clear() # 清空字典所有条目
del tinydict # 删除字典
2、获取字典元素
tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
# 通过key获取对应的value
value = tinydict.get('Name')
# 获取所有的键key
keys = tinydict.keys()
print(keys) # 输出: dict_keys(['Name', 'Age', 'Class'])
# 获取所有的值value
values = tinydict.values()
print(values) # 输出: dict_values(['Zara', 7, 'First'])
# 获取所有的key-value对
items = tinydict.items()
print(items) # 输出: dict_items([('Name': 'Zara'), ('Age': 7), ('Class': 'First')])
3、判断字典中key是否存在
dict = { 'name': 'dzm', 'age': '20' }
print('name' in dict.keys()) # True
print('id' not in dict) # True
4、判断字典为空
my_dict = {}
if not my_dict:
print("字典为空")
else:
print("字典不为空")
5、轮询字典
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
# 使用items()方法轮询dict,dict的items()方法获取键值对
for key, value in my_dict.items():
print(f"{key}: {value}")
# 使用keys()方法轮询dict,dict的keys()方法获取所有的键
for key in my_dict.keys():
value = my_dict.get(key) #或 my_dict[key]
print(f"{key}: {value}")
dict.get(key)与dict[key]的区别之处:
- dict.get():当key在字典中无法找到时,会返回None或者默认值;
- dict[key]:当key在字典中找不到时,会触发异常:KeyError异常;
说明:键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一
tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First', 'Age': 100}
print("tinydict['Name']: ", tinydict['Name']) # Zara
print("tinydict['Age']: ", tinydict['Age']) # 100 把前面的替换了
6、字典函数
函数会链接到菜鸟教程,可以查看具体使用方法
序号 | 函数及描述 |
1 | 比较两个字典元素。 |
2 | 计算字典元素个数,即键的总数。 |
3 | 输出字典可打印的字符串表示。 |
4 | 返回输入的变量类型,如果变量是字典就返回字典类型。 |
序号 | 函数及描述 |
1 | 删除字典内所有元素 |
2 | 返回一个字典的浅复制 |
3 | 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值 |
4 | 返回指定键的值,如果值不在字典中返回default值 |
5 | 如果键在字典dict里返回true,否则返回false |
6 |
|
7 | 以列表返回一个字典所有的键 |
8 | dict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
9 |
|
10 | 以列表返回字典中的所有值 |
11 | 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
12 | 返回并删除字典中的最后一对键和值。 |
八、函数
# 函数定义
def changeme(mylist):
"修改传入的列表"
mylist.append([1,2,3,4])
print("函数内取值: ", mylist) #函数内取值: [10, 20, 30, [1, 2, 3, 4]]
return
# 调用changeme函数
mylist = [10,20,30]
changeme(mylist)
print("函数外取值: ", mylist) #函数外取值: [10, 20, 30, [1, 2, 3, 4]]
1、函数返回值
返回值用 return
语句,返回值可以是所有的类型,如:字符串、列表、字典
def add_numbers(a, b):
return a + b
result = add_numbers(5, 10)
print(result) # 输出:15
多个返回值
def get_info():
name = "Alice"
age = 25
height = 165
return name, age, height
name, age, height = get_info()
print(name) # 输出:Alice
print(age) # 输出:25
print(height) # 输出:165
函数返回空列表、空字典、空字符串
def return_empty_list():
return [] #返回空列表
def return_empty_dict():
return {} #返回空字典
def return_empty_string():
return "" #返回空字符串
2、匿名函数
python 使用 lambda 来创建匿名函数。
# 可写函数
sum = lambda arg1, arg2: arg1 + arg2
# 调用sum函数
print("相加后的值为 : ", sum(10, 20)) #相加后的值为 : 30
print("相加后的值为 : ", sum(20, 20)) #相加后的值为 : 40
九、模块导入
1、import 语句
功能与C语言中的 #include 类似,用来导入其他模块
例如:有 main.py、support.py 2个python文件,main.py中怎么调用support.py中定义的函数?
support.py
def print_func(par):
print("Hello : ", par)
return
main.py
#!/usr/bin/python
import support # 导入模块
support.print_func("Runoob") #调用 support.py中的函数
使用import导入support.py模块,调用其函数时,需要加上模块名作前缀,如:support.print_func()
2、from…import 语句
from…import 语句用来导入模块中的一个函数、类或变量,而无需使用模块名作为前缀。
#!/usr/bin/python
from support import print_func # 导入support.py模块中的print_func函数
print_func("Runoob") # 调用模块的函数,无需加前缀
十、注释
1、单行注释 "#"
# 这是一个注释
print("Hello, World!")
2、多行注释
多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来
'''
这是多行注释,用三个单引号
这是多行注释,用三个单引号
这是多行注释,用三个单引号
'''
"""
这是多行注释,用三个双引号
这是多行注释,用三个双引号
这是多行注释,用三个双引号
"""