一、Hello World程序
在linux下创建一个文件叫hello.py, 输入
print("Hello, world")
二、变量
Variablesare used to store information to be referenced and manipulated in a computer program. They also provide a way of labeling data with a descriptive name, so our programs can be understood more clearly by the reader and ourselves. It is helpful to think of variables as containers that hold information. Their sole purpose is to label and store data in memory. This data can then be used throughout your program.
声明变量
name="Ben"
上述代码声明了一个变量,变量名为: name,变量name的值为:"Ben"
变量定义的规则:
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
['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 = "Ben"
name2 = name
print(name, name2)
name2 = "Nicole"
print(name, name2)
结果:
Ben Ben
Nicole
三、字符编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
应该显示的告诉python解释器,用什么编码来执行源代码
# !/usr/bin/env python
# -*- coding: utf-8 -*-
print("你好,世界")
四、注释
当行注释:# 被注释内容
多行注释:""" 被注释内容 """
五、用户输入
name=input("What is your name?\n>>: ")
print("Hello "+name)
输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法
import getpass
# 将用户输入的内容赋值给 name 变量
pwd=getpass.getpass("请输入密码:")
# 打印输入的内容
print(pwd)
六、模块初识
Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持
import sys
print(sys.argv)
import os
os.system("df -h") # 调用系统命令
自己写的tab.py模块只能在当前目录下导入,如果想在系统的何何一个地方都使用怎么办呢? 此时你就要把这个tab.py放到python全局环境变量目录里啦,基本一般都放在一个叫Python/2.7/site-packages目录下,这个目录在不同的OS里放的位置不一样,用print(sys.path)可以查看python环境变量列表。
七、.pyc
八、数据类型初识
1、数字
int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
Long(长整型)
Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
float(浮点型)
先扫盲 http://www.cnblogs.com/alex3714/articles/5895848.html
浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
complex(复数)
复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
注:Python中存在小数字池:-5 ~ 257
2、布尔值
- 真或假
- 1 或 0
3、字符串
"hello world"
万恶的字符串拼接:
python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。
字符串格式化输出
name="Ben"
print("I am %s"%name)
输出
I am Ben
字符串是 %s;整数 %d;浮点数%f
字符串常用功能:
- 移除空白
- 分割
- 长度
- 索引
- 切片
4、列表
创建列表:
name_list = ["Ben","Nicole","Dingding"]
或
name_list = list(["Ben","Nicole","Dingding"])
基本操作:
- 索引
- 切片
- 追加
- 删除
- 长度
- 切片
- 循环
- 包含
5、元组(不可变列表)
创建元组:
ages = (11,22,33,44,55)
或
ages = tuple((11,22,33,44,55))
6、字典(无序)
创建字典:
person = {"name":"mr.wu",'age':18}
或
person = dict({"name":"mr.wu",'age':18})
常用操作:
- 索引
- 新增
- 删除
- 键、值、键值对
- 循环
- 长度
九、数据运算
算数运算:
比较运算:
赋值运算:
逻辑运算:
成员运算:
身份运算:
位运算:
"""
数据运算
"""
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
print("a的二进制:%s" % bin(a)) # a的二进制:0b111100
print("b的二进制:%s" % bin(b)) # b的二进制:0b1101
c = a & b
print("a & b的二进制:%s" % bin(c)) # a & b的二进制:0b1100
c = a | b
print("a | b的二进制:%s" % bin(c)) # a | b的二进制:0b111101
c = a ^ b
print("a ^ b的二进制:%s" % bin(c)) # a ^ b的二进制:0b110001
c = ~a
print("~a的二进制:%s" % bin(c)) # ~a的二进制:-0b111101
print("c: %s" % c) # c: -61
c = a << 2
print("a << 2的二进制:%s" % bin(c)) # a << 2的二进制:0b11110000
print("c: %s" % c) # c: 240
c = a >> 2
print("a >> 2的二进制:%s" % bin(c)) # a >> 2的二进制:0b1111
print("c: %s" % c) # c: 15
输出:
a的二进制:0b111100
b的二进制:0b1101
a & b的二进制:0b1100
a | b的二进制:0b111101
a ^ b的二进制:0b110001
~a的二进制:-0b111101
c: -61
a << 2的二进制:0b11110000
c: 240
a >> 2的二进制:0b1111
c: 15
*按位取反运算规则(按位取反再加1) 详解http://blog.csdn.net/wenxinwukui234/article/details/42119265
运算符优先级:
更多内容:猛击这里
十、表达式if ... else
场景一、用户登陆验证
"""
用户登陆验证
# 提示输入用户名和密码
# 验证用户名和密码
# 如果错误,则输出用户名或密码错误
# 如果成功,则输出 欢迎,XXX!
"""
import getpass
name = input('请输入用户名:')
pwd - getpass.getpass('请输入密码:')
if name == "ben" and pwd == "cmd":
print("欢迎,ben!")
else:
print('用户名和密码错误')
场景二、猜年龄游戏
"""
猜年龄游戏
在程序里设定好你的年龄,然后启动程序让用户猜测,用户输入后,
根据他的输入提示用户输入的是否正确,如果错误,提示是猜大了还是小了
"""
my_age = 18
user_input = int(input("input you age: "))
if user_input == my_age:
print("Congratulations, you got it!")
elif user_input < my_age:
print("Oops, thing bigger!")
elif user_input > my_age:
print("think smaller!")
外层变量,可以被内层代码使用
内层变量,不应被外层代码使用
十一、表达式for loop
最简单的循环10次
"""
最简单的循环10次
"""
for i in range(10):
print("loop: ", i)
输出:
loop: 0
loop: 1
loop: 2
loop: 3
loop: 4
loop: 5
loop: 6
loop: 7
loop: 8
loop: 9
需求一:还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环
for i in range(10):
if i < 5:
continue # 不往下走了,直接进入下一次loop
print("loop: ", i)
需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出循环
for i in range(10):
if i > 5:
break # 不往下走了,直接跳出整个loop
print("loop: ", i)
十二、while loop
有一种循环叫死循环,永不不断地循环运行
count = 0
while True:
print("你是风儿我是沙,缠缠绵绵到天涯...",count)
count += 1
上面的代码循环100次就退出吧
count = 0
while True:
print("你是风儿我是沙,缠缠绵绵到天涯...",count)
count += 1
if count == 100:
print("还是退出吧,风,沙")
break
回到上面for 循环的例子,如何实现让用户不断的猜年龄,但只给最多3次机会,再猜不对就退出程序
my_age = 18
count = 0
while count < 3:
user_input = int(input("input your guess num: "))
if user_input == my_age:
print("Congratulations, you got it !")
break
elif user_input < my_age:
print("Oops,think bigger!")
else:
print("think smaller!")
count += 1
else:
print("猜这么多次都不对, my God.")
十三、作业
作业一:编写登陆接口
输入用户名密码
认证成功后显示欢迎信息
输错三次后锁定
作业二:多级菜单
三级菜单
可依次选择进入各子菜单
所需新知识点:列表、字典