基础语法

变量

变量需要以字母开头 不可以数字开头 python3支持中文变量

x = 3
y = 5
x, y = y, x
print (x, y)
把x的值给到y  y的值给到x
字符串
>>> a = 5
>>> b = 1
>>> print (a,b)
5 1
>>> print ("a,b")
a,b
a,b被认定为一个字符串整体
>>> print ("a","b")
a b
a和b被分别认定为一个字符串整体  所以引号里面的内容会被认定为字符串形式 而非我们定义的变量

注意: 引号要成对 不然会报语法错误

转义字符
image.png
\n 用于换行
>>> print ("let's go home \nok")
let's go home 
ok
>>> print ("let's go home \n ok")
let's go home 
 ok
>>> 
当我们想输出路径的时候就会出错
>>> print ("D:\new\time\123")
D:
ew  imeS
>>> print ("D:\\new\\time\123")
D:\new\timeS

为什么这个地方出现了S  那是因为\123被看做了八进制  八进制范围 \000到\377    想引用纯数字就需要再加一个\  或者超出八进制范围
如下:

>>> print ("D:\\new\\time\\123")
D:\new\time\123
>>> print ("D:\\new\\time\\1234")
D:\new\time\1234
>>> 

如此添加\进行去转义操作太麻烦了 如何在不加\的情况下输出正确的路径呢 那就是使用原始字符串功能

>>> print (r"D:\new\time\123")
D:\new\time\123
>>> 

加一个r告诉python 后面的字符串是一个原始字符串  这样里面的转义符就失效了
长字符串

定义长字符串通常是以三个引号(单双都可)
这样在输出内容没有结束的时候就不需要频繁的用\ 来告诉解释器我还有其他内容没输出完毕

>>> shiju = '''
再别康桥
轻轻的我走了,
正如我轻轻的来;
我轻轻的招手,
作别西天的云彩。
那河畔的金柳,
是夕阳中的新娘;
波光里的艳影,
'''

>>> print (shiju)

再别康桥
轻轻的我走了,
正如我轻轻的来;
我轻轻的招手,
作别西天的云彩。
那河畔的金柳,
是夕阳中的新娘;
波光里的艳影,
字符串的加法和乘法

整数相加正常计算
字符串相加是拼接
字符串乘以数字是重复

>>> print (123+123)
246
>>> print ("123"+"123")
123123
>>> print ("123\n" *3)
123
123
123

>>> 
第一个游戏脚本

input 接收输入的内容,字符串格式

'''用pyhon写的第一个游戏'''
temp = input("请输入你认为正确的数字: ")
guest = int(temp)
print (temp)
if guest == 8:
    print ("恭喜猜对了")
    print ("当时没奖励")
else:
    print ("不好意思猜错了")
print ("游戏结束")

运算符
image.png
循环语句
image.png
一直执行

while 3 > 0 一直成立 所以可以一直执行

'''用pyhon写的第一个游戏'''
while 3 > 0:
    temp = input("请输入你认为正确的数字: ")
    guest = int(temp)
    print (temp)
    if guest == 8:
        print ("恭喜猜对了")
        print ("当时没奖励")
    elif guest < 8:
        print ("数字太小了")
    else:
        print ("不好意思猜错了")
    print ("游戏结束")

image.png
执行五次
'''用pyhon写的第一个游戏'''
num = 6
while num > 1:
    temp = input("请输入你认为正确的数字: ")
    guest = int(temp)
    
    if guest == 8:
        print ("恭喜猜对了")
        print ("当时没奖励")
    else:
        if guest < 8:
            print ("数字太小了")
        else:
            print ("大了")
    num = num - 1
            
print ("游戏结束")

=========当第五次的时候num值为2   2-1>1不成立 所以脚本运行结束=======

===================== RESTART: D:/工作/python学习/脚本/game.py =====================
请输入你认为正确的数字: 1
数字太小了
请输入你认为正确的数字: 2
数字太小了
请输入你认为正确的数字: 3
数字太小了
请输入你认为正确的数字: 4
数字太小了
请输入你认为正确的数字: 5
数字太小了
游戏结束
>>> 

但是此脚本有一个问题,当用户输入的值是8的时候 猜对后就应该直接结束 不应该是5次后才结束

===================== RESTART: D:/工作/python学习/脚本/game.py =====================
请输入你认为正确的数字: 8
恭喜猜对了
当时没奖励
请输入你认为正确的数字: 8
恭喜猜对了
当时没奖励
请输入你认为正确的数字: 8
恭喜猜对了
当时没奖励
请输入你认为正确的数字: 8
恭喜猜对了
当时没奖励
请输入你认为正确的数字: 8
恭喜猜对了
当时没奖励
游戏结束
>>> 
break 跳出循环
'''用pyhon写的第一个游戏'''
num = 6
while num > 1:
    temp = input("请输入你认为正确的数字: ")
    guest = int(temp)
    
    if guest == 8:
        print ("恭喜猜对了")
        print ("当时没奖励")
        break
    else:
        if guest < 8:
            print ("数字太小了")
        else: 
            print ("大了")
    num = num - 1
            
