编辑代码

# coding:utf-8
#JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。 
print("Hello world!   -  python.jsrun.net .")

#anaconda安装

import this
#会触发内部的一个代码,显示Python语言的设计哲学。

'''
注释:方便理解、方便查找以及方便项目组里的其他开发人员了解你编写的代码。
    单行注释:#
    多行注释:一对 三引号;单双英文引号都可以
        三引号在 Python 中,还可以用于【定义多行字符串】或【文档字符串(docstring)】。

缩进:tab键代表4个英文空格的缩进(Windows),注意不同系统,tab键缩进的空格数不一样,但也可以人为进行修改
'''

print("Hello, World")

'''
当输入以下代码块时,会发生错误。
print("Hello,
World")

运行结果:
  File "/data/174464156211392494.py", line 32
    print("Hello,
          ^
SyntaxError: unterminated string literal (detected at line 32)

解读:
    错误发生行:line32
    错误提示:^所在位置    
             ^(caret):别名[乘方、插入符、脱字符、帽子(hat)、控制符(control)、上箭头(uparrow)]
    错误具体原因:SyntaxError: unterminated string literal (detected at line 32)
                              未终止的字符串字面量:在编程中,指的是字符串字面量缺少结束引号的错误。

【语句】:Python的一句话。如:赋值、打印信息、输出到屏幕上、导入模块或执行其他众多任务。
         语句都是从上到下逐条执行的,这种方式也叫作“顺序结构”,是Python中最基本的结构。
'''
print("Hello, \
World")
# 借助转义字符:\ 进行换行
'''
转义字符(Escape Characters) : 是以反斜杠 \ 开头的特殊字符.
        1.用于表示无法直接输入的字符(如换行、制表符等)
        2、避免歧义(如字符串中的引号),对于语法冲突的字符,如英文单引号和双引号,引入反斜杠后,可以


'''

print('Hello, \nWorld')   # \n:换行符
print('Hello,World')
print('Hello, World')
print('Hello,\tWorld')
print('Hello, \tWorld')   # \t:水平制表符


#为了切实了解这些字符串到底有多少个字符(空格也是字符),用len()函数
print(len('Hello, \nWorld'))  # \n:换行符
print(len('Hello,World'))
print(len('Hello, World'))
print(len('Hello,\tWorld'))
print(len('Hello, \tWorld'))
print(len(''))  #空字符,空字符串
print(len(' '))  #空格
print(len('ab'))
print(len('a\nb'))  #\n也被计算在内,算一个字符
print(len('a\tb'))  #\t算一个字符

#反斜杆\:避免语法错误的字符,其本身不代表Python中的特殊符号,
# 如反斜杠其本身,。。。。有一个不含特殊符号,但含有大量反斜杠的字符串时,会让人感觉很烦
# 可以在字符串前面加一个前缀符号r(raw:表示原生的)
print(r'this\has\no\special\characters')


#变量与赋值  赋值运算符deepseek之前问过的内容

x = 2
print(x)

