Python简介

  Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。

  ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是非开放造成的。Guido 决心在Python 中避免这一错误。同时,他还想实现在ABC 中闪现过但未曾实现的东西。

  就这样,Python在Guido手中诞生了。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。

  Python  已经成为最受欢迎的程序设计语言之一。2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。自从2004年以后,python的使用率是呈线性增长 。

Python入门

一、python安装

windows系统:

1、下载安装包
https://www.python.org/downloads/
2、安装
默认安装路径:C:\python35
3、配置环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
如:原来的值;C:\python35,切记前面有分号

linux系统:

无需安装,原装Python环境

ps:如果自带2.6,请更新至3.0以上
环境:yum install openssl-devel gcc++ gcc 可直接安装pip 更新版本到3.5.2
下载:wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz 解压:tar zxvf Python-3.5.2.tgz 编译:cd Python-3.5.2
./configure --prefix=/usr/local/python3.5 安装:make && make install 默认安装位置/usr/local/lib/python3.5 执行命令python3.5进入到运行环境 mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/python3.5/bin/python3.5 /usr/bin/python
修改yum环境 vi /usr/bin/yum
改为如下内容 #!/usr/bin/python2.6.6

pip安装:

windows:
1.在以下地址下载最新的PIP安装文件:http://pypi.python.org/pypi/pip#downloads
2.下载pip-9.01.tar.gz (md5, pgp)完成之后,解压到一个文件夹,用CMD控制台进入解压目录,输入:python setup.py install
3.安装好之后,我们直接在命令行输入pip,同样会显示‘pip’不是内部命令,也不是可运行的程序。因为我们还没有添加环境变量
C:\Python27\Scripts linux:
1、官网下载pip安装包 https://pypi.python.org/pypi/pip
2、解压下载的文件 tar zxvf pip-9.0.1.tar.gz
3、安装 python setup.py install
4、执行pip命令进行验证 ln -s /usr/local/python3.5/bin/pip3 /usr/bin/pip3
python2.7 首先下载并安装setuptools:
wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py
sudo python ez_setup.py --insecure

python3.7 依赖包https://github.com/pyenv/pyenv/wiki

二、python初试

在 /home/python/ 目录下创建 hello.py 文件,内容如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-Lian print ("Hello World!")

执行: ./hello.py      注:执行前需给予 hello.py 执行权限,chmod 755 hello.py

三、变量赋值及命名规则

① 声明一个变量name,变量name的值为:“lzl”

#!/usr/bin/env python
# -*- coding: utf-8 -*- name = "lzl"

② 变量命名的规则

变量定义的规则:

变量名只能是 字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global',
'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

③ 扩展 (给变量name1赋值Alex li,变量name2赋值为变量name1,name1重赋值Jack Chen,此时name2的值为多少?)

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-Lian
name1 = "Alex Li" name2 = name1
print(name1, name2) name1 = "Jack Chen" print("What is the value of name2 now?")

由图所示,所以最后name1的值为Jack Chen,name2的值为Alex li

四、字符编码

python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。

显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:

报错:ascii码无法表示中文

#!/usr/bin/env python

print "你好,世界"

改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:

#!/usr/bin/env python
# -*- coding: utf-8 -*- print "你好,世界"

注:python2.x版本,默认支持的字符编码为ASCll    python3.x版本,默认支持的是Unicode,不用声明字符编码可以直接显示中文

五、用户交互及字符串拼接

跟用户进行交互,并把输入的信息打印出来

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-Lian
###########用户交互及字符串拼接################
# python2.X与python3.X区别: python2.X raw_input = python3.X input
# 提示用户输入姓名、年龄、工作、工资并以信息列表的形式打印出 name = input("Please input your name:")
age = int(input("Please input your age:")) #str强制转换为int
job = input("Please input your job:")
salary = input("Please input your salary:") info1 = '''
------------ Info of %s ---------
Name:%s
Age:%d
Job:%s
Salary:%s
''' %(name,name,age,job,salary) #%s检测数据类型为字符串,%d检测数据类型为整数,%f检测数据类型为浮点数 强制
print(info1) info2 = '''
------------ Info of {_Name} ---------
Name:{_Name}
Age:{_Age}
Job:{_Job}
Salary:{_Salary}
''' .format(_Name=name,
_Age=age,
_Job=job,
_Salary=salary)
print(info2) info3 = '''
------------ Info of {0} ---------
Name:{0}
Age:{1}
Job:{2}
Salary:{3}
''' .format(name,age,job,salary)
print(info3)

