zoukankan      html  css  js  c++  java
  • Python —— 与用户交互、基础数据类型、运算符

    一.程序与用户交互

    1.1、什么是与用户交互?

    程序等待用户输入一些数据,然后程序执行完毕后为用户反馈信息。

    1.2、为何程序要与用户交互?

    为了让计算机像人一样能够与用户交互。

    1.3、如何使用?

    在python3中:input

    name = input('请输入您的姓名:') 
    请输入您的姓名:Alex print(name,type(name)) Alex <class 'str'>

    python3中,input会将用户输入的任何内容都存为字符串类型。

    python2中,input要求用户必须输入一个明确的数据类型,输入什么类型就存为什么类型。

    python2中,raw_input会将用户输入的任何内容都存为字符串类型与python3中的input功能一样。

    1.4、格式化输出

    1)、什么是格式化输出?

    把一段字符串里面的某些内容替换掉之后再输出,就是格式化输出。

    2)、为什么要格式化输出?

    我们经常会输出具有某种固定格式的内容,比如’亲爱的xxx您好!您XX月的话费是xxx,余额是xxx',我们需要做的就是将xxx替换为具体的内容。

    3)、如何格式化输出?

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

    # %s占位符可以接收任何类型的值 # %d占位符只能接收数值数字

    print('亲爱的%s您好!您%d月的话费是%d,余额是%s' %('Tony',11,84.5,112)) 
    #e.g. 接收用户输入打印成指定格式 
    name = input('your name: ') #用户输入年龄
    age = input('your age: ') #用户输入年龄 
    sex = input('your sex: ') #用户输入性别
    job = input('your job: ') #用户输入职业 
    print('-'12+' info of %s ' %(name)+'-'12) 
    print('Name : %s' %(name)) 
    print('Age  : %s' %(age)) #用户输入数字,会存成字符串,无法传给%d
    print('Sex : %s' %(sex))
    print('Job  : %s' %(job)) 
    print('-'16 + 'end' + '-'16) 
    #===================================== 
    '''
    ------------info of tony ------------ 
    Name : xxx 
    Age  : xxx 
    Sex  : xxx 
    Job  : xxx 
    ----------------end----------------
    '''

    二、数据类型

    2.1、数字类型:int与float

    1)、整型:int

    作用:记录年龄、登记、QQ号、各种号码。

    #age = 18 等同于 age = int(18) 
    #print(age,type(age))

    2)、浮点型:float

    作用:记录身高、体重、薪资等。

    #salary = 2.1 等同于 salary = float(2.1) 
    #print(salary,type(salary))

    2.2、字符串类型:str

    作用:记录描述性质的数据,比如人的名字,性别,家庭地址,公司简介等。

    定义:再引号内按照从左到右的顺序依次包含一个个数据,引号可以是单引号、双引号、三引号。

    name = 'egon' 
    print(name,type(name))

    字符串之间可以相加:本质是申请新的内存空间,然后拷贝相加的字符串到新的空间,效率不高。

    a = 'Hello,' 
    b = 'World!' print(a+b) 
    #结果Hello,World!

    字符串还可以做乘法运算

    print('Hello'*5) 
    #结果HelloHelloHelloHelloHello

    2.3、列表类型:list

    作用:记录/存多个值,可以方便地取出指定位置的值,比如人的多个爱好,一堆学生姓名。

    定义:再[]内用逗号分隔开多个任意类型的值。

    l = [10,3,1,'egon',['a','b']] #l = list([10,3,1,'egon',['a','b']]) print(l,type(l)) 
    print(l[0]) 
    10 
    print(l[3]) 
    'egon'

    2.4、字典类型:dict

    作用:记录多个key:value值,优势是每一个value都有其对应关系/映射关系key,而key对value有描述性的功能

    定义:再{}内用逗号分隔开多个key:value元素,其中value可以是任意数据类型,而key通常应该是字符串类型。

    info = {'name':'egon','sex':'male','age':18} #info = dict({'name':'egon','sex':'male','age':18}) 
    print(type(info)) 
    print(info['name'])

    2.5、布尔类型:bool

    作用:用来作为判断的条件去用

    定义:

    tag = true #tag = bool(true) 
    tag = false 
    print(type(tag))

    通过判断去得到布尔值:

    age = 18 
    print(age == 18) # ==比较的是值是否相同 
    #====================================
    x = 1 y = 1 print(x is y) # is比较的是id地址是否一样

    三、运算符

    3.1、算术运算符

    3.2、比较运算符

    3.3、赋值运算符

    3.3.1、增量赋值

    3.3.2、链式赋值

    如果我们想把同一个值同时赋值给多个变量名,可以这么做

    z = 10 
    y = z 
    x = y 
    x,y,z 
    (10,10,10)

    链式赋值指的是可以用一行代码搞定这件事

    x = y = z = 10 
    x,y,z 
    (10,10,10)

    3.3.3、交叉赋值

    我们定义两个变量m与n

    m = 10 n = 20

    如果我们想将m和n的值交换过来,可以这样做

    m = 10 
    n = 20 
    a = m 
    m = n 
    n = a 
    print(m,n) 20,10

    交叉赋值指的是可以用一行代码搞定这件事

    m = 10 
    n = 20 
    m,n = n,m #交叉赋值 
    print(m,n)

    3.3.4、解压赋值

    如果我们想把列表中的多个值取出来依次赋值给多个变量名,可以这么做

    nums=[11,22,33,44,55] 
    a=nums[0] 
    b=nums[1] 
    c=nums[2] 
    d=nums[3] 
    e=nums[4] 
    a,b,c,d,e 
    (11,22,33,44,55)

    解压赋值指的是一行代码可以搞定这件事

    nums=[11,22,33,44,55] 
    a,b,c,d,e=nums #nums包含多个值,就好比一个压缩包,加压赋值因此得名 a,b,c,d,e 
    (11,22,33,44,55)

    注意,上述解压赋值,等号左边的变量名个数比喻与右边包含值的个数相同,否则会报错

    但如果我们只想去头尾的几个值,可以用*_匹配。

    3.4、逻辑运算符

    3.4.1、连续多个and

    可以用and连接多个条件,会按照从左到右的顺序依次判断,一旦某一个条件为False,则无需再往右判断,可以立即判定最终结果就为False,只有在所有条件结果都没True的情况下,最终结果才为True。

    2 > 1 and 1 != 1 and true and 3 > 2 # 判断完第二个条件,就立即结束,得的最终结果为False False

    3.4.2、连续多个or

    可以用or连接多个条件,会按照从左到右的顺序依次判断,一旦某一个条件为True,则无需再往右判断,可以立即判断最终结果就位True,只有在所有条件的结果都为False的情况下,最近结果才为False

    2 > 1 or 1 != 1 or true or 3 > 2 # 判断完第一个条件,就立即结束,得的最终结果为True True

    3.4.3、混用and、or、not

    #and、or、not三者如果混用时,时存在优先级之分的,但在日常开发中我们无需记忆优先级 #应该使用()来区分优先级、提升程序的可读性 
    (3 > 4 and 4 > 3) or ((1 == 3 and 'x' == 'x') or 3 > 3) 
    False

    3.5、成员运算符

    主语:虽然下属两种判断可以达到相同的效果,但我们推荐使用第二种格式,因为not in语义更加明确。

    not 'lili' in ['jack','tom','robin'] 
    True
    'lili' not in ['jack','tom','robin'] 
    True

    3.6、身份运算符

    需要强调的是:==双等号比较的是value是否想等,而is比较的是id是否相等

  • 相关阅读:
    JDBC
    Linux下的tar压缩解压缩命令详解
    Shell编程介绍
    SSH服务认证类型介绍
    SSH介绍及连接原理
    MySQL引擎之innodb介绍及特点
    myisam 存储引擎介绍及特点
    maven项目依赖中报错Plugin ‘org.apache.maven.plugins:maven-compiler-plugin:’ not found
    List调用add方法报错java.lang.UnsupportedOperationException
    C基础
  • 原文地址:https://www.cnblogs.com/snailhuang/p/11783655.html
Copyright © 2011-2022 走看看