py二

2023-02-22 10:47:50 浏览数 (2)

代码语言:python代码运行次数:0复制
### 数据类型
x = 10
#类型判断
print(type(x))
#转为整数
print(int(x))
#转为浮点数
print(float(x))
#转为二进制
print(bin(x))
#转为八进制
print(oct(x))
#转为十六进制
print(hex(x))
#转为字符串
st = str(x)
print(st, type(st))

a = '0b1010'
b = int(a, base = 2)#参数a, base进制类型
print(b, type(b))

代码语言:txt复制
<class 'int'>
代码语言:txt复制
10
代码语言:txt复制
10.0
代码语言:txt复制
0b1010
代码语言:txt复制
0o12
代码语言:txt复制
0xa
代码语言:txt复制
10 <class 'str'>
代码语言:txt复制
10 <class 'int'>
代码语言:python代码运行次数:0复制
# 浮点数
## 整数要比浮点数的运算精度要高 pow(x,n) x是底数,n是幂。 x^n
print(pow(1010,25))#可以精确到前面30几位
print(pow(1010.0,25))#只能精确到前面20几位

## 存在不确定尾数
#受限于计算机浮点数使用宽度,计算的二进制数并不是0.1和0.2,二是计算机内部接近0.1和0.2的二进制数。求的的数反映到十进制就会产生一个不确定的尾数。
a = 0.1   0.2 #a = 0.30000000000000004
if a == 0.3:
    print("yes")
else:
    print("no")

print(a)
#未解决这个问题,使用round()函数保留几位小数
print(round(a,2)) #保留两位小数 0.30
if round(a,2) == 0.3:
    print("yes")
