python源码中的学习笔记_第1章_print 函数与数据类型

本笔记的作用只是记录,而不是讲解,故有些和其他编程语言重复的知识没有写
本笔记适合在开发 python 时,用作提示开发者的工具书,若想要研究某个知识点,可以在这里找到关键词,再到其他资料中查找

print 函数

# 这是一个示例 Python 脚本。

# 按 Shift+F10 执行或将其替换为您的代码。
# 按 双击 Shift 在所有地方搜索类、文件、工具窗口、操作和设置。

#
# 主题:print 输出函数
#

def print_hi(name):       # 自定义函数
    # 在下面的代码行中使用断点来调试脚本。
    print(f'Hi, {name}')  # 按 Ctrl+F8 切换断点。


# 按间距中的绿色按钮以运行脚本。
if __name__ == '__main__':  # 主函数入口
    # 操作文件
    fp = open('../output/test.txt', 'a+')    # 打开文件(若文件不存在,则自动创建文件)
    print('helloWorld', file=fp)            # 写文件
    fp.close()                              # 关闭文件

    # 不换行输出
    print('hello', 'world', 123)

# 访问 https://www.jetbrains.com/help/pycharm/ 获取 PyCharm 帮助

转义字符与原字符

#
# 主题:转义字符与原字符
#

if __name__ == '__main__':
    # 转义字符
    print('hello\nworld')           # \n 换行。n -> newline
    print('hello\tworld')           # \t 制表符。一般一个 \t 占4个空格
                                    # 这里字母 o 与 \t 一起占4个空格
                                    # 表明 \t 可以根据情况调整格式
    print('ok\rhello')              # \r 回车符
    print('ok\bhello')              # \b 退格符
    print('http:\\\\www.baidu.com') # \\ 输出字符 \
    print('老师说:\"同学们好!\"')    # \" 输出字符 "

    # 转义字符失能(原字符)
    print(r'老师说:\"同学们好!\"')   # 字符串之前加 r 或 R

二进制与字符编码

#
# 主题:二进制与字符编码
#

if __name__ == '__main__':
    # 字符编码
    print(chr(0B100111001011000))   # 0b\0B 表示后面是二进制数
                                    # chr 函数可以将二进制对应的字符转换出来
    print(ord('乘'))                 # ord 函数将字符转换为十进制

识别字与保留字

#
# 主题:识别符和保留字
#

# 保留字
import keyword
print(keyword.kwlist)       # 输出保留字

# 标识符
'''
由字母、数字、下划线组成
不能以数字开头
不能是保留字
严格区分大小写
'''

变量

#
# 主题:变量
#

if __name__ == '__main__':
    num = 12                # num 指向 12 变量所在地址
    print(num)              # 12 变量的值
    print(id(num))          # 12 变量的地址
    print(type(num))        # 12 变量的数据类型

数据类型

#
# 主题:数据类型
#

if __name__ == '__main__':
    '''
    int     整数
    float   浮点数
    bool    布尔      值为 Ture 或 False
    str     字符串
    '''

整数

#
# 主题:整数
#

if __name__ == '__main__':
    '''
    十进制     2
    二进制     0b0010
    八进制     0o0002
    十六进制    0x0002
    '''

浮点类型

#
# 主题:浮点类型
#

from decimal import Decimal         # 导入 decimal 模块

if __name__ == '__main__':
    # 浮点数的存储和计算不精确,则可以通过模块 decimal 解决
    print(Decimal('1.1') + Decimal('2.29'))

布尔类型

#
# 主题:布尔类型
#

if __name__ == '__main__':
    print(True + 1)         # True 表示真,运算时相当于 1
    print(False + 1)# False 表示假,运算时相当于 0

字符串类型

#
# 主题:字符串类型
#

if __name__ == '__main__':
    print('我正在学python')
    print("我正在学python")
    print('''我正在学python''')
    print("""我正在学python""")
    print('''我正在学                   
            python''')              # 三引号可以换行输出

类型转换

#
# 主题:类型转换
# coding: utf-8       规定文件编码格式
#

if __name__ == '__main__':
    # str 函数将 int 和 float 转换为 string
    age = 20
    state = True
    score = 89.9
    print(str(age) + '岁')
    print(str(state) + '人')
    print(str(score) + '分')
    print('\n')

    # int 函数将 string 和 float 转换为 int
    str = '123'
    print(int(str))
    print(int(score))
    print(int(True))
    print('\n')

    # float 函数将 int 和 string 转换为 float
    print(float(age))
    print(float(str))
    print(float('123.4'))
    print(float(True))

input 函数

#
# 主题:input 函数
# coding: utf-8
#