六、if判断语句

① 实例:用if语句验证用户登录,密文密码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-Lian
#############验证用户登录-密文密码##############
# 提示输入用户名密码
# 验证用户名密码
# 如果错误,则输出用户名密码错误
# 如果成功,则输出欢迎,xxx! import getpass #标准模块,import调用 name = input("Please input your name:")
password = getpass.getpass("Please input your password:") if name == "lzl" and pwd == "lzl@123":
print ("Welcome to,lzl!")
else:
print ("The user name and password mistake")

② 实例:用if语句实现猜幸运数字游戏

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-Lian
##############猜幸运数字################
# 提示用户输入猜的幸运数字(1-100)
# 根据输入的数字做判断
# 如果猜对,输出恭喜你猜对了
# 如果猜的数字大了,输出数字往小点猜
# 否则,输出数字往大点猜 lucky_num = 66 guess_num = int(input("Please enter your guess lucky number(1-100):")) if guess_num == lucky_num:
print ("Congratulations you guessed it!")
elif guess_num > lucky_num :
print ("Think it smaller...")
else:
print ("Think it bigger...")

七、while循环语句

① 实例:猜数字游戏升级版(循环猜数字,直到猜到为止)

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-Lian
##############猜幸运数字################ lucky_num = 66 # 设置幸运数字 while True: # while循环:
# 输入猜的的幸运数字范围1-100
guess_num = int(input("Please enter your guess lucky number(1-100):")) if guess_num == lucky_num: # 如果猜对,输出恭喜你猜对了,并退出
print ("Congratulations you guessed it!")
break #break 结束循环 continue 跳出本次循环,继续下次循环 exit 结束程序
elif guess_num > lucky_num : # 如果猜的数字大了,输出数字往小点猜
print ("Think it smaller...")
else: # 否则,输出数字往大点猜
print ("Think it bigger...")

② 实例:猜数字游戏完善版(循环猜数字,允许猜三次机会)

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-Lian
##############猜幸运数字+次数限制################ lucky_num = 66 # 设置幸运数字
count = 0 # 设置初始值count=0 while count < 3 : # while判断count是否小于3,如果小于3则:
# 输入猜的的幸运数字范围1-100
guess_num = int(input("Please enter your guess lucky number(1-100):")) if guess_num == lucky_num: # 如果猜对,输出恭喜你猜对了,并退出
print ("Congratulations you guessed it!")
break #break 结束循环 continue 跳出本次循环,继续下次循环 exit 结束程序
elif guess_num > lucky_num : # 如果猜的数字大了,输出数字往小点猜
print ("Think it smaller...")
else: # 否则,输出数字往大点猜
print ("Think it bigger...")
count += 1 #每次循环结束count加1
else:
print ("You tried so many times!") #while循环超过三次,则输出试过太多次了

八、for循环语句

实例:用for循环实现猜数字游戏,限制三次机会

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-Lian
##############猜幸运数字+次数限制################ lucky_num = 66 # 设置幸运数字 for i in range(3): # while判断count是否小于3,如果小于3则:
# 输入猜的的幸运数字范围1-100
guess_num = int(input("Please enter your guess lucky number(1-100):")) if guess_num == lucky_num: # 如果猜对,输出恭喜你猜对了,并退出
print ("Congratulations you guessed it!")
break #break 结束循环 continue 跳出本次循环,继续下次循环 exit 结束程序
elif guess_num > lucky_num : # 如果猜的数字大了,输出数字往小点猜
print ("Think it smaller...")
else: # 否则,输出数字往大点猜
print ("Think it bigger...")
else:
print ("You tried so many times!") #while循环超过三次,则输出试过太多次了

九、扩展

① 编写登陆接口 要求:

  • 输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后锁定

# 流程图如下:         

