目录
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:\three\two\one\now")
print("D:\\three\\two\\one\\now") #对反斜杠本身进行转义
#加入有一百个层级,可以使用原始字符串
print(r"D:\three\two\one\now")
字符串的加法和乘法:
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