python基础知识

内容整理来自《零基础入门学习Python》–小甲鱼 编著

一、变量
当你把一个值赋值给一个名字时,它会存储在内存里,把这块内存称为变量(variable)。
变量就像是把名字“贴”在值的上面时,所以有些程序员会说Python没有变量,只有名字。变量就是一个名字,通过这个名字,可以找到想要找的东西。
看个例子:

>>> teacher =  "jacky"
>>> print(teacher)
jacky
>>> teacher = "哈哈"
>>> print(teacher)
哈哈

使用变量需要注意:

  1. 变量定义的规则:变量名只能是 字母、数字或下划线的任意组合,变量名的第一个字符不能是数字,以下关键字不能声明为变量名。 [‘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. 变量的命名要见名知意,例如 user_name 、age_of_jacky.
  3. 使用变量前,需要对其先赋值。

二、字符串
我们也把字符串叫为文本,文本和数字是截然不同的。
在python让两个字符相加,python会直接告诉你结果:

>>> 7 + 8
15

如果在数字的两边加上了引号,就变成了字符串的拼接,这就是引号带来的区别:

>>> '7' + '8'
'78'

python里的单引号和双引号没有任何区别,python表示在这一点上不挑剔。但必须成对,你不同一边用单引号,另一边却花心地用上双引号结尾,这样python就不知道你想干嘛了。

>>> 'I am studying python!"
SyntaxError: EOL while scanning string literal

那如果字符串中需要出现单引号或双引号怎么办?

>>> 'Let's go'
SyntaxError: invalid syntax

像上面这样写,python会误会你的意思,从而产生错误。
有两种方法。第一种比较常用,就是使用转义字符(\)对字符串中的引号进行转义:

>>> "Let\'s go"
"Let's go"

还有一种就是利用Python可以用单引号和双引号表示字符串这一特点,用不同的引号表示字符串,这样Python就不会误解你的意思啦。

>>> "Let's go"
"Let's go"

三、原始字符串
如果说字符串中需要出现(\),那可以使用两个(\)转义成一个,例如:

>>> string = 'C:\now'
>>> string
'C:\now'
>>> print(string)
C:
ow

>>> string = 'C:\\now'
>>> string
'C:\\now'
>>> print(string)
C:\now

但是如果对于一个字符串有很多一个反斜杠,我们就不乐意了。毕竟,这不仅是一个苦差事,还可能使代码变得混乱。
不过大家也不用怕,因为Python中有一个快捷的方法,就是使用原始字符串。原始字符串的使用非常简单,只需要在字符串面前加上一个英文字母r即可:

>>> string = r'C:\now'
>>> string
'C:\\now'
>>> print(string)
C:\now

在使用字符串时需要注意的一点是:无论是否原始字符串,都不能以反斜杠作为结尾。(注:反斜杠放在字符串的结尾表示该字符还没有结束,换行继续的意思),如果你坚持这么做就会报错:

>>> string = 'jacky love\'
SyntaxError: EOL while scanning string literal
>>> string = r'jacky love\'
SyntaxError: EOL while scanning string literal

如果非要在字符串加上反斜杠,可以试试字符串拼接的方法:

>>> string = 'jacky love' + '\\'  #貌似可以省略加号
>>> string
'jacky love\\'
>>> print(string)
jacky love\

四、长字符串
如果希望得到一个跨越多行的字符串,例如:

从明天起,做一个幸福的人
每天早睡早起,努力工作
好好陪家人朋友
从明天起…

如果行数非常多,使用’\n’作为换行符会非常繁琐。好在Python总是设身处地地为我们着想—只需要使用三重引号字符串就可以轻松解决问题:

>>> print('''
从明天起,做一个幸福的人
每天早睡早起,努力工作
好好陪家人朋友
从明天起......
''')

从明天起,做一个幸福的人
每天早睡早起,努力工作
好好陪家人朋友
从明天起......

五、Python数据类型

  • 整型:
    整型说白了就是平时所见的整数,Python3的整型以及与长整型进行了无缝结合,它的长度不受限制,如果非要说个限制,那就只限于计算机虚拟内存的总数。

  • 浮点型: 浮点型就是小数。

  • 布尔类型:
    用True和False表示“真”和“假”,但布尔型可以当做整数来对待,True相当于整数1,False相当于整数0,因此下面的运算是可以的:
    但是在实际应用中用布尔类型当成0和1来运算是实为不妥的,有0和1为啥不直接用呢?还要整那么麻烦,还容易代码混乱出错…

  •    >>> True + True 2
       >>> True * False 0
       >>> True / False   #0不能作为除数 Traceback (most recent call last):   File "<pyshell#2>", line 1, in <module>
           True / False ZeroDivisionError: division by zero ```
           
    
  • 类型转换

  • int( ) 将一个字符串或者浮点数转换成整数:

    >>> a = '9527'
    >>> b = int(a)
    >>> a,b ('9527', 9527)
    >>> c = 5.59
    >>> d = int(c)
    >>> c, d (5.59, 5) ```
    
  • float( ) 的作用是将一个字符串或者整数转换成一个浮点数(小数):

    >>> a = '9527'
    >>> b = float(a)
    >>> a, b ('9527', 9527.0)
    >>> c = 9527
    >>> d = float(c)
    >>> c, d (9527, 9527.0) ```
    
  • str( )可以将一个数或者任何其他类型装换成一个字符串:

     >>> a = 5.59
     >>> b = str(a)
     >>> b '5.59'
     >>> c = str(5e15)
     >>> c '5000000000000000.0' ```
    
  • 使用type( )可以获得变量的类型信息:

    >>> type( '') <class 'str'>
    >>> type('9527') <class 'str'>
    >>> type(9.527) <class 'float'>
    >>> type(5e20) <class 'float'>
    >>> type(9527) <class 'int'>
    >>> type(True) <class 'bool'> ```
    
  • isinstance( )这个BIF(Built-in Function内置函数)也可以用来确定数据类型。isinstance(
    )有两个参数:第一个是待确定类型的数据;第二个就是一定一个数据类型。 isinstance(
    )会根据两个参数返回一个布尔类型的值,True表示类型一致,False表示类型不一致:

          >>> a = '小苦瓜'
          >>> isinstance(a, str) True
          >>> isinstance(9527, float) False
          >>> isinstance(9527, int) True ```
    

六、常用操作符

  • 算术操作符: + - * / % ** // %取余 ** 取幂 // 地板擦除(取整)
    在Python中可以做一些简化:

    >>> a = b = c = d = 10
    >>> a += 1
    >>> b -= 1
    >>> c *=10
    >>> d /= 8
    >>> print(a, b, c, d) 11 9 100 1.25 ```
    
  • 需要注意的是使用//的时候,不管是整数运算还是浮点数运算,都会执行地板除法:

    >>> 3 // 2 1
    >>> 3.0 // 2
    1.0 ```
    
  • 优先级问题

  • 先乘除再加减,有括号先算括号。Python中幂运算(**)操作符和一元操作符的优先级比较特别:幂运算操作符比其左侧的一元操作符优先级高,比其右侧的一元操作符优先级低:

    >>> -3 ** 2
    -9
    >>> 3 ** -2
    0.1111111111111111 ```
    
  • 但是还是得提醒大家,也许大家对优先级问题已非常熟悉,但是上面代码上的做法还是不推荐使用的,也许哪一天你就把你自己给坑了,我们不妨加上小括号,使得代码逻辑更加的清晰,也可以防止一些不必要的麻烦:

    >>> - (3 ** 2)
    -9
    >>> 3 ** (-2)
    0.1111111111111111 ```
    
  • 比较操作符 < <= > >= == != 比较操作符根据表达式的值的真假返回布尔类型的值。

  • 逻辑运算符 and or not 和成员运算符 in ;not in

  • 对了,你可能见到这样的表达式: 3 < 4 < 5 这在其他的编程语言中一般是不合法,但是在Python中却是行得通的,他事实上被解释为:
    3 < 4 and 4 < 5

作业:
1.编写程序,要求用户输入姓名并打印“你好,姓名!”

name = input("Please input your name:")
print("hello,", name + "!")

2.编写程序,要求输入1到100之间数字并判断,输入符合要求打印:“你好棒棒啊,要不要把你举高高”,不符合要求则打印:“你说你是不是傻猫”

temp = input("please input a number (1~100):")   # input 返回的是一个字符串
if temp.isdigit():
    num = int(temp)
    if 1 < num < 100:
        print("你好棒棒啊,要不要把你举高高。")
    else:
        print("你说你是不是傻猫。")
else:
    print("你说你是不是傻猫。")

3.如果非要再原始字符串结尾输入反斜杠,可以如何灵活处理?

>>> str = r'C:\Program File\Python作业都在这里' '\\'
>>> str
'C:\\Program File\\Python作业都在这里\\'
>>> print(str)
C:\Program File\Python作业都在这里\

4.请写出10 < cost < 50的等价表达式

(10 < cost) and (cost < 50)

5.python 如何实现一行写多条代码和一条代码写成多行?

>>> 3 > 4 and \
1 < 2
False

>>> print("I am jacky!");print("I am studying python!")
I am jacky!
I am studying python!

6.取得一个变量的类型,可以使用type( )或者isinstance(),你要倾向于使用哪一个?
  建议使用isinstance,因为它的返回结果比较直接,是布尔类型,另外type( )其实并没有你想象的那么简单,后面再续。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值