Python入门

 

Python

执行Python程序

1先启动Python解释器

2Python解释器像文本编辑器一样将文件内容从硬盘读入内存

3Python解释器解释执行文件代码

强调:只有第三个阶段才识别Python的语法

变量

什么是变量

变量即变化的量,核心是“变”与“量”二字,变即变化,量即衡量状态。

为什么要有变量

程序执行本质是一系列状态的变化,变是程序执行的直接的体现,所以我们需要一种机制能反应或保存程序执行时状态及状态变化

如何定义变量

变量名(相当于门牌,指向内存地址),引用变量值

等号,赋值

变量值:存放的数据

name='han'

sex='male'

变量的定义规范

#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']

定义方式:

#驼峰体
AgeOfOldboy = 56 
NumberOfStudents = 80
#下划线(推荐使用)
age_of_oldboy = 56 
number_of_students = 80

定义变量名不好的方式

#1. 变量名为中文、拼音
#2. 变量名过长
#3. 变量名词不达意
#1 等号比较的是value,
#2 is比较的是id

#强调:
#1. id相同,意味着type和value必定相同
#2. value相同type肯定相同,但id可能不同,如下
>>> x='Info Egon:18'
>>> y='Info Egon:18'
>>> id(x)
>>> id(y)
>>> 
>>> x == y
True
>>> x is y
False

 定义变量的三个特征:id type value

ID相等,值一定相等

值相等,id不一定相等

常量

常量即指不变的量,如pai 3.141592653..., 或在程序运行过程中不会改变的量
在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量
#ps:在c语言中有专门的常量定义语法,const int count = 60;一旦定义为常量,更改即会报错

Python内存管理

引用计数

引用计数为0,会被Python回收

用户交互

Python3 

input()用户输入任何值都是字符串

注释

单行注释 #

多行注释 """ """   ,    ''' '''

文件头

#!/usr/bin/env python

#-*- coding: utf-8 -*-

基本数据类型

 什么是数据?为何要有多种类型的数据?

#数据即变量的值,如age=18,18则是我们保存的数据。
#变量的是用来反映/保持状态以及状态变化的,毫无疑问针对不同的状态就应该用不同类型的数据去标识

数字

int整形

float浮点型

字符串

在Python中,加了引号的字符就是字符串型,Python没有字符型

name="han"

#数字可以进行加减乘除等运算,字符串呢?让我大声告诉你,也能?what ?是的,但只能进行"相加"和"相乘"运算。
>>> name='egon'
>>> age='18'
>>> name+age #相加其实就是简单拼接
'egon18'
>>> name*5 
'egonegonegonegonegon'
#注意1:字符串相加的效率不高
字符串1+字符串3,并不会在字符串1的基础上加字符串2,而是申请一个全新的内存空间存入字符串1和字符串3,相当字符串1与字符串3的空间被复制了一次,

#注意2:只能字符串加字符串,不能字符串加其他类型

列表

在[]内用逗号隔开,可以存放任意类型的值

student=['li','wu','yan']

字典

{}内用逗号隔开,可以存放多个key:value的值,value可以事任意类型

info={'name'':'han','age':20,'gender':'male'}

布尔值

True False

布尔类型的重点知识!!!:

#所有数据类型都自带布尔值
1、None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False
2、其余均为真

重点

#1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典

#2. 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间) 

格式化输出

#%s字符串占位:可以接受字符串,也可接受数字

print('My name is %s,my age is %s'%('han',18)) 

 

#%d数字占位符:只能接受数字

print('My name is %s,my age is %d'%("han",18))

 基本运算符

  算数运算

  以下假设变量:a=10,b=20

 比较运算

 以下假设变量:a=10,b=20

 赋值运算

 以下假设变量:a=10,b=20

 逻辑运算

 

>>> True or Flase and False
True
>>> (True or Flase) and False
False

流程控制之if...else

if 条件1:

  pass

elif 条件2:

  pass

else:

  pass

流程控制之while循环

条件循环:while,语法如下

while 条件:    
    # 循环体
 
    # 如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件。。。
    # 如果条件为假,那么循环体不执行,循环终止
#练习,要求如下:
    1 循环验证用户输入的用户名与密码
    2 认证通过后,运行用户重复执行命令
    3 当用户输入命令为quit时,则退出整个程序 
#实现一:
name='egon'
password='123'

while True:
    inp_name=input('用户名: ')
    inp_pwd=input('密码: ')
    if inp_name == name and inp_pwd == password:
        while True:
            cmd=input('>>: ')
            if not cmd:continue  
            if cmd == 'quit':
                break
            print('run <%s>' %cmd)
    else:
        print('用户名或密码错误')
        continue
    break 

#实现二:使用tag
name='egon'
password='123'

tag=True
while tag:
    inp_name=input('用户名: ')
    inp_pwd=input('密码: ')
    if inp_name == name and inp_pwd == password:
        while tag:
            cmd=input('>>: ')
            if not cmd:continue     
            if cmd == 'quit':
                tag=False
                continue
            print('run <%s>' %cmd)
    else:
        print('用户名或密码错误')

break与continue

#break用于退出本层循环
while True:
    print "123"
    break
    print "456"

#continue用于退出本次循环,继续下一次循环
while True:
    print "123"
    continue
    print "456"

while+else

#与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句,while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句
count = 0
while count <= 5 :
    count += 1
    print("Loop",count)

else:
    print("循环正常执行完啦")
print("-----out of while loop ------")
输出
Loop 1
Loop 2
Loop 3
Loop 4
Loop 5
Loop 6
循环正常执行完啦
-----out of while loop ------

#如果执行过程中被break啦,就不会执行else的语句啦
count = 0
while count <= 5 :
    count += 1
    if count == 3:break
    print("Loop",count)

else:
    print("循环正常执行完啦")
print("-----out of while loop ------")
输出

Loop 1
Loop 2
-----out of while loop ------
#8:猜年龄游戏升级版 
要求:
    允许用户最多尝试3次
    每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序
    如何猜对了,就直接退出 
#题目八
age_of_oldboy=73

count=0
while True:
    if count == 3:
        choice=input('继续(Y/N?)>>: ')
        if choice == 'Y' or choice == 'y':
            count=0
        else:
            break

    guess=int(input('>>: '))
    if guess == age_of_oldboy:
        print('you got it')
        break
    count+=1

流程控制之for循环

迭代式循环:for,语法如下

 

for i in range(10):

    pass

循环嵌套

九九乘法表
金字塔

for+else 

for i in range(10):
    pass
else:
    pass

Tips:

while循环(又称条件循环)
        语法:
            while 条件:
                code1
                code2
                code3

            day=1
            while day < 11:
                默写
                听课
                写作业
                晚自习
                day+=1


        while+break:终止本层循环
        while+continue:终止本次循环,直接进入下一次循环
        while+else:else会在循环结束后进行一次判定,如果循环期间没有被break打断,就应该执行else的代码

        while循环的嵌套:
            while 条件1:
                while 条件2:
                    break
                break

            tag=True
            while tag:
                while tag:
                    if 条件:
                        tag=False
原文地址:https://www.cnblogs.com/hanbowen/p/9111760.html