目录
1 变量(Variable)
2 字符串(string)
2.1 转义字符
2.2 比较运算符
3 小游戏改进
4 数字类型
4.1 整数
4.2 浮点数
4.3 复数
4.4 数字运算
5 布尔类型(bool)
6 逻辑运算符
6.1 运算符的优先级
1 变量(Variable)
变量名:通常由字母、数字和下划线构成,但是不能以数字打头。且变量名是区分大小写的。中文也可以被支持。
x = 3 print(x) # 3 loveyou1314 = 1314 幸运数 = 588 print(幸运数) # 588
变量的赋值:用=来进行赋值,变量的值是可以被替换的,取决于最后一次赋值操作。
name = "小甲鱼" print(name) # 小甲鱼 name = "大甲鱼" print(name) #大甲鱼
调换两个变量的值:
x = 3 y = 5 z = x #设置一个中间变量 x = y y = z print(x,y) #5 3 #方法2 x = 3 y = 5 x, y = y, x #5 3
2 字符串(string)
2.1 转义字符
如果你希望显示一段文本就需要用到字符串,例如刚刚的中文变量名,python字符串的编写方式有多种多样,例如:
| 单引号 | ' “I love you” ' | 如果要显示双引号可以使用 |
| 双引号 | " Let's go ! " | 有单引号的英文句子可以使用 |
| 三引号 | ‘’‘ 小甲鱼’‘’ """小甲鱼”“” | 要成双成对 |
【注】不管是使用单引号还是双引号要确保文本是成双成对的。
转义字符:用来表示一些不能直接显示的ASCII字符
| 符号 | 说明 |
| \ | 反斜杠() |
| ' | 单引号(') |
| " | 双引号(") |
| a | 响铃(BEL) |
| b | 退格符(BS) |
| n | 换行符(LF) |
| t | 水平制表符(TAB) |
| v | 垂直制表符(VT) |
| r | 回车符(CR) |
| f | 换页符(FF) |
| ooo | ooo为八进制数 |
| xhh | hh为十进制数 |
原始字符串:假如你要输入路径的时候,可能会被认为是转义字符,
"""原始字符串"""
print("D:threetwoonenow")
print("D:\three\two\one\now") #对反斜杠本身进行转义
#加入有一百个层级,可以使用原始字符串
print(r"D:threetwoonenow")
字符串的加法和乘法:
print(520 + 1314)
# 1834
print(' 520 ' + ' 1314 ')
# '5201314'
print("我每天爱你 三千遍" * 3000)
2.2 比较运算符
比较两边的值,成立返回Ture, 不成立返回False
| 运算符 | 含义 |
| < | 左边小于右边 |
| <= | |
| > | |
| >= | |
| == | 左右两边相等 |
| != | 左右两边不相等 |
| is | 两个对象相等 |
| is not | 两个对象不相等 |
3 小游戏改进
- 当用户猜错的时候,程序应该给出提示
- 应该提供多次机会给用户
- 每次运行程序,答案应该是随机的
import random
choice = 'y'
while(choice == 'y'):
info = input("请输入我心中所想的数字(1-10):")
guess = int(info)
anser = random.randint(1,10)
if guess == anser:
print("正确数字是%d", anser)
print("恭喜你猜对了")
else:
print("正确数字是:",anser)
print("很遗憾你猜错了")
choice = input("是否选择重新来过 y/n:")
if choice == 'n':
break
3次机会猜出数字
import random
couts = 3
anser = random.randint(1,10)
while couts > 0:
info = input("输入我心中所想的数字:")
guess = int(info)
if anser == guess:
print("恭喜你答对了!正确数字是:",anser)
else:
if anser >guess:
print("小了")
else:
print("大了")
couts -= 1
print("游戏结束了")
随机数的使用方法:
4 数字类型
4.1 整数
python的整数是没有精度的,可以无限大的设置。如果被整除会带小数(浮点数)。
info = 112233445566/111122223333 print(info) #1.0099999999970304
4.2 浮点数
由于python和C语言一样,都是采用IEEE754的标准来存储浮点数的,所以会存在精度上的差别。
于是,用比较运算符会有如下情况
0.3 == 0.1 + 0.2 #false 0.3 > 0.1 + 0.2 #true
decimal模块:为了使数据更加的精准
import decimal
a = decimal.Decimal('0.1')
b = decimal.Decimal('0.2')
print( a+b )
# 0.3
#只有相同对象才能加减,所以定义C
c = decimal.Decimal('0.3')
a + b == c
# true
4.3 复数
复数分为实部与虚部,且都是以浮点数存放。x.real实部,x.imag 虚部
print(1 + 2j) # (1+2j) x = 1 + 2j print(x.real) # 1.0 print(x.imag) #2.0
4.4 数字运算
| 操作 | 结果 | 注意 |
| x+y | ||
| x-y | ||
| x*y | ||
| x/y | 得出的小数 | 3/2 = 1.5 |
| x//y | 地板除(可以去除小数,保留整数) | -3 // 2 = -2 3 // 2 = 1 向下取整 |
| x % y | 余数 | 6%2 = 0 |
| -x | 相反数 | |
| +x | 本身 | |
| abs(x) | 绝对值 | abs(-3.14) = 3.14 复数取模 |
| int(x) | 将x转为整数 | |
| float(x) | ||
| complex(re , im ) | 复数 | 传入字符串不能有空格 |
| c.conjugate | 返回c的共轭复数 | |
| divmod(x,y) | 返回(x//y , x % y) x==(x//y*y+(x%y) | divmod(3,2) (1,1) |
| pow(x, y ) | 计算x的y次方 | pow(x,y,z) 得到啊x**y%z |
| x ** y | 计算x的y次方 | 负数不会识别负号 |
5 布尔类型(bool)
| 定义为false | None False |
| 值为0的数字类型 | 0,0.0,0j,Decimal(0),Fraction(0,1) |
| 空的序列和集合 | '',(),[],{},set(),range(0) |
除数不能为0,布尔类型就是特殊的整数类型
1 == True 0 == False True + False # 1 True - False # 1 True / False # error
6 逻辑运算符
| 运算符 | 含义 |
| and | 同时为真 |
| or | 其中一个为真 |
| not |
短路逻辑的核心思想:从左往右,只有当地一个操作的值无法确定逻辑运算的结果时,才对第二个操作数进行求值。
(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9) # 4 3 and 4 # 4 3 or 4 # 3
6.1 运算符的优先级
优先级大小
not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9 # 4