# login_interface.py 程序代码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-Lian
################登录接口程序################ # -*- 运行环境python3.5.2 -*-
#user_information、locked_information、day1_login_interface.py三个文件拷贝到同一级目录
#授权:chmod 755 day1_login_interface.py
#执行:python day1_login_interface.py ####记录可登录用户、密码信息文件user_information####
# Dave dave123
# John john123
# Luffy luffy123
####记录被锁定的用户信息文件locked_information####
# lzl
# Alex #
Count = 1 #设置计数器,统计下面第一个while大循环的次数 赋值变量Count,初始值为1
Last_user = "" #针对上次登录的用户名进行记录,如果连续三次登录错误的用户名是一致的话才进行锁定
#赋值变量Last_user,初始值为空
Match_count = 1 #统计Last_user与上次登录的用户名匹配的次数,变量Match_count初始值为1 while True:
Locked = open("locked_information", "r") # 读取被锁定用户名信息文件
User_pwd = open("user_information", "r") # 读取可登录的用户、密码信息文件 User = input("Please enter the login username:") #提示用户输入登录用户名并赋值给User
Passwd = input("Please enter login password:") # 提示用户输入登录密码并赋值给Passwd if len(User) == 0:
print("Error:Enter the user is null! please try again..")
continue
if Last_user == User: #if语句判断,本次登录的用户名跟上次登录的用户名是否匹配
Match_count +=1 #如果匹配成功,表示两次连续登录的用户名一致,Match_count计数加1
else: #如果匹配失败,Match_count计数恢复为初始值1
Match_count = 1 Re_count = 3 - Count #设置变量Re_count为还进行登录的剩余次数,判断登录失败后会用到 for Blacklist in Locked.readlines(): #for循环读取被锁定用户名,生成变量Blacklist
Blacklist = Blacklist.strip("\n") #对变量Blacklist进行去换行符操作
if User == Blacklist: #判断如果输入的用户名在Blacklist中,则提示用户被锁定并退出登录
print ("Login username ",User," is locked, login fails...")
exit() #退出程序 for i_f_m in User_pwd.readlines(): #for循环读取可登录用户、密码信息文件,赋值变量i_f_m
i_f_m = (i_f_m.strip("\n")).split() #对变量i_f_m进行先去换行符,然后以空格符分割为列表的操作
if User == i_f_m[0] and Passwd == i_f_m[1]: #对登录用户名和密码进行匹配,两者都匹配成功则显示恭喜登陆成功
print ("Congratulations to login successful!")
exit() #退出程序
print(User,Passwd) else:
if Re_count > 0 : #验证上面for循环匹配失败并且剩余登录次数大于0后,提示错误和剩余次数
#如果去掉if判断,则在匹配用户锁定时打印信息重合,放到下面while循环里面则会添加多余输出
print("Error: The username and password mistate! You can also try", Re_count, "times...") while Re_count > 0 : #while循环语句,重试登录次数大于0时,提示用户是否还要继续登陆
If_cont = input("Whether or not to continue to login?(Y/N):")
if If_cont == "Y": #匹配字符Y
break #跳出当前while,重新输入用户名密码
elif If_cont == "N": #匹配字符N
print ("-- Bye --")
exit() #终止程序
else: #字符输入错误,重新提示输入正确的字符Y 和 N
print("* Please enter 【Y】 or 【N】 *")
continue #跳出当前循环执行下次循环
else: #while循环语句,当用户重试登录次数为0时,执行下面语句
if Match_count == 3: #连续三次输入的用户名一致,把用户名加入到黑名单
Locked = open("locked_information", "a") #对文件locked_information追加写操作
Locked.write(User + "\n") #把用户名写入到黑名单并执行下换行符
print("Error: The username and password mistate! The current user ",User," is locked...")
break #提示锁定用户并退出程序
else: #连续三次输入的用户名不一致,提示用户名密码错误,不进行锁定
print ("Error: The username and password mistate! Bye-bye!")
break #退出程序 Count +=1 #循环结束,Count计数加1
Last_user = User #循环结束,Last_userc重新赋值
Locked.close()
User_pwd.close()

login_interface.py

# 程序 readme

# 这是一个模拟真实用户登录系统的程序