'''
【变量命名】:
    1.变量名只能由【英文字母、下划线_】或【数字】组成,且【第一个字符】必须是【“英文字母或下划线”】。
        变量的命名要注意【大小写】的问题,name和Name在python中是两个不同的变量。
        变量名使用小写字母开头是Python中约定俗成的做法。
    2.变量名不能是Python的关键字(或叫保留字----指的是Python本身“已经在使用”的名字),。
        要查看关键字,可以使用。。。来查询
    3.对于变量的命名,尽量取一些有意义的名字。

【变量不用声明】,因为Python会自动识别数据类型。这一点跟其他语言是不同的。

变量是存储数据的容器,使用=进行赋值。

【赋值】:将 等号右侧的值 赋予给 等号左侧的变量    【是语句】
    语法:变量 = 值
    注意:赋值覆盖的能力。
        a = 1
        a = 2
        print(a)
        输出:2
        因为语句是由上而下执行的,a的旧值已经被新的值所覆盖
    未被赋值的变量名不能直接使用,会报错。
        print(X)   #前文并没有出现过X变量,且也没有对其进行赋值


【赋值运算符】
    定义:右边表达式的值存储到左边的变量中去。
        1.变量出现时,要被赋值,否则报错
        2.赋值运算符是左侧不可以是值类型。如print(1 += 2)

    【基本赋值运算符】:=  直接赋值    【是赋值语句】
        链式赋值
            可以同时给多个变量赋相同的值:
            a = b = c = 10  # a、b、c 都赋值为 10

        解包赋值(多变量赋值)
            1.可以一次性给多个变量赋不同的值:
            x, y, z = 1, 2, 3  # x=1, y=2, z=3
            
            2.适用于交换变量的值:
            a, b = b, a   # 交换 a 和 b 的值

            3.可用于解包序列(如列表、元组):
            value = [10, 20, 30]
            x, y, z = value  # x=10, y=20, z=30

        注意:复合赋值运算符(如+=等)没有链式赋值和解包赋值的形式,会报错。

        海象运算符 (:=)(Python 3.8+)   【是赋值表达式】【海象表达式】
            在表达式内部进行赋值(常用于 while 或 if 条件判断、列表推导式、正则表达式等):
            if(n := len('Hello') > 3):     n>3是一个表达式,在这个表达式内部对n进行赋值表达式(n:=len('Hello')返回5并赋值给n,if语块才是完整的语句
                print(n)   #输出5

                等价于
            name = 'Hello'  多了一个语句
            n = len(name)
            if n > 3:
                print(n)
    【复合赋值运算符】:【或增强赋值运算符】
            运算符    示例	      等价于	        说明
            +=	    x += 5	    x = x + 5	    加法后赋值
            -=  	x -= 3	    x = x - 3	    减法后赋值
            *=  	x *= 2	    x = x * 2	    乘法后赋值
            /=  	x /= 4	    x = x / 4	    除法后赋值
            //=	    x //= 3	    x = x // 3	    整除后赋值
            %=  	x %= 2	    x = x % 2	    取模后赋值
            **=	    x **= 2	    x = x ** 2	    幂运算后赋值
            &=	    x &= y	    x = x & y	    按位与后赋值
            ^=	    x ^= y	    x = x ^ y	    按位异或后赋值
            <<=	    x <<= 2	    x = x << 2	    左移后赋值
            >>=	    x >>= 2	    x = x >> 2	    右移后赋值

【语句】VS【表达式】






print()函数:
            打印、输出内容
            输出变量的值。。。。
'''




#引入input()函数 --支持动态输入

'''
使用input()函数获取用户输入,可以将用户存储在变量中。





数据类型:(说白了,其实是变量对应的【值的类型】)

    【数字】:
            整数int:  integer; 正整数、0、负整数    如:1001等
            浮点数float:  由整数和小数组成
                【整数转浮点数】:float(int)
                【浮点数转整数】:int(float)   #不会进行四舍五入,只会简单【截取】整数部分
                                int(2.7)和int(2.4)   #返回2
            复数complex: 由实数和虚数组成----a+bj或者complex(a, b); a为实部,b为虚部,都是浮点数
            布尔值:True和False;只有两个
                    注意:首字母必须大写。  True和true不是同一个东西。
                    为什么布尔值归属于“数字”这个数据类型:
                    True等价于1;False等价于0

    【字符串】:由 英文单引号 或 英文双引号 组成
                字符串中的字符个数可以是: 0,1个,多个

                print('Let's go!')  运行会报错:
                想要输出带引号的字符串:
                    一对单引号包含双引号/一对双引号包含单引号   print("Let's go!')  这也是Python同时支持单引号和双引号的原因之一。
                    转义字符                                 print('Let\'s go!')
                    原始字符串:在字符串前面加上r或R,表示这是一个原始字符串。   print(r'Let's go!')
                            原始字符串在遇到【路径】作为参数值时特别有用。
                                print(r'C:\northwest\northwind')
                                在上述代码中,如果没有r对Python提前说明,会先识别\为反斜杠,然后紧接着识别其后面的n,即\n换行
    【type()函数】:判断变量或值是什么类型。
                    语法:type(变量或值)
    【整数型字符串转成数字】:int(integer_string)   #成立,转化成int
                        【浮点数型字符串转换成数字】:int(float_string)    #报错
    【浮点数型字符串转换成数字】:float(float_string)   #成立,转化成float
    【整数型字符串转成数字】:flaot(int_stirng)   #成立,转化成float
    【字符串】+【数字】:会报错,要转换
            【+】:表示字符串拼接时,数字转字符串
            【+】:表示算术运算符时,字符串转数字(前提字符串书数字型字符串)


数据结构:以某种方式(比如:通过索引/编号/下标)组合起来的一组数据
    序列:列表list、元组tuple、字符串string
        定义:序列中的每个元素都有一个编号/索引/下标/位置。其中第一个元素的下标为0,第二个元素的下标为1,以此类推。
        注意:下标是从0开始的。
    字典dictionary
    集合set




字符串的方法操作:
方法:strip()去除空格,capitalize()首字母大写,title()每个单词首字母大写。


函数的链式调用,如name.strip().title()使代码更简洁。

 格式化字符串:f-string
    利用f-string来插入变量,如f'Hello, {name}'。

错误处理:
使用try和except来处理异常。




如果设置一个函数不返回任何的值,那么脚本在执行的时候默认抛出什么值? None
'''