分类: Python

  • python的布尔值

    python的字符型、整型和浮点型已经介绍过了。下面就是四大重要类型之一的布尔值。

    布尔值实际上只有两个,真和假。真用True来表示,假用`False`表示,注意大小写。

    只要有比较,就会得到布尔值。例如:

    "Tim"=="Tom"   # 判断两个字符串是否相等
    10>3
    20<=1
    

    大于和小于很好理解,需要注意的是如果要判断等式两边是否相等,需要用两个等于号(==)。这是因为一个等于号已经被我们使用了,作为赋值符号,把右边的内容赋值给左边,所以,只能使用两个等号来判断是否相等。

    布尔值常用在判断语句中:

    name = input('What is your name? ')
    if name == 'Tim':
        print('你好,Tim!')
    

    如果你输入的内容刚好是`Tim`,则可以看到你好,Tim!否则你什么都看不到。

  • python的浮点数

    数值型,除了整数以外,最常用的就是浮点数,浮点数对应的数学用语是小数。

    当一个整数除以一个整数的时候,python会自动将结果转化成浮点数。例如:

    3/3
    

    结果为:

    1.0

    看到了吗,结果不是1,而是1.0。

    如果在计算中,直接使用了小数,那么结果也会自动转化为浮点数。

    1+3.14
    

    所得结果有点怪,但是大概是准确的。

    4.140000000000001

    我们可以用`type()`函数获得一个值的类型:

    type(1)
    type(1+3.14)
    

    结果为:

    <class 'int'>
    <class 'float'>
  • python字符串的索引

    字符串在任何编程语言中都是非常重要的存在。段落、姓名等各类信息都需要用到字符串。

    很明显,字符串是由字符组成的, 因此,我们也可以将字符串进行拆分,提取想要的部分,这就用到了索引。

    我们还用Tim举例,如果Tim是一个字符串,那么它的索引(可以理解成编号)是0,1,2。这很像我们用数字表示楼层,唯一不同的是,楼层从1开始,而字符串从0开始。

    T i m
    0 1 2

    了解所索引的概念,接下就是运用。

    运用的方法是在方括号内写上索引编号。例如:

    x = "Tim"
    y = x[0] + x[0] +x[2]
    print(y)
    

    得到的结果是:

    TTm

    当字符串很长的时候,我们想提取最后一个字符串,数到最后一个编号明显是一个愚蠢的办法。Python给我们提供了反向索引,可以解决这个问题。

     P   n   e   u   m   o   n
    -7 -6 -5 -4 -3 -2 -1

    需要注意的是,最后一位是-1,不是0。这是为了和正向相区别,毕竟-0没有什么意义。

    x = "Tim"
    y = x[-1]
    print(y)
    

    结果为:

    m
  • python画一个字符条形图

    现在,画一个条形图已经非常方便,直接用Excel就可以。但是,再代码时代,想要做条形图只能依靠字符和长度进行。

    现在,我们就来领略一下,代码时代,条形图如何实现。

    条形图,用字符串×整数表示。例如:

    a = "#" * 100
    b = "#" * 30
    print(a)
    print(b)
    

    结果如下:

    ####################################################################################################
    ##############################

    这个代码的意思是,a变量中,把#号重复100次;b变量中,#重复30次。

    很明显,重复100次有点过于长了。那么,我们可以按照比例缩小。标准化到最长25个字符。

    a = "#" * int(100/100*25)
    b = "#" * int(30/100*25)
    print(a)
    print(b)
    

    得到结果:

    #########################
    #######

    看似简单,实际上最编程中非常常用,我们可以用来表示进度条,查看程序运行进度。

  • python的整型值

    python最长用的值是字符串(string)类型,字符串可以写入姓名、地址、籍贯、简介等。而整型值是只能是整数。通常,计算机语言会用引号表示字符串,没有引号表示数值。

    我们输入一下Tom的基本信息,用到输入函数:

    yourName = input("请输入姓名\n")
    yourHeight = input("请输入身高(cm)\n")
    yourWeight = yourHeight - 105
    print(f"{yourName}, 你的身高是{yourHeight}cm, 你的标准体重是{yourWeight}kg. ")
    

    据说,身高-105就是标准体重,我们不探讨这个是否科学,只是作为一个例子来尝试。很明显,运行到第三行的时候,系统会报错。

    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    TypeError: unsupported operand type(s) for -: 'str' and 'int'

    错误的意思是不支持的操作类型,之前我们说过,`input()`函数的返回值是字符串,而python不允许字符串与数字进行加减乘除运算。因此,我们需要将字符串转换成数字再进行运算。将上面的函数修改为:

    yourName = input("请输入姓名\n")
    yourHeight = input("请输入身高\n")
    yourWeight = int(yourHeight) - 105
    print(f"{yourName}, 你的身高是{yourHeight}, 你的标准体重是{yourWeight}kg. ")
    

    然后就可以得到正确的结果:

    请输入姓名
    Tim
    请输入身高
    171
    Tim, 你的身高是171cm, 你的标准体重是66kg.
  • python的输入函数

    听说,一个好的编程语言,不仅要运行效率高,还要能和人实时对话。

    试试`input()`函数:

    input("What is your name?\n")
    

    如果你在下一行输入Tim,那么就会输出:

    'Tim'

    当然,我们可以把这个输入值放入一个变量,实现交互,比如:

    yourName = input("What is your name?\n")
    print(f"Hello {yourName}.")
    

    输入Tim以后,可以得到下面的结果。

    Hello Tim.

    更多的创意,可以自己试试,把最基本的输入融会贯通。

    需要注意的是,输入的内容都是字符串哟。即便你输入的是数字,也一样会当成字符串。

  • python的变量和输出格式化

    如果我们要写一些内容来介绍Tom,可能会写以下内容:

    print("My name is Tom.")
    print("Tom has a lot of friends.")
    print("Tom loves playing basketball.")
    print("Tom's grandmother is 50 years old.")
    

    看起来只有4行,别忘了,这只是一个例子,实际情况可能是需要写几十行上百行。最关键的一点是,每一条语句都有Tom这个关键字。这时,老板跟你说,之前整错了一个地方,人名不是Tom而是Tim。那么你就需要把上面的每一行的Tom都依次改成Tim。这真是一个可怕的工作,你不使用替换功能,会耗费很多时间。

    那么,应该怎么处理这样的情况呢?

    这里就用到了编程中的变量和输出格式化。

    变量是指一些关键的、重复的东西,而其他的一些内容是不变的,可以理解为模板。很多工作,我们只需要替换变量而无需重写模板。

    因此,在python中,我们将上面的代码重新写成这样。

    character="Tim"
    print(f"My name is {character}.")
    print(f"{character} has a lot of friends.")
    print(f"{character} loves playing basketball.")
    print(f"{character}'s grandmother is 50 years old.")
    

    看看输出的结果是不是一样呢,只是变换了姓名?结果如下:

    My name is Tim.
    Tim has a lot of friends.
    Tim loves playing basketball.
    Tim's grandmother is 50 years old.

    这里面的f表示的是格式化输出内容。`{character}`表示变量,在双引号内,需要用花括号(大括号)括起来。

    接下来,我们修改Tim为Zoc,只需要修改第一行:

    character="Zoc"
    print(f"My name is {character}.")
    print(f"{character} has a lot of friends.")
    print(f"{character} loves playing basketball.")
    print(f"{character}'s grandmother is 50 years old.")
    

    结果就会变为:

    My name is Zoc.
    Zoc has a lot of friends.
    Zoc loves playing basketball.
    Zoc's grandmother is 50 years old.
  • python中跨行的三引号

    如果字符串很长很长,一行根本放不下,或者为了美观,需要把意群一致的内容放在同一行,从而出现多行内容的情况。比如:

    print('this
    is
    a
    website')
    

    显然单引号和双引号都不能正确执行这个语句。

    File "D:\code\python\print.py", line 1
    print('this
    ^
    SyntaxError: unterminated string literal (detected at line 1)

    要解决这个问题,那么就用到了神奇的三引号,将上面的语句修改为:

    print('''this
    is
    a
    website''')
    

    这回的结果是这样的:

    this
    is
    a
    website

  • Python的print()函数

    print()是python的标准输出,可以用下面的例子使用:

    print('This is a interesting website.')
    

    你可以在visual studio code,中新建一个.py文件,然后把内容复制进去,若安装了python插件,可以按F5键运行,可以得到结果。

    This is a interesting website.

    如果括号里面的是字符串,那么可以放在双引号或者单引号之间。如果仅仅是放入一个数字,那么无需使用任何引号。

    默认情况下,print()函数会在末尾加入一个换行符,如果想去掉这个换行符,可以使用:

    print("This", end=' ')
    print('is', end=' ')
    print('a', end=' ')
    print('interesting', end=' ')
    print('website.')
    

    比较一下用下面的结果是什么:

    print("This")
    print('is')
    print('a')
    print('interesting')
    print('website.')