### 作者介绍:
* author:lzl
### 博客地址:
* http://www.cnblogs.com/lianzhilei/p/5703675.html ### 实现效果:
* user_information文件记录了可登录用户名和密码,每次登录只有完全匹配文件中的用户名和密码才能登录
* locked_information文件记录了被锁定的用户,每次登录输入被锁定的用户,会提示当前用户被锁定,并退出
* 用户连续三次登录失败且三次输入的用户名一样,会显示当前用户被锁定,退出程序并且把用户名记录到locked_information
* 用户连续三次登录失败,但三次的用户名不一样,提示登录失败,退出程序用户名不锁定
* 前两次登录失败时可选择是否还要继续登录,登录失败时会显示剩余登录次数 ### Bug 可完善的地方:
* 随意输入任何用户名都可进行登录,即使不存在与user_information文件中也可被锁定
* 输入的密码时可以改成密文的形式 ### 运行环境:
* Python3.0+ 最佳Python3.5.2 ### 目录结构: Day1
├── 登录接口
│ ├── day1_login_interface.py
│ └── locked_information
│ ├── user_information
│ ├── login_interface.png
│ └── readme ### linux 运行说明: * user_information、locked_information、day1_login_interface.py拷贝到同一级目录下
* 加执行权限 chmod 755 day1_login_interface.py
* 执行程序 python day1_login_interface.py

readme

② 多级菜单,查询街道/地区邮政编码

  • 三级菜单
  • 可依次选择进入各子菜单
  • 子菜单实现b可以返回,q可以退出

# 流程图如下

