zoukankan      html  css  js  c++  java
  • Python学习-基础篇1-变量

     

    一、变量:

    1)变量定义规范:

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

    2)变量格式:

    变量名=值
    例子:name='zhenxi'

    3)定义方式:

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

    4)定义变量名不好的方式

    #1. 变量名为中文、拼音
    #2. 变量名过长
    #3. 变量名词不达意

    5)定义变量会有:id,type,value

    复制代码
    #1 等号比较的是值(value),
    #2 is比较的是id(该值在内存中的所在位置)

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

    6)常量

    常量即指不变的量,如pai 3.141592653..., 或在程序运行过程中不会改变的量
    举例,假如一个人的年龄会变,那这就是个变量,但在一些情况下,他的年龄不会变了,那就是常量。在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量
    AGE_OF_OLDBOY = 56

    #ps:在c语言中有专门的常量定义语法,const int count = 60;一旦定义为常量,更改即会报错


    二、文件头:
    正常的脚本文件都会有一个文件头,python也不例外:
    像shell的文件头是:#!/bin/bash
    python的文件头是:
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-


    三、基本数据类型:
    数字型分类:
    #int整型
    定义:age=10 #age=int(10)
    用于标识:年龄,等级,身份证号,qq号,个数

    #float浮点型
    定义:salary=3.1 #salary=float(3.1)
    用于标识:工资,身高,体重,

    其他数字类型介绍:
    #int(整型)
    在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
    在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
    #long(长整型)
    跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
    注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
    注意:在Python3里不再有long类型了,全都是int
    >>> a= 2**64
    >>> type(a) #type()是查看数据类型的方法
    <type 'long'>
    >>> b = 2**60
    >>> type(b)
    <type 'int'>

    #complex复数型
    >>> x=1-2j
    >>> x.imag
    -2.0
    >>> x.real
    1.0


    字符串:

    #在python中,加了引号的字符就是字符串类型,python并没有字符类型。
    定义:name='egon' #name=str('egon')
    用于标识:描述性的内容,如姓名,性别,国籍,种族


    #那单引号、双引号、多引号有什么区别呢? 让我大声告诉你,单双引号木有任何区别,只有下面这种情况 你需要考虑单双的配合
    msg = "My name is Egon , I'm 18 years old!"

    #多引号什么作用呢?作用就是多行字符串必须用多引号
    msg = '''
    今天我想写首小诗,
    歌颂我的同桌,
    你看他那乌黑的短发,
    好像一只炸毛鸡。
    '''
    print(msg)

    #数字可以进行加减乘除等运算,字符串呢?让我大声告诉你,也能?what ?是的,但只能进行"相加"和"相乘"运算。
    >>> name='egon'
    >>> age='18'
    >>> name+age #相加其实就是简单拼接
    'egon18'
    >>> name*5
    'egonegonegonegonegon'


    #注意1:字符串相加的效率不高
    字符串1+字符串3,并不会在字符串1的基础上加字符串2,而是申请一个全新的内存空间存入字符串1和字符串3,相当字符串1与字符串3的空间被复制了一次,

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

    列表:

    #在[]内用逗号分隔,可以存放n个任意类型的值
    定义:students=['egon','alex','wupeiqi',] #students=list(['egon','alex','wupeiqi',])
    用于标识:存储多个值的情况,比如一个人有多个爱好

    #存放多个学生的信息:姓名,年龄,爱好
    >>> students_info=[['egon',18,['play',]],['alex',18,['play','sleep']]]
    >>> students_info[0][2][0] #取出第一个学生的第一个爱好
    'play'

    字典:

    #为何还要用字典?
    存放一个人的信息:姓名,性别,年龄,很明显是多个值,既然是存多个值,我们完全可以基于刚刚学习的列表去存放,如下
    >>> info=['egon','male',18]
    定义列表的目的不单单是为了存,还要考虑取值,如果我想取出这个人的年龄,可以用
    >>> info[2]
    18
    但这是基于我们已经知道在第3个位置存放的是年龄的前提下,我们才知道索引2对应的是年龄
    即:#name, sex, age
    info=['egon','male',18]
    而这完全只是一种假设,并没有真正意义上规定第三个位置存放的是年龄,于是我们需要寻求一种,即可以存放多个任意类型的值,又可以硬性规定值的映射关系的类型,比如key=value,这就用到了字典
    #在{}内用逗号分隔,可以存放多个key:value的值,value可以是任意类型
    定义:info={'name':'egon','age':18,'sex':18} #info=dict({'name':'egon','age':18,'sex':18})
    用于标识:存储多个值的情况,每个值都有唯一一个对应的key,可以更为方便高效地取值
    字典相关的嵌套、取值

    布尔:

    复制代码
    #布尔值,一个True一个False
    #计算机俗称电脑,即我们编写程序让计算机运行时,应该是让计算机无限接近人脑,或者说人脑能干什么,计算机就应该能干什么,人脑的主要作用是数据运行与逻辑运算,此处的布尔类型就模拟人的逻辑运行,即判断一个条件成立时,用True标识,不成立则用False标识
    >>> a=3
    >>> b=5
    >>>
    >>> a > b #不成立就是False,即假
    False
    >>>
    >>> a < b #成立就是True, 即真
    True

    接下来就可以根据条件结果来干不同的事情了:
    if a > b
    print(a is bigger than b )

    else
    print(a is smaller than b )
    上面是伪代码,但意味着, 计算机已经可以像人脑一样根据判断结果不同,来执行不同的动作。
    复制代码

    《//*重点*\》:

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

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

    四、格式化输出

    程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式

    比如要求用户输入用户名和年龄,然后打印如下格式:

    My name is xxx,my age is xxx.

    很明显,用逗号进行字符串拼接,只能把用户输入的名字和年龄放到末尾,无法放到指定的xxx位置,而且数字也必须经过str(数字)的转换才能与字符串进行拼接。

    这就用到了占位符,如:%s、%d

    #%s字符串占位符:可以接收字符串,也可接收数字
    print('My name is %s,my age is %s' %('egon',18))
    #%d数字占位符:只能接收数字
    print('My name is %s,my age is %d' %('egon',18))
    print('My name is %s,my age is %d' %('egon','18')) #报错

    #接收用户输入,打印成指定格式
    name=input('your name: ')
    age=input('your age: ') #用户输入18,会存成字符串18,无法传给%d

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

    #注意:
    #print('My name is %s,my age is %d' %(name,age)) #age为字符串类型,无法传给%d,所以会报错

    练习:用户输入姓名、年龄、工作、爱好 ,然后打印成以下格式
    ------------ info of Egon -----------
    Name : Egon
    Age : 22
    Sex : male
    Job : Teacher
    ------------- end -----------------

    代码:
    # name=input('your name:')
    # age=input('your age:')
    # sex=input('sex:')
    # job=input('your jos:')
    #
    # print(
    # '''
    # ------------ info of %s -----------
    # Name : %s
    # Age : %s
    # Sex : %s
    # Job : %s
    # ------------- end -----------------
    # ''' %(name,name,age,sex,job)
    # )

     

     

    基本运算符

        计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算

        算数运算

        以下假设变量: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 条件:
    执行【】
    else:
    执行【】

    
    

    例子:
    1 如果:女人的年龄>30岁,那么:叫阿姨

    
    

    age_of_girl=31
    if age_of_girl > 30:
    print('阿姨好')
    2 如果:女人的年龄>30岁,那么:叫阿姨,否则:叫小姐

    
    

    age_of_girl=18
    if age_of_girl > 30:
    print('阿姨好')
    else:
    print('小姐好')

    
    

    if...elif格式:
    if 条件:
    执行【】
    elif 条件:
    执行【】
    ...
    else:
    ...

    
    

    例子:
    如果:成绩>=90,那么:优秀

    
    

    如果成绩>=80且<90,那么:良好

    
    

    如果成绩>=70且<80,那么:普通

    
    

    其他情况:很差

    
    



    score=input('>>: ')
    score=int(score)

    
    

    if score >= 90:
    print('优秀')
    elif score >= 80:
    print('良好')
    elif score >= 70:
    print('普通')
    else:
    print('很差')

    
    

    while 条件循环,语法如下:

    
    

    while 条件:
    # 循环体

    # 如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件。。。
    # 如果条件为假,那么循环体不执行,循环终止

    
    

    例子:
    #打印0-10
    count=0
    while count <= 10:
    print('loop',count)
    count+=1
    #打印0-10之间的偶数
    count=0
    while count <= 10:
    if count%2 == 0:
    print('loop',count)
    count+=1

    
    

    #打印0-10之间的奇数
    count=0
    while count <= 10:
    if count%2 == 1:
    print('loop',count)
    count+=1







  • 相关阅读:
    GreenPlum 大数据平台--运维(二)
    GreenPlum 大数据平台--运维(一)
    GreenPlum 大数据平台--非并行备份(六)
    zabbix--高级篇-监控docker服务(一)
    GreenPlum 大数据平台--备份-邮件配置-gpcrondump & gpdbrestore(五)
    subprocess模块
    Python写随机发红包的原理流程
    粘包
    网络编程: 基于UDP协议的socket
    网络编程: 基于TCP协议的socket, 实现一对一, 一对多通信
  • 原文地址:https://www.cnblogs.com/zheng-xi/p/7991192.html
Copyright © 2011-2022 走看看