if __name__ == '__main__':
    # 输出 input 函数获取到的数据
    myData = input('输入数据:')
    print(type(myData))         # 输出为 <class 'str'>
                                # 说明 input 函数的输出结果的类型为 str

    # input 函数获取的数据参加运算
    num1 = input('输入第一个加数:')    # 输入 2
    num2 = input('输入第二个加数:')    # 输入 3
    print(type(num1), type(num2))
    print(num1 + num2)              # 输出 23 ,即为 num1 与 num2 的字符串组合

    num3 = int(input('输入第一个加数:'))   # 输入 2
    num4 = int(input('输入第二个加数:'))   # 输入 3
    print(num3 + num4)                  # 输出 5

运算符

#
# 主题:运算符
#

if __name__ == '__main__':
    '''********* start:算术运算符 *********'''
    # 算术运算符:标准算术运算符、取余运算符、幂运算符
    # 标准算术运算符
    print(1 + 1)        # 输出 2
    print(2 - 1)        # 输出 1
    print(1 * 2)        # 输出 2
    print(11 / 2)       # 输出 5.5    这是除法运算
    print(11 // 2)      # 输出 5  这是整除运算

    # 取余运算(取模运算)
    print(11 % 2)       # 输出 1

    # 幂运算
    print(2 ** 3)       # 输出 8

    # 正数与负数运算
    # 整除运算中,一正一负,则向下取整
    print(9 // 4)       # 输出 2
    print(-9 // -4)     # 输出 2
    print(9 // -4)      # 输出 -3     9 除以 -4 等于 -2.2
    print(-9 // 4)      # 输出 -3     -9 除以 4 等于 -2.2

    # 取余运算中,一正一负需要根据公式计算,
    # 即在 被除数 除以 除数 等于 商 余数 中,余数 等于 被除数 - 除数 乘 商
    print(9 % -4)       # 输出 -3
    print(-9 % 4)       # 输出 3
    '''*********   end:算术运算符 *********'''

    '''********* start:赋值运算符 *********'''
    # 支持链式赋值
    a = b = c = 20          # 赋值等号前面的三个变量都指向 20 所在的对象
                            # 20 所在的对象中,id: 存储地址,type: int,value: 20
                            # 一个变量可以看做是一个对象,其中有三个成员,即id(标识)、type、value

    # 支持系列解包赋值
    d, e, f = 20, 30, 40    # 赋值等号左右的个数相等时,才不会报错
                            # d = 20, e = 30, f = 40
                            # d 指向 20 所在的对象,e 指向 30 所在的对象,其他同理

    # 系列解包赋值在交换两个变量的值的应用
    num1, num2 = 10, 20
    print('交换数值前:', num1, num2)
    num1, num2 = num2, num1
    print('交换数值后:', num1, num2)
    '''*********   end:赋值运算符 *********'''

    '''********* start:比较运算符 *********'''
    a, b = 10, 20
    print('a < b ? ->', a > b)      # 输出 a < b ? -> False
                                    # 表明比较运算符所在的表达式的结果是 bool 类型

    # 判断值相等
    print('a = b? ->', a == b)      # 输出 False

    # 判断标识相等
    print(id( a))                   # 输出 140733991081280
    print(id( b))                   # 输出 140733991081600
    print(a is b)                   # 输出 False
    # is 的用法:
    # 若 a 与 b 的标识相等,即 a 与 b 指向同一个对象,则输出 Ture;反之,输出 False

    print(a is not b)               # 输出 Ture
                                    # not 是布尔运算符
    # is not 的用法与 is 的用法相反
    '''*********   end:比较运算符 *********'''

    '''********* start:布尔运算符 *********'''
    a, b = 1, 2
    print(a == 1 and b == 2)        # and 且
    print(a == 1 or b == 1)         # or 或
    print(not a == 1)               # not 非
                                    # 与其他语法搭配时,比较符合英语语法,如is not,not in

    str = 'HelloWorld'
    print('h' in str)               # 输出 False
    print('H' in str)               # 输出 True
    print('w' not in str)           # 输出 True
    '''*********   end:布尔运算符 *********'''

    '''********* start:位运算符 **********'''
    # 位运算将相关数据转换为二进制,再计算

    # 按位与 & :对应数位都是 1,结果对应的数位才为 1,否则为 0
    print(4 & 8)            # 输出 0

    # 按位或 |:对应数位都是 0,结果对应的数位才为 0,否则为 1
    print(4 | 8)            # 输出 12

    # 左移位 <<:高位溢出舍弃,低位补 0
    print(4 << 1)           # 输出 8
                            # 左移一位相当于十进制乘 2

    # 右移位 >>:低位溢出舍弃,高位补 0
    print(4 >> 1)           # 输出 2
                            # 右移一位相当于十进制除以 2
    '''*********   end:位运算符 **********'''

运算符优先级

在这里插入图片描述

沿着箭头的方向,优先级从高到低

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值