# multistage_menu.py程序代码如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-Lian
################多级菜单,查询街道/地区邮政编码################ # -*- 运行环境python3.5.2 -*-
#授权:chmod 755 day1_multistage_menu.py
#执行:python day1_multistage_menu.py
#注:定义Main_menu主菜单 字典套字典套列表形式 Main_menu = { #定义主菜单Main_menu作为数据库
'北京':{
'石景山区':['八宝山街道','老山街道','八角街道','古城街道','苹果园街道','金顶街街道','广宁街道','鲁谷社区'],
'朝阳区':['和平街街道','朝外街道','劲松街道','建外街道','呼家楼街道','八里庄街道','三里屯街道','潘家园街道'],
'昌平区':['城北街道','城南街道','天通苑北街道','天通苑南街道','霍营街道','回龙观街道','龙泽园街道','史各庄街道'],
'东城区':['安定门街道','建国门街道','东直门街道','天坛街道','东四街道','龙潭街道','前门街道','景山街道'],
'海淀区':['清华园街道','香山街道','清河街道','上地街道','万柳地区','中关村街道','海淀街道','学院路街道']
},
'上海':{
'黄浦区':['南京东路街道','外滩街道','半淞园路街道','小东门街道','豫园街道','老西门街道','五里桥街道','淮海中路街道'],
'浦东新区':['潍坊新村街道','陆家嘴街道','周家渡街道','塘桥街道','洋泾街道','东明路街道','花木街道','浦兴路街道'],
'徐汇区':['湖南路街道','天平路街道','枫林路街道','徐家汇街道','斜土路街道','长桥街道','龙华街道','田林街道'],
'长宁区':["华阳路街道","新华路街道","江苏路街道","天山路街道","周家桥街道","虹桥街道","仙霞新村街道","程家桥街道"],
'杨浦区':['定海路街道','平凉路街道','江浦路街道','四平路街道','控江路街道','长白新村街道','延吉新村街道','殷行街道']
},
'香港':{
'香港岛':['中西区','湾仔区','东区','南区','石澳','大浪湾','夏萍湾','龟背湾'],
'九龙半岛':['油尖旺区','深水埗区','九龙城区','黄大仙区','观塘区','维多利亚港','旺角','新蒲岗'],
'新界':['北区','大埔区','沙田区','西贡区','荃湾区','屯门区','元朗区','葵青区'],
'港岛区':['中环','湾仔','南区','太平山','尖沙咀','钻石山','山顶','大屿山'],
'九龙区':['龙门','九龙','侯王庙','万佛寺','东普陀','青松观','妙法寺','灵渡寺']
}
} import random #调用random,生成邮编码 while True:
Num_ct = 1 #城市ID序号,初始值1 Dic_city = {} #定义字典,初始值空
Dic_county = {}
Dic_street = {}
print(" -*- 邮政编码查询系统 -*-")
for City in Main_menu.keys(): #循环 把可选的城市赋值给变量City
print ("",Num_ct,City) #打印ID序号和城市名
Dic_city[Num_ct] = City #绑定ID序号和城市名,生成字典Dic_city
Num_ct +=1 #每次循环ID序号+1
print( " q", "退出程序")
City_id = input("请输入要查询城市的ID序号 :") #for循环结束,输入要选择的城市ID 注:此时输入的类型为字符串
if City_id == "q": # 判断输入是否为q 退出程序
print(" -*- Bye-bye! -*-")
exit()
elif City_id in ['','','']: #匹配输入是否为1,2,3
City_id = int(City_id) #字符类型转换 注:如果不转换,下面字典匹配不到key值
Sec_menu = (Main_menu.get((Dic_city.get(City_id)))) #定义二级菜单,生成二级数据库 while True: #while 循环
Num_co = 1 #市区ID序号,初始值1
for County in Sec_menu.keys(): #循环 把可选的市区赋值给变量County
print("",Num_co, County) #打印ID序号和市区名
Dic_county[Num_co] = County #绑定ID序号和市区名,生成字典Dic_county
Num_co += 1 #每次循环ID序号+1
print(" b", "返回上级重新选择城市", "\n", "q", "退出程序")
County_id = input("请输入要查询城区的ID序号 :") #输入要选择的市区ID
if County_id == "b": #判断输入是否为b 返回上级菜单
break
elif County_id == "q": #判断输入是否为q 退出程序
print(" -*- Bye-bye! -*-")
exit()
elif County_id in ['','','','','']: #判断输入是否为1-5
County_id = int(County_id) #字符类型转换
Third_menu = (Sec_menu.get((Dic_county.get(County_id)))) #定义三级菜单,生成三级数据库 while True: #while 循环
Num_st = 1 #街道数字标号,初始值1
for Street in Third_menu: #循环 把可选的街道赋值给变量Street
print ("",Num_st,Street) #打印ID序号和街道名
Dic_street[Num_st] = Street #绑定ID序号和市区名,生成字典Dic_street
Num_st +=1 #每次循环ID序号+1
print (" b","返回上级重新查询城区","\n","q","退出程序")
Street_id = input("请输入要查询街道/区域的ID序号 :") #输入要选择的街道ID序号
if Street_id == "b": #判断输入是否为b 返回上级菜单
break
elif Street_id == "q": #判断输入是否为q 退出程序
print(" -*- Bye-bye! -*-")
exit()
elif Street_id in ['', '', '', '', '','','','']: #判断输入是否为1-8
Street_id = int(Street_id) #字符类型转换 print("您查询的地址:",Dic_city.get(City_id),Dic_county.get(County_id),Dic_street.get(Street_id),
" 邮政编码为:",random.randint(100000,300000)) #查询成功 输出
exit() #查询成功 退出
####留位####注:如果还行输入成功后加判断是否继续查询,可在此加代码 else: #输入格式错误,提示
print(" 输入的格式错误!请重新输入数字 1 & 2 & ... & 7 & 8 或字符 b & q") else: #输入格式错误,提示
print(" 输入的格式错误!请重新输入数字 1 & 2 & 3 & 4 & 5 或字符 b & q") else: #输入格式错误,提示
print(" 输入的格式错误!请重新输入数字 1 & 2 & 3 或 字符 q")

multistage_menu.py

# 程序 readme