代码语言:txt复制
1282431995017233613592752029298389976325673030025010000000000000000000000000
代码语言:txt复制
1.2824319950172337e 75
代码语言:txt复制
no
代码语言:txt复制
0.30000000000000004
代码语言:txt复制
0.3
代码语言:txt复制
yes
代码语言:python代码运行次数:0复制
#复数
a = 3   4j
print("real获取实部", a.real)
print("imag获取虚部", a.imag)
代码语言:txt复制
real获取实部 3.0
代码语言:txt复制
imag获取虚部 4.0
  • 两数之和 x y
  • 两数之差 x-y
  • 两数之积 x*y
  • 两数之商,结果为浮点数 x/y
  • 商后取整 x//y
  • 商后取余 x%y
  • x的y次幂 x**y
  • 绝对值 abs(x)
  • divmod(x, y) => (x//y, x%y)

高级运算符

按位与(&):都是1,取1,否则为0

按位或(|):存在1,取1,均不为1,即为0

按位取反(~):每个位上都取反,1变为0,0变为1

按位异或(^):存在两个二进制,当相应位置上的数字不相同,才取1,若相同,即为0。

代码语言:python代码运行次数:0复制
print(4/2)
print(4/3)
print(4//3)
print(2**2)

# 二元数组
divmod(10, 3) #(商后取整,商后取余)
pow(2, 3, 2) #2的3次方是8,再除以2,取余为0

# 按位运算符
print(bin(0b1010 & 0b0110))
print(bin(0b1010 | 0b0110))
#print(bin(0b1010 ~ 0b0110))
print(bin(0b1010 ^ 0b0110))
代码语言:txt复制
2.0
代码语言:txt复制
1.3333333333333333
代码语言:txt复制
1
代码语言:txt复制
4
代码语言:txt复制
0b10
代码语言:txt复制
0b1110
代码语言:txt复制
0b1100
代码语言:python代码运行次数:0复制
# 类型判断
# type(字符串) -> 返回类型
# isinstance(字符串,类型) -> 返回 True 或 False
print(isinstance("广州", str))
print(isinstance("广州", int))
print("广州".encode()) #编码为字节串类型

print("x43") # => C
print(r"x43") #字符串前加r或者R标识原字符串,常用在文件路劲、URL和正则表达式
代码语言:txt复制
True
代码语言:txt复制
False
代码语言:txt复制
b'xe5xb9xbfxe5xb7x9e'
代码语言:txt复制
C
代码语言:txt复制
x43

字符串处理

代码语言:python代码运行次数:0复制
# 字符串索引、字符串切片 [N:M:step], N是切片终止索引号(开区间不包含),M切片长度,step切片步长
s = "世界那么大,我想去看看"
print(s[0])
print(s[0:4])
print(s[0:4:3])

print(s[-1])
print(s[-4:-2])

# 字符串运算
a = "one"
b = "one TWO"
c = a * 3 #字符串复制3次
print(c)
print(a in b)
print(len(a))

# 字符串
print(ord("钱")) #返回单字符对应的UniUnicode编码
print(chr(38065)) #返回Unicode对应的单字符

# 字符串处理方法
print(b.upper())
print(b.lower())
print(b.split(sep=None)) #返回默认以空格分割的sub子字符串
print(b.split(sep="n")) #返回以n分割的sub子字符串
print(c.count("o"))
print("replace:", b.replace("TWO", "two"))

print(b.center(15, "*")) #center(width, fillchar), 目标字符居中,width字符最终的长度,fillchar字符填充
print(b.center(10, "*"))

print("##berave####".strip("e#"))
ls = ["objc", "swift", "flutter"]
print("**".join(ls)) #每个元数后面加**

# format 使用
print("{1}那么大,{0}想去看看".format("我", "世界"))
s = "python"
print("{:*^10}是最牛逼的".format(s))
print("{:*<10}是最牛逼的".format(s))
print("{:*>10}是最牛逼的".format(s))

i = 126832173980
print("{:*^5,}是最牛逼的".format(i)) #引导好,填充,对齐,长度,千位分隔符

a = 3.1415
print("{:*^10.3}是最牛逼的".format(a)) #.精度保留的是有效数字 3.14
print("{:*^10.3f}是最牛逼的".format(a)) #.f精度保留的是几位小数 3.142

print("{0:b},{0:c},{0:d},{0:o},{0:x}".format(10)) # 1010,n,10,12,a
代码语言:txt复制
代码语言:txt复制
世界那么
代码语言:txt复制
世么
代码语言:txt复制
代码语言:txt复制
想去
代码语言:txt复制
oneoneone
代码语言:txt复制
True
代码语言:txt复制
3
代码语言:txt复制
38065
代码语言:txt复制
代码语言:txt复制
ONE TWO
代码语言:txt复制
one two
代码语言:txt复制
['one', 'TWO']
代码语言:txt复制
['o', 'e TWO']
代码语言:txt复制
3
代码语言:txt复制
replace: one two
代码语言:txt复制
****one TWO****
代码语言:txt复制
*one TWO**
代码语言:txt复制
berav
代码语言:txt复制
objc**swift**flutter
代码语言:txt复制
世界那么大,我想去看看
代码语言:txt复制
**python**是最牛逼的
代码语言:txt复制
python****是最牛逼的
代码语言:txt复制
****python是最牛逼的
代码语言:txt复制
126,832,173,980是最牛逼的
代码语言:txt复制
***3.14***是最牛逼的
代码语言:txt复制
**3.142***是最牛逼的
代码语言:txt复制
1010,
代码语言:txt复制
,10,12,a

format 的具体规则解析

代码语言:python代码运行次数:0复制
# try...except...
s = input("请输入数字1")
while 1:
    try:
        print("请输入数字try")
        s = int(s)
        print("结果",s)
        break
    except ValueError:
        print("请输入数字2")
        s = input("请输入数字3")
代码语言:txt复制
请输入数字1请输入数字try
代码语言:txt复制
结果 44
代码语言:txt复制
请输入数字4
代码语言:python代码运行次数:0复制
# try...except...else... (else只有在try代码块没引发异常情况下执行)

a = input("请输入数字")
while 1:
    try:
        a = int(a)
    except ValueError:
        print("error")
        a = input("请输入数字")
    else:
        print(a)
        break
代码语言:txt复制
请输入数字请输入数字56
代码语言:python代码运行次数:0复制
# try...except...finally... 无论try代码块是否发生异常,finally代码块总会执行
#自定义函数
def caculate(a, b):
    try:
        print(a/b)
    except ZeroDivisionError:
        print("除数不能为0")
    finally:
        print("done")

z = eval(input("请输入一个数"))
caculate(5,z)
代码语言:txt复制
请输入一个数0.5555555555555556
代码语言:txt复制
done
代码语言:python代码运行次数:0复制
def caculate(a, b):
    try:
        print(a/b)
    except ZeroDivisionError:
        print("除数不能为0")
    except TypeError:
        print("类型错误,请输入数字")
    else:
        print("未出现异常")
    finally:
        print("done")

# z = eval(input("请输入一个数"))
# caculate(5,z)
caculate(5,"c")
代码语言:txt复制
类型错误,请输入数字
代码语言:txt复制
done

第四课 组合

代码语言:python代码运行次数:0复制
# 创建列表
ls = ["123", 123, [1,2,3,'stud']]
print(ls)
print(ls[2][3][-1]) # d
type(ls)

x = [1,2,3,4,5,6,1,2,3,1,2,3,4]
print(x.count(4)) # 4出现几次
print(x.index(2)) # 首次出现2的索引值,2必须存在与数组,否则报错

# 数组后面添加元数
x.append(6) #操作,无返回值,不能打印
print(x)

# 插入
x.insert(1,'9')
print(x)

# 数组后面添加多个元数
x.extend(['10','12'])
print(x)

# 删除元数,找到第一个元数删除
x.remove(1)
print(x)

# popp(x) 找到表中第x位删除,默认 -1 位
x.pop(-2)
print(x)

# del x[d]移除表中的第d位元数
del x[2]
print(x)

# 元数反转
x.reverse()
print(x)

# 清除所有元数
x.clear()
print(x)


x = [1,2,3,4,5,6,1,2,3,1,2,3,4]

# sort 排序,reverse=False 升序
x.sort(reverse=True)
print(x)

cc = x.copy()
print(cc)
代码语言:txt复制
['123', 123, [1, 2, 3, 'stud']]
代码语言:txt复制
d
代码语言:txt复制
2
代码语言:txt复制
1
代码语言:txt复制
[1, 2, 3, 4, 5, 6, 1, 2, 3, 1, 2, 3, 4, 6]
代码语言:txt复制
[1, '9', 2, 3, 4, 5, 6, 1, 2, 3, 1, 2, 3, 4, 6]
代码语言:txt复制
[1, '9', 2, 3, 4, 5, 6, 1, 2, 3, 1, 2, 3, 4, 6, '10', '12']
代码语言:txt复制
['9', 2, 3, 4, 5, 6, 1, 2, 3, 1, 2, 3, 4, 6, '10', '12']
代码语言:txt复制
['9', 2, 3, 4, 5, 6, 1, 2, 3, 1, 2, 3, 4, 6, '12']
代码语言:txt复制
['9', 2, 4, 5, 6, 1, 2, 3, 1, 2, 3, 4, 6, '12']
代码语言:txt复制
['12', 6, 4, 3, 2, 1, 3, 2, 1, 6, 5, 4, 2, '9']
代码语言:txt复制
[]
代码语言:txt复制
[6, 5, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1]
代码语言:txt复制
[6, 5, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1]
代码语言:python代码运行次数:0复制
# 列表运算符
#增加元数,返回新列表
x = [1, 2]
print(" 前列表地址:", id(x))
x = x   [4]
print(x) #[1, 2, 4]
print(" 后列表地址:", id(x))

#  =原地操作
x  = [5]
print(x)
print(" =后列表地址:{}n".format(id(x)))

s = [1, 2]
#列表重复,返回新列表
print("*前列表地址:", id(s))
s = s*2
print(s)
print("*后列表地址:", id(s))

# *=原地操作
s *= 2
print(s)
print("*=后列表地址:{}n".format(id(s)))
代码语言:txt复制
 前列表地址: 140293932989088
代码语言:txt复制
[1, 2, 4]
代码语言:txt复制
 后列表地址: 140293934414656
代码语言:txt复制
[1, 2, 4, 5]
代码语言:txt复制
 =后列表地址:140293934414656
代码语言:txt复制
*前列表地址: 140293932989088
代码语言:txt复制
[1, 2, 1, 2]
代码语言:txt复制
*后列表地址: 140293934414576
代码语言:txt复制
[1, 2, 1, 2, 1, 2, 1, 2]
代码语言:txt复制
*=后列表地址:140293934414576
代码语言:python代码运行次数:0复制
# 元组
x = ['a', '牛', 'b', '1',[2023, 'study']]
y = tuple(x)
print(y)
print(y[1])
print(y[4][1][1:3])
z = ('1', '3', 456)
print(z)
代码语言:txt复制
('a', '牛', 'b', '1', [2023, 'study'])
代码语言:txt复制
代码语言:txt复制
t
代码语言:txt复制
('1', '3', 456)
代码语言:python代码运行次数:0复制

0 人点赞