目录
2.4迭代器 & 生成器 a={1,2,3,4........}
1.Python系统环境安装 & Pycharm
python官网下载
界面挺好看的
系统自动创建的文件,可以手动运行
1.2 导入python相应的库(使用阿里镜像源)
可以看到下载的速度师非常缓慢的,可以采用的国内的下载地址
设置国内的阿里镜像源
文件内容:
[global]
index-url=https://mirrors.aliyun.com/pypi/simple
[installed]
trusted-host=mirrors.aliyun.com
2python语法基础
2.1基础数据类型 & 多元数据类型
#学会使用快捷键1
#Demo1 格式转换
print(int(3.17))
print(float(6))
#Demo2 列表 学会使用列表的嵌套功能
list_data = ['Allen','entrepreneur',23]
list_data1 = [['Michael','teacher'],(1,2,3),{'Name':'Allen','Hobbies':'Read & Run'}]
print(list_data)
print(list_data1)
#Demo3 修改个人信息
#增
person_info =['Allen','Male']
person_info.append(1.80) #增加自己的身高
person_info.insert(1,23) #增加自己的年龄
print(person_info)
#改
person_info[3]=1.81 #为自己增高,哈哈
person_info[0:2]=['Handsome boy',18+1] #为自己带盐(哦,代言)
print(person_info)
#查
print(person_info[2])
print(person_info[0:2])
#删
person_info.pop(2) #基于索引
print(person_info) #堆栈 push pop
person_info.remove(19)#基于内容
print(person_info)
del person_info[0:2] #基于索引删除
print(person_info)
person_info.clear()#删除全部列表的元素
del person_info #删除整个列表
#总结:1.查询:无需由数可替换数据 修改需要 2.pop 默认删除最后一个,如果有指定,那就删除指定的内容
#Demo3 字典
dict_1 = dict() #空值创建
dict_2 = {}
#非空值创建的三种方式
dict_3 = {'姓名':'Allen','年龄':23}
dict_4 = dict({'Name':'小龙人','Age':'23'})
dict_5 = dict(name='金丝猴',age=23)
#python中的字典表里有的是item,item由键值对组成 []() 外不加‘’ ,防止编程字符串
dict_6 = {'Name':('Michael','Allen'),'cities':['Beijing','Shanghai']}
print(dict_6)
info = {'Name':'Allen','City':'Shanghai','Job':'Data analyst'}
print(info)
#增删改查 操作
info['Desire']='Entrepreneur'
info['City']='San Francisco';
print(info['Name'])
del info['Job']
print(info)
2.2逻辑与循环
#判断语句 满足条件则if后输出 不然else后的语句输出
A_learn_mode = 'active'
if(A_learn_mode.__contains__('active')):print("Good for you")
else:
print("Find your love!")
B_learn_mode = 'I do not know'
if(B_learn_mode.__contains__('active')):print("Good for you")
else:
print("Find your love!")
#for
for name in A_learn_mode:
print(name)
#如果我们要打印5次active呢?
# 接下来引入 range() 方法
for i in range(5):
print('I wanna be active to lead my life!!')
#while 注意缩进 indent 同一级别,开头对齐!!!
number = 5
while number >= 0:
print('点火倒计时:'+str(number))
number = number-1
print('Take off!')
2.3函数
#声明函数
def My_Function():
print('Find your love')
#调用函数
My_Function()
2.4迭代器 & 生成器 a={1,2,3,4........}
#迭代器是从常规可迭代对象转换过来的
I_data = ['Allen','Love','Coding','&','Basketball']
new_data = iter(I_data)
# print(next(new_data))
# print(next(new_data))
# print(next(new_data))
# print(next(new_data))
# print(next(new_data))
print("---------------------------------------------")
#测试for循环下的可迭代对象 和迭代器之间的不同表现
print("可迭代对象")
for i in I_data:
print(i)
for i in I_data:
print(i)
print("可迭代器")
for i in new_data:
print(i)
for i in new_data:
print(i)
print("----------------------------------------")
#怎样声明使用一个生成器?
#简单生成器
def practice_skills():
yield 'Target'
yield 'Focus'
yield 'Feedback'
yield 'Correct'
#注意缩进 indnext(my_learn)ent
my_learn = practice_skills()
print(next(my_learn))
print(next(my_learn))
print(next(my_learn))
print(next(my_learn))
print("---------------------------------------")
def breakthrough_logic():
n=['极度渴望','脚踏实地','突破舒适圈的勇气']
for i in n:
yield i
my_way = breakthrough_logic()
print(next(my_way))
print(next(my_way))
print(next(my_way))
#how to declare and transfer constructors?
def hello():
print('No.1')
return 'Finish'
print('Who know?')
print(hello())
def gen_num():
n = 0
while True:
yield n
n = n+1
print('从0到1的过程')
my_num = gen_num()
print(next(my_num))
# 总结:return 有类似与break,但此处结束,但我们可以观察到其有返回结果。
# yield生成器的标志之一,使用的时候返回结果,返回上次记录的位置
生成器 保存算法,持续生成数据 可以想象:身边努力工作的人 有规则吗,就给你供应取出
n= n+1
next = 1
next = 2
....
迭代器 拥有的方法 _iter_() 和_next_() 身边聪明的人,未必时刻出结果 单次使用,有需求给你取
next =1
next =2
...
可迭代对象 可以看见的数据 给你全部结果 有什么给你什么,数据增加,资源消耗巨大
a={1,2,3............}
迭代器在并不是对I——data引用,而是直接创建自己的对象。取出迭代器中的元素,如同子弹。取出一个,少一个。取完后会报错。如下图
2.5多线程
import threading
import os,time
#线程模块的引入
def my_task1(name,message):
print('What defines %s?'%name)
print(message)
def my_task2(name,message):
print('What decides %s?'%name)
print(message)
T1 = threading.Thread(target=my_task1,args=('Young Men','Personality'))
T2 = threading.Thread(target=my_task2,args=('Old Men','Obedience'))
T1.start()
T2.start()