# 这是一个模拟查询街道/地区邮政编码的程序
# 多级菜单,使用了字典套字典套列表的形式 ### 作者介绍:
* author:lzl
### 博客地址:
* http://www.cnblogs.com/lianzhilei/p/5703675.html ### 实现效果:
* 进入程序每级菜单可选择要查询的ID序号,选择序号会进入到相应的地区子菜单中
* 每级菜单都可输入b返回上一级菜单,输入q可退出程序
* 任何一级菜单输入错误的字符,会提示重新输入ID序号
* 最后三级菜单选择完毕,输入选择地区的邮政编码,查询完成,退出程序 ### Bug 可完善的地方:
* 邮政编码由随机数设定,数据不准确
* 由于用到的字典是无序的,所以同一级菜单每次显示的ID序号可能不一样 ### 运行环境:
* Python3.0+ 最佳Python3.5.2 ### 目录结构: Day1
├── 三级菜单
│ ├── day1_multistage_menu.py
│ ├── multistage_menu.png
│ └── readme ### linux 运行说明: * 加执行权限 chmod 755 day1_multistage_menu.py
* 执行程序 python day1_multistage_menu.py

readme

BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiQUMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJETSIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IklJIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiUlMwIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiV1MiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJEUE4iLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJSQyIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IlBTIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiREMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJEQiIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IlJNIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiUEMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJDTCIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9XSwiaGFzaCI6IjQ3NzU1MTcvMCIsImdyYWNlUGVyaW9kRGF5cyI6MCwiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-iygsIMXTVeSyYkUxAqpHmymrgwN5InkOfeRhhPIPa88FO9FRuZosIBTY18tflChACznk3qferT7iMGKm7pumDTR4FbVVlK/3n1ER0eMKu2NcaXb7m10xT6kLW1Xb3LtuZEnuis5pYuEwT1zR7GskeNWdYZ0dAJpNDLFrqPyAPo5s1KLDHKpw+VfVd4uf7RMjOIzuJhAAYAG+amyivQt61I9aYiwpHQvUphvTwi0X0qL/oDJHAQbIv4Qwscyo4aYZJBKutYioZH9rgOP6Yw/sCltpoPWlJtDOcw/iEWYiCVG1pH9AWjCYXZ9AbbEBOWV71IQr5VWrsqFZ7cg7hLEJ3A==-MIIEPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE1MTEwMjA4MjE0OFoXDTE4MTEwMTA4MjE0OFowETEPMA0GA1UEAwwGcHJvZDN5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQC9WZuYgQedSuOc5TOUSrRigMw4/+wuC5EtZBfvdl4HT/8vzMW/oUlIP4YCvA0XKyBaCJ2iX+ZCDKoPfiYXiaSiH+HxAPV6J79vvouxKrWg2XV6ShFtPLP+0gPdGq3x9R3+kJbmAm8w+FOdlWqAfJrLvpzMGNeDU14YGXiZ9bVzmIQbwrBA+c/F4tlK/DV07dsNExihqFoibnqDiVNTGombaU2dDup2gwKdL81ua8EIcGNExHe82kjF4zwfadHk3bQVvbfdAwxcDy4xBjs3L4raPLU3yenSzr/OEur1+jfOxnQSmEcMXKXgrAQ9U55gwjcOFKrgOxEdek/Sk1VfOjvS+nuM4eyEruFMfaZHzoQiuw4IqgGc45ohFH0UUyjYcuFxxDSU9lMCv8qdHKm+wnPRb0l9l5vXsCBDuhAGYD6ss+Ga+aDY6f/qXZuUCEUOH3QUNbbCUlviSz6+GiRnt1kA9N2Qachl+2yBfaqUqr8h7Z2gsx5LcIf5kYNsqJ0GavXTVyWh7PYiKX4bs354ZQLUwwa/cG+++wNWP+HtBhVxMRNTdVhSm38AknZlD+PTAsWGu9GyLmhti2EnVwGybSD2Dxmhxk3IPCkhKAK+pl0eWYGZWG3tJ9mZ7SowcXLWDFAk0lRJnKGFMTggrWjV8GYpw5bq23VmIqqDLgkNzuoog==

pycharm激活码

