了解python底层(需要C基础) :python源码剖析
一、python安装
参考:https://www.cnblogs.com/uncleyong/p/10778792.html
编写:hello world
C:Usersqzcsbj>python Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> print('hello python') hello python >>>
命令行窗口关闭了,代码就没有了,所以,一般使用的ide是Sublime Text或者pycharm。
二、pip基本用法
pip类似RedHat里面的yum,安装python包非常方便。
安装完python3后,已经自带pip工具
pip基本用法如下:
安装 pip install Django 指定版本安装(可以升级或者降低版本) pip install Django==1.11.1 查看已安装的包 pip show --files Django 查看哪些需要更新 pip list --outdated 升级包 pip install --upgrade Django 卸载包 pip uninstall Django 列出已安装的包 pip list 显示包详细信息 pip show django
三、变量
变量就是用来在程序运行期间存储各种需要临时保存可以不断改变数据的标识符,一个变量应该有一个名字,并且在内存中占据一定的存储单元,在该存储单元中存放变量的值。
变量可以存不同的数据,不仅可以是字符串,还可以是整数或浮点数,比如a=2.1
变量定义的规则:
- 变量名只能是字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- python关键字不能声明为变量名
当我们写:name="python"时,Python解释器干了两件事情:
- 1)在内存中创建了一个'python'的字符串;
- 2)在内存中创建了一个名为name的变量,并把它指向'python'。
这时候把变量name赋值给另一个变量name1,这个操作实际上是把变量name1指向变量name所指向的数据,与变量name并无任何关系;若name值变化,name1的值依然无变化;name的值发生变化,相当于重新开辟了一块内存空间;而name1依然指向原有内存空间。
四、常量
常量就是不能变的变量,比如常用的数学常数π就是一个常量。
在Python中,通常用全部大写的变量名表示常量:如 TOTAL
五、输入、输出
可以用print()输出,输入的话,是用input(),他是python的一个内置方法
>>> type(input) <class 'builtin_function_or_method'>
输入的字符串保存在变量name中,然后打印name
>>> name = input('username:') username:jack >>> print(name) jack
六、字符串格式化及格式化输出
字符串 %s print("Hello,%s" % "world") 整数 %d print("My age is %d" % 20) 浮点数 %f print("My age is %f" % 20)
格式化输出
name = input("what is your name:") age = int(input("tell me you age:")) job = input("job:") salary = input("salary:") info = ''' ---- info of %s ------ name:%s age:%d job:%s salary:%s'''%(name,name,age,job,salary) print(info) 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、三目运算)
Python的语法比较简单,采用缩进方式,一般是一个tab
# if ''' a>0 则输出a, 否则输出-a ''' a = 1 if a > 0: print(a) else: print(-a)
# 三目运算
a = 1
b = 2
k = a if a<b else b
#
开头的语句是注释,还可以使用'''xxx'''来进行多行注释,注释是给人看的,解释器会忽略掉注释。语句以冒号:
结尾时,后面的语句要缩进。
八、while循环
1.基本格式:
# while 条件: # 循环体 # 如果条件为真,那么循环体则执行;否则,循环体不执行 while True: print(1)
2.break退出整个循环
while True: print(1) break print(2)
上面的代码会先输出1,然后遇到break,就退出当前循环,所以不再打印出2了
3.continue退出当前循环
while True: print(1) continue print(2)
不停的输出1,永远不会输出2
九、for循环
按照顺序循环可迭代对象中的内容
name = ('jack','tom') for i in name: print(i)
jack
tom
for i in range(5): print(i)
0
1
2
3
4
十、练习题(参考答案已放在Q群文件中)
0.代码实现1-100奇数求和,至少3种方式。
1.登录
# 如果登录成功,输出欢迎信息,退出程序
# 如果错误次数3次,退出程序
2..猜数游戏
# 猜对,打印猜对信息,退出程序
# 最多连续猜三次,连续错三次后询问是否继续玩游戏,是,继续猜,否,退出程序
3.冒泡排序
data = [10, 4, 33, 21, 54, 8, 11, 5]