变量
python的变量不用预定义,python语句后不用加分号
i = "hello world!" #现在 i 就是字符串类型
输入输出和注释
话不多说,赶紧输出个 hello world!
print("hello world!") #控制台输出
i = input("请输入:") #接收控制台输入
#单行注释
'''
多行注释
多行注释
'''
获取变量数据类型
i = "hello world!"
print( type( i ) )
运算符
仔细看,与其它语言有一点差异
a=1+1
b=2-1
c=2*2 # 还可用于字符串,结果为重复指定次数的结果
d=5/2
e=5//2 # 取整 =2
f=2**2 # 幂 =4
g=3%2 # 取余 = 1
逻辑运算符(与、或、非)
c/c++等语言一般是 &&、||、!,
python对应 and、or、not;
import(引用模块)
类似c语言中的 include,示例如下:
import random
print( random.randint(1,10) ) #随机函数,获取一个1-10之间的int型数据
条件语句 (if、elif、else)
大部分高级语言都有,python也不例外,但python的条件语句下的代码块由一个tab键或者四个空格控制,对齐就是受控代码块,而且关键字后要加 ** : ** 符号,示例如下:
i = input("please input:")
i = int(i) #类型转换,因为控制台输入默认是字符
if i>0:
print("大于0")
elif i<0:
print("小于0")
else:
print("等于0")
while循环
不写 for 的原因是在python中 for 用于遍历迭代,while关键字后也要加** : **符号,并且和条件语句一样,由tab键或者四个空格控制代码块,while示例如下:
i = 0
while i < 10: #循环打印十次
i = i + 1 #
print( "hello world!" )
python 也有 continue 与 break 关键字,功能与其他语言一致;
list
相当于其它语言的数组,有序存储数据且允许多个类型,示例如下:
my_list = ["AAA","BBB","CCC"] #新建list
my_list.insert(2,111) #指定位置插入,list支持多个类型,此处是int
index = my_list.index("CCC") #获取指定数据索引
my_list[0] = "aaa" #按索引修改
my_list.remove(111) #删除第一次出现的数据
my_list.pop(2) #指定索引删除
my_list.clear() #清空
print( len(my_list) ) #获取长度
for 迭代遍历
和c#中的foreach一样,c++11标准中的 for 也有类似功能,注意关键字后仍然有冒号,代码块也是由tab键或者四个空格控制;
my_list = ["AAA","BBB","CCC"] #新建list
for i in my_list: #遍历list
print(i)
tuple(元祖)
与list类似,不同之处在于元祖的元素不能修改;
my_tuple = () #定义空元祖,访问元素等方法与list一样
元祖与列表之间可以相互转换( 使用 list() 方法和 tuple() 方法);
dict(字典)
字典是一个无序的数据集合,key是索引,value是数据,键和值之间用 : 分隔,键是唯一的;
值可以取任何数据类型,但键只能使用字符串、数字或元祖;
#定义字典
info = {"id":1001,
"name":"Rose",
"age":18}
print( info )
print( info["id"] ) #取key为"id"的value
info["age"] = 20 #修改
info["nickName"] = "玫瑰" #增加
info.pop( "nickName" ) #删除
temp_dict = {"height":170}
info.update( temp_dict ) #合并字典
for i in info: #遍历字典
print("%s %s"%( i, info[i]) )
info.clear() #清空
函数
python函数以 def 开始,return结束,不用指定返回值,参数也不用指定类型,代码控制块和关键字一样由四个空格或tab控制:
def fun(a,b):
print("hello world!")
return None
类的构造函数、析构函数、成员函数
与其它面向对象语言类似,只不过构造函数与析构函数必须是特定的名字,且参数列表中必须有self,成员函数参数列表中也必须有self,self等同于 this指针,换成this也可正常运行;
class MY:
def __init__(self): #构造函数必须是这个名字
print('构造函数')
def member_fun(self): #成员函数参数列表中必须有self,调用时不用传参
print('成员函数')
def __del__(self): #析构函数必须是这个名字
print('析构函数')
__name = None #私有变量前加两个下划线,使用时 self.xx
_id = 0 #受保护变量前加一个下划线,使用时 self.xx
def __private_fun(self): #函数方法权限和变量相同
print('私有函数')
def _protected_fun(self): #函数方法权限和变量相同
print('受保护的函数')
t = MY() #创建对象
t.member_fun() #调用成员函数
输出:
多线程的两种使用方法
- 使用 Thread 类
import threading
import time
def fun():
while 1:
print("hello world!")
time.sleep(1) #休眠一秒
t = threading.Thread(target=fun)
t.start() #启动线程
- 继承 Thread 类,重写 run() 函数,通过start()间接启动线程间接调用run()
class MyThread(threading.Thread):
def run(self):
while 1:
print("hello world!")
time.sleep(1)
t = MyThread()
t.start()