01 - Python 基础

一、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})

常用操作:

  • 索引
  • 新增
  • 删除
  • 键、值、键值对
  • 循环
  • 长度

 

九、数据运算

算数运算:


425762-20151025004451692-544714036.png

比较运算:


image

赋值运算:


image

逻辑运算:


image

成员运算:


image.png

身份运算:


image.png

位运算:


image.png
"""
数据运算
"""

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

运算符优先级:


image.png

更多内容:猛击这里

 

十、表达式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.")

 

十三、作业

作业一:编写登陆接口

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

作业二:多级菜单

三级菜单
可依次选择进入各子菜单
所需新知识点:列表、字典

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351

推荐阅读更多精彩内容