Python开发【第一章】:简介和入门的更多相关文章

  1. 路飞学城-Python开发-第一章

    # 基础需求: # 让用户输入用户名密码 # 认证成功后显示欢迎信息 # 输错三次后退出程序 username = 'pandaboy' password = ' def Login(username ...

  2. ROS机器人程序设计(原书第2版)补充资料 (壹) 第一章 ROS系统入门

    ROS机器人程序设计(原书第2版)补充资料 (壹) 第一章 ROS系统入门 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. 第一章主要包括R ...

  3. 第一章 corejava的入门

    第一章 corejava的入门一:什么是语言语言=os+数据结构+算法+思想os:操作系统数据结构:队,栈,二叉树,链表算法:做游戏开发时非常重要面试题:int a>0,b>0只使用一条输 ...

  4. 【翻译习作】 Windows Workflow Foundation程序开发-第一章05

    1.3      开发我们的第一个工作流 也许你曾经在这样的产品经理手下搞过开发:他总是在你身边转悠,并不时的问一句“你还没做完吗?”.在这一部分,我们将用一个简单的Windows Workflow程 ...

  5. 【翻译习作】 Windows Workflow Foundation程序开发-第一章04

    1.2.3  Windows Workflow运行时 从Windows Workflow的角度看,可以将工作流活动当成是交给一个工作流处理器去执行的一系列指令或操作码.在Windows Workflo ...

  6. 【翻译习作】 Windows Workflow Foundation程序开发-第一章03

    1.2.2.Visual Studio 2005扩展包 微软也为Windows Workflow开发者提供了Visual Studio 2005扩展包.扩展包将许多功能集成到Visual Studio ...

  7. 【翻译习作】 Windows Workflow Foundation程序开发-第一章02

    1.2      Windows Workflow概览 微软的Windows Workflow Foundation(简称WF)是.NET框架3.0版的一部分..NET3.0其它主要部分是Window ...

  8. ASP.NET自定义控件组件开发 第一章 第三篇

    原文:ASP.NET自定义控件组件开发 第一章 第三篇 第三篇:第一章的完结篇 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待 ...

  9. ASP.NET自定义控件组件开发 第一章 第二篇 接着待续

    原文:ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 很感谢大家给我的第一篇ASP.NET控件开发的支持!在写这些之前,我也看了 ...

  10. ASP.NET自定义控件组件开发 第一章 待续

    原文:ASP.NET自定义控件组件开发 第一章 待续 第一章:从一个简单的控件谈起 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接 ...

随机推荐

  1. [Linux] scp指令用法

    scp 指令用法 # scp usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [ ...

  2. 数据结构---哈希表的C语言实现(闭散列)

    原文地址:https://blog.csdn.net/weixin_40331034/article/details/79461705 构造一种存储结构,通过某种函数(hashFunc)使元素的存储位 ...

  3. REDIS中加锁和解锁问题

    使用lua+redis的方法.之所以使用lua是为了保证原子性 问题: 1. redis发现锁失败了要怎么办?中断请求还是循环请求?2. 循环请求的话,如果有一个获取了锁,其它的在去获取锁的时候,是不 ...

  4. include mime.types;

    include mime.types; (index):1 Resource interpreted as Stylesheet but transferred with MIME type appl ...

  5. Ajax serialize()提交form表单不能上传file类型

    前台form表单的提交方式有很多种,例如: 1. form表单submit直接提交的方法 2. Ajax提交的方法 3. jquery提交的方法 4. 原生js提交的方法 每一种方法都有它的优势和不足 ...

  6. vscode片段

    参考资料 https://blog.csdn.net/maokelong95/article/details/54379046 "狂客注释": { "prefix&quo ...

  7. 【PHP】php7.2报错The each() function is deprecated. This message will be suppressed on furthe

    php7.2以上 废除了 each()方法,项目中用到的地方会出现以下报错 The each() function is deprecated. This message will be suppre ...

  8. hadoop记录-[Flink]Flink三种运行模式安装部署以及实现WordCount(转载)

    [Flink]Flink三种运行模式安装部署以及实现WordCount 前言 Flink三种运行方式:Local.Standalone.On Yarn.成功部署后分别用Scala和Java实现word ...

  9. Glide升级到4.x版本遇到的问题

    Failed to find GeneratedAppGlideModule. You should include an annotationProcessor compile dependency ...

  10. POJ Corn Fields 状态压缩DP基础题

    题目链接:http://poj.org/problem?id=3254 题目大意(名称什么的可能不一样,不过表达的意思还是一样的): 种玉米 王小二从小学一年级到现在每次考试都是班级倒数第一名,他的爸 ...