学习内容:
1. python,pycharm 介绍与安装;
2. 输入输出;
3. 变量/常量python变成规则;
4. 注释多行打印;
5. 多行打印以及编码发展史;
6. 格式化拼接;
7. 密码密文;
8. if...elif...else 条件语句;
9. while/for 循环语句;
10. 猜年龄游戏实践
1. Python,Pycharm 介绍与安装
1.1 Python 介绍
python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。
Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。
目前Python主要应用领域:
- 云计算: 云计算最火的语言, 典型应用OpenStack
- WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
- 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
- 系统运维: 运维人员必备语言
- 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
- 图形GUI: PyQT, WxPython,TkInter
重点:Python开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
1.2 Python 安装
(1)官网下载安装包 https:
/
/
www.python.org
/
downloads
/
(2)安装:默认路径安装即可
注:安装Python一定要安装3版本之后的,最好安装最新版本,不要安装2版本,2版本和3版本之间有很多不一样。
1.3 Pycharm 介绍
PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。
简单的说,就是一种Python IDE,python自带有IDLE也可做python编程,但是编译界面和操作都太原始,采用这种开发工具便于程序开发与调试。自行去官网下载安装即可。
可以说pycharm操作界面很人性化了,与大多数编程开发工具一样,很适合有编程基础的学习。
2. 输入输出
所有编程语言学习的第一个程序就是“Hello World!”,这是一种仪式,开玩笑了。不过这确实是及机器对人类说出的第一话。python中直接用用print即可。
print("Hello World!")
输出:print()
输入:import()
3. 变量/常量python变成规则
Python声明变量时,与其他编程软件最大的不同就是不需要声明数据类型,Python默认数据类型是字符串型。而且在Python 3以后的版本,可以识别中文的变量,但一般推荐。
变量定义的规则:
(1)变量名只能是 字母、数字或下划线的任意组合
(2)变量名的第一个字符不能是数字
(3)以下关键字不能声明为变量名
['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']
一般声明变量采用小写英文单词,
如:name=“Jack”
gf_of_Jack=“Dannie” (表示Jack的女朋友,用下划线来清楚解释变量含义)。
Python中没有常量的存在,一般声明规则用全部大写字母表示常量,
如:PIE=3.14.592653(虽然PIE在python是可以改变的,但是用全大些表示常量,便于理解含义)
4. 注释
单行注释:#
多行注释:''' '''
5. 多行打印以及编码发展史
可以以:变量=''' ''' 形式实现多行注释
duohang = '''
编码发展
ASCII 255 1byte --> 1980 GB2312 7xxx --> 1995 GBK1.0 2w+ --> 2000 GB18030 27xxx
--> 九十年代初 unicode 2bytes
--> utf-8 en:1byte, cn:3bytes
'''
print(duohang)
运行结果:
最早出现的ASCII是美国发明的,留有255位,使用了127位,预留一半的空间,但是仍然不够用来做汉字的编码,随后中国发明了GB2312(最早的汉字编码),后发展到GBK1.0,GB18030...。但是国际上没有统一的编码,就会出现中文,日文,韩文等其他语言的混乱编码,所以国际ISO在九十年代初发明了unicode编码,同一了国际上大多数语言的编码规则,然而英文并不需要2字节的存储空间,才有了今天比较适用的utf-8编码,根据语言不同所占空间不同,英文:1byte;中文:3bytes。
时间 | 编码名称 | 容量及解释 | 使用区域 |
最早 | ASCII | 255 1byte | 美国 |
1990 | GB2312 | 7xxx(七千多个汉字) | 中国 |
1995 | GBK1.0 | 2w+(两万多汉字与符号) | 中国 |
2000 | GB18030 | 27xxx | 中国 |
九十年代初 | unicode | 2bytes | 国际 |
不久 | utf-8 | 英文:1byte;中文:3bytes | 国际 |
6. 格式拼接
这里介绍三种格式拼接,还可以用多个''' '''+变量+''' '''字符串项相加的方式,但是需要开辟多个内存,不推荐。
# 3.用户输入,格式化输出
username = input("name:")
age = int(input("age:")) # 字符转整型
print(type(age)) # 查询数据类型
job = input("job:")
salary = input("salary:")
# 格式化拼接--方法1
info = '''
------- info of %s -------
Name:%s
Age;%d
Job:%s
Salary:%s
'''% (username,username,age,job,salary)
# 格式化拼接--方法2
info2 = '''
------- info of {_name} -------
Name:{_name}
Age;{_age}
Job:{_job}
Salary:{_salary}
'''.format(_name=username,
_age=age,
_job=job,
_salary=salary)
# 格式化拼接--方法3
info3 = '''
------- info of {0} -------
Name:{0}
Age;{1}
Job:{2}
Salary:{3}
'''.format(username,age,job,salary)
print(info3)
运行结果:
7. 密码密文
这里用到了Python的一个标准库getpass,需要在最前引用改库进行密文密码编写。
注意,在pycharm中密文编译会出问题,可以进入cmd尝试,输入密码是不会显示密码内容
import getpass # (1.1)密码密文标准库
_username='jiaowohaha'
_password='abc123'
# (1.2)密码密文(pycharmd里不好使,进cmd尝试)
username = input("username:")
password = getpass.getpass("password:")# (1.3)密码密文
print(username,password)
8. if...elis...else 条件语句
语法:
if <条件1>:
<执行1>
elif <条件2>:
<执行2>
else:
<执行3>
注:在最后的实践例子解释
9. while/for 循环语句
while <循环成立的条件>
#while无线循环
count=0
while True:
print("count:",count)
count=count+1 # counr+=1
if count==100000:
break
for i in range(n) # n 表示循环次数
break 跳出当前循环; continue 结束本次循环
#for循环
for i in range(10): # range(10)=={0,1,2,3,4,5,6,7,8,9}
if i<5:
print("loop",i)
elif i>=5 and i<=7:
continue #跳出本次循环,进入下次循环
else:
break #结束整个循环
print("hehe...")
print("change-----------------")
for i in range(0,10,2): # 2 代表步长
print("loop", i)
10. 猜年龄游戏实践
这里用了循环、条件的基本语法,编写一个猜年龄游戏
# 猜年龄游戏
age_of_oldboy=56
count=0
while count<3:
guess_age=int(input("guess age:"))
if guess_age==age_of_oldboy:
print("yes, you got it.")
break
elif guess_age>age_of_oldboy:
print("think smaller...")
else:
print("think bigger!")
count+=1
if count==3:
countine_confirm=input("do you want to keep guessing..? if you want to quit, please input 'n'.")
if countine_confirm!='n':
count=0
else:
break
else: # if count==3:
print("you have tried too many times...fuck off")
运行结果:
day2018.07.12