'''2023年9月25日20:39:25'''
# ---------------------魔术命令 是Ipython中的特殊命令 用到再说
# python语法基础
'''
1.使用缩进而不是括号
2.万物皆对象 object
1.注释
2.函数和对象方法调用
每个对象都有附加的函数,就是方法
函数可以使用位置参数,和关键字参数
3.变量和参数传递---p29
4.动态引用,强类型
每个对象都有很明确的类型(不同类型不能加减)
5.属性和方法
对象都有属性(其它存储在对象内部的Python对象)和方法(对象的附属函数可以访问对象的内部数据)
可以用.来测试有哪些方法
6.鸭子类型
你可以通过验证一个对象是否遵循迭代协议,判断它是可迭代的
许多对象,都有 __iter__ 的魔术方法
其他的办法有:iter函数
7.二元运算符和比较运算符
+-*/ ** // & | ^ == != < <= > >= <> is is not
8.可变与不可变对象
1.列表,字典,numpy数组,还有用户自定义的类,都是可变的 # 可以通过xxx[索引]=xx的办法修改值
2.字符串和元组都是不可以改变的
9.标量类型
None:空值
str:字符串UTF-8
bytes:原生ASCII字节
float:浮点数
bool:...
int:...
10.数值类型
int和float
11.字符串
单引号,双引号
字符串是不能改变的,不能直接修改字符串
切片 list[0:5:2] 开始索引,最终索引,步长
反斜杠:转义字符,和r搭配使用
两个字符串合并,会产生新的字符串
12.
'''
# 强类型
def append_elemet(some_list,element):
some_list.append(element)
data = [1,2,3]
# append_elemet(data,4)
# print(data)
a = 4.5
b = 2
# print('a is {0}, b is {1}'.format(type(a), type(b))) # "{}".format(value) format是占位符
# 上面的句子相当于是老版本的写法了,看懂就行
# 新版本的写法是
# print(f'a is {a}, b is {b}')
# 确定对象的类型很重要,可以用isinstance函数来检查是否是后面的类型
c = isinstance(a,int)
# print(c) # a是浮点型,所以返回结果是False
d = isinstance(a,(int,str,float)) # 后面的括号里面的东西叫类型元组
# print(d) # a属于后面的其中的一种,所以d返回True
# e = getattr(c,'kkk') # 不太会用,先这样
f = 'Hello world!'
g = ('a','b')
def isiterable(obj):
try:
iter(obj) # 这句话能运行的话,返回True,也就是它是可迭代对象
return True
except TypeError: # not iterable
return False # 否则,不可迭代的话,返回False
# print(isiterable(f))
def judge(object):
if not isinstance(object,(str,int)) or isiterable(object):
print(list(object))
# isinstance 判断是否是后面的类型
# isiterable 判断是否可迭代
# 能转换成列表的前提是:是可迭代的数据类型
# judge(f) # 字符串可以迭代,所以转换成了列表
'''方法1'''
# import some_module
# result = some_module.f(2)
# pi = some_module.PI
# print(result,pi)
'''方法'''
from some_module import * # or
from some_module import f,g,PI
result = f(3)
pi = PI
g = g(result,pi)
# print(result,pi,g)
'''使用as关键词重命名函数名'''
# 懒得举例了
i = 'Hello world!'
h = list(i)
# print(h)
h[2] = '6' # 不能直接用数字,会出错 或str(6)
j = "".join(h)
# print(j)