python基础一

1.1 Python优点

1、简单、优雅、明确
2、强大的模块三方库
3、易移植
4、面向对象
5、可扩展(c\java\c#...)

1.2 Python缺点

1、代码不能加密
2、速度慢
 

1.3 Python用途

一软件开发
1、游戏后台、搜索、图形界面
2、网站
3、C\S软件
4、科学运算
 
 
 

1.4 python解释器

 
— Cpython 官方标准
— Ipython    ipython是一个python的交互式shell,比默认的python shell好用很多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能和函数,在ubuntu下只要sudo apt-get install ipython就装好了,通过ipthon启动。
— Jython--Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。Jython 也有很多从CPython中继承的模块库。最有趣的事情是Jython不像CPython或其他任何高级语言,它提供了对其实现语言的一切存取。所以Jython不仅给你提供了Python的库,同时也提供了所有的Java类。这使其有一个巨大的资源库。
— PYPY    python写的解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。
— IronPython-- .net version
小结
Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.NET平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。
 
 

1.5 python变量和常量

a、标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘_’)
b、标识符名称的其他部分可以由字母(大写或小写)、下划线(‘_’)或数字(0-9)组成。
c、标识符名称是对大小写敏感的。例如,myname和myName不是一个标识符。注意前者中的小写n和后者中的大写N。
d、有效标识符名称的例子有i、_my_name、name_23和a1b2_3。
f、无效标识符名称的例子有2things、this is spaced out和my-name。
大写的是常量
  所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量:
PI=3.14159265359
  但事实上PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,如果你一定要改变变量PI的值,也没人能拦住你。
最后,理解变量在计算机内存中的表示也非常重要。当我们写:
a='ABC'
时,Python解释器干了两件事情:
1、在内存中创建一个'ABC'的字符串;
2、在内存中穿件另一个名为a的变量,并把它指向‘ABC’。
也可以把一个变量a赋值给另一个变量d,这个操作实际上是把变量b指向变量a所指向的数值,例如下面的代码:
a = 'ABC'
b = a
a = 'XYZ'
print b
最后一行打印出变量的内容到底是'ABC'还是'XYZ'?如果从数学意义上理解。就会错误地得出b和a相同,也应该是'XYZ',但实际上b的值是'ABC'

1.6 python注释

  当行注视:# 被注释内容

  多行注释:""" 被注释内容 """

 

1.7 python字符编码

ascii用1个字节(8位二进制)代表一个字符

unicode    utf-32 一个字符 占   4个字节  
unicode    utf-16   一个字符    占 2个字节  
utf-8    可变长的字符编码 一个英文占一个字节,一个中文占3个字节
编码时在前面加入
#_*_ coding:utf-8 _*_
 

1.8 python用户交互及格式化打印

#!/usr/bin/env pvthon
# -*- coding:utf-8 -*-

name = input("name:")
age = int(input("age:"))
job = input("job:")
hobby = input("hobby:")

info = '''
---------  info of %s   -----------
name : %s
age  : %d
job  : %s
hobby: %s
--------------end--------------------
'''%(name,name,age,job,hobby)

print(info)

info2 = '''
---------- info3 of {_name}  --------------
name : {_name}
age  : {_age}
job  : {_job}
hobby: {_hobby}
'''.format(_name=name,_age=age,_job=job,_hobby=hobby)

print(info2)

info3 = '''
---------- info2 of {0}  --------------
name : {1}
age  : {2}
job  : {3}
hobby: {4}
'''
print(info3)

输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import getpass

# 将用户输入的内容赋值给 name 变量
pwd = getpass.getpass("请输入密码:")

# 打印输入的内容
print(pwd)

提示:getpass在pycharm里不兼容。

猜年龄

#!/usr/bin/env python
# -*- coding: utf-8 -*-

age_of_oldboy = 56
guess_age = int(input("guess age:"))
if guess_age == age_of_oldboy:
    print("yes,you got it")
elif guess_age > age_of_oldboy:
    print("think smaller!")
else:
    print("think bigger!")

while循环

#!/usr/bin/env python
# -*- coding: utf-8 -*-

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:
        guess_confirm = input("do you want keep playing? y/n:")
        if guess_confirm == 'n':
            count = 0
else:
    print("fuck")
 

for循环

#!/usr/bin/env python
# -*- coding: utf-8 -*-
for i in range(10):
    print("--------",i)
    for j in range(10):
        print(j)
        if j > 5:
            break
 
 
 
上一篇:图解HTTP-1.web和网络基础


下一篇:cocos2dx 初探 - VS2012 HELLOWORLD