print ("游戏结束")



===================== RESTART: D:/工作/python学习/脚本/game.py =====================
请输入你认为正确的数字: 1
数字太小了
请输入你认为正确的数字: 9
大了
请输入你认为正确的数字: 8
恭喜猜对了
当时没奖励
游戏结束
>>> 
random 随机数模块

import random 导入random模板
random.randint(1,10) 在1到10里面生成随机数

>>> import random
>>> random.randint(1,10)
2
>>> random.randint(1,10)
5
>>> random.randint(1,10)
4
>>> random.randint(1,10)
9
>>> 

数字类型

整数
print(10 + 5)      # 15
print(10 - 5)      # 5
print(10 * 5)      # 50
print(10 // 3)     # 3 (整除)
print(10 % 3)      # 1 (取模)
print(2 ** 10)     # 1024 (幂运算)
浮点数
特点:

包含小数部分的数字
使用 IEEE 754 双精度标准(64位)
可能有精度问题(如 0.1 + 0.2 ≠ 0.3)
支持科学计数法表示

decimal 精确计算

>>> a = 0.1
>>> b = 0.2
>>> print (a + b)
0.30000000000000004
>>> import decimal
>>> a = decimal.Decimal("0.1")
>>> b = decimal.Decimal("0.2")
>>> print (a+b)
0.3
复数

特点:
形式为 a + bj,其中 a 是实部,b 是虚部
虚部后缀使用 j 或 J
支持实部和虚部分别访问
在科学计算和工程领域常用

创建复数
c1 = 3 + 4j
c2 = 2 - 1j
c3 = complex(5, 6) # 5 + 6j

访问实部和虚部
print(c1.real) # 3.0
print(c1.imag) # 4.0

复数运算
print(c1 + c2) # (5+3j)
print(c1 * c2) # (10+5j)
jj=-1
c1
c2=(3+4j) (2-1j)
=6-3j+8j-4j*j
=6+5j-(-4)
=10+5j

print(c1.conjugate()) # (3-4j) 共轭复数
print(abs(c1)) # 5.0 模长 (√(3²+4²))

特殊值
c4 = 1j * 1j # (-1+0j) 即 i² = -1

类型转换

int_val = int(3.9) # 3 (截断小数)
float_val = float(5) # 5.0
complex_val = complex(2) # (2+0j)

类型检测

x = 10
y = 3.14
z = 2 + 3j

print(type(x)) # <class 'int'>
print(type(y)) # <class 'float'>
print(type(z)) # <class 'complex'>

print(isinstance(x, int)) # True
print(isinstance(y, float)) # True

混合运算

混合运算规则
整数 + 浮点数 = 浮点数

浮点数 + 复数 = 复数

整数 + 复数 = 复数

python
print(10 + 3.14) # 13.14 (浮点)
print(3.14 + (1+2j)) # (4.14+2j) (复数)
print(5 + (3+4j)) # (8+4j) (复数)

运算符
image.png

其中需要特别注意 x // y 得出的结果是小于x除以y的值的整数
比-3.5小的整数是-4

>>> 7/2
3.5
>>> 7//2
3
>>> -7/2
-3.5
>>> -7//2
-4
>>> 

divmod(x,y) 返回 x//y x%y的值

>>> divmod(-7,2)
(-4, 1)
>>> divmod(7,2)
(3, 1)
>>> 

pow 和 x**y都是x的y次方 但是pow支持输入三个数字 pow(2,3,5) 想当于 2的三次方在和5取余

>>> pow(2,3)
8
>>> pow(2,3,5)
3
>>> pow(2,4,5)
1
>>> 
布尔值

bool() 结果只有False True
为False的结果如下


image.png
>>> bool(0)
False
>>> bool(1)
True
>>> bool()
False
>>> bool( )
False
>>> bool(" ")
True
>>> bool("")
False
逻辑运算符
image.png
>>> (not 0)
True
>>> (not 1)
False
>>> (not 2)
False
>>> (1 and 2)
2
>>> (1 and 7)
7
>>> (0 and 7)
0
>>> (0 and 3)
0
>>> (0 or 3)
3
>>> (0 or 7)
7
>>> (1 or 7)
1
>>> (1 or 3)
1
>>> (7 and 8 and 9)
9
>>> (not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
4
>>> 

先算小括号内的 再算括号外的
如果去掉括号结果如何呢

>>> not 1
False
>>> 1 or 0
1
>>> 0 or 1
1
>>> 1 or 3
1
>>> 1 and 3
3
>>> 0 and 3
0
>>> 

not 取反
or 两边有一个符合就可以 所以哪个先符合true就先返回哪个值 1 or 2 返回1
and 必须同时符合 当第一个值为false直接返回第一个值 当第一个值为true就返回第二个值

运算符优先级

越往下优先级越高


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容