总体来说我还是比较欣赏Python的,大体来说感觉Python和node有点相似,大神不要喷我、我说的相似不是语法,而是输入python就可以在终端进行调试,和node一模一样,当然这是在我初学者角度去分析的。
哇塞,python也是弱类型语言,感觉找到组织了、据我目前的知识,JavaScript、PHP、Python都是弱类型语言,就是没有一些条条框框的束缚
优点:可移植性好,可在不同的操作系统上运行,缺点:运行比编译型慢 ,代码效率低,代码修改之后就可以运行不需要编译过程
强类型语言(java,c++)
优点:运行速度快,代码效率高,编译过后不能在修改
缺点:需要编译才出结果,代码要编译才能运行
变量:感觉和js差不多,唯一的区别就是不需要声明变量,而且python的赋值方式特别优化,人性化,简单赋值不说了,看一下类似于js的结构赋值的写法
x,y,z = "aa","bb","cc" x,y,z = "abc" x=y=z="aa"
注释 : 单行#和linux大多数都一样 多行'''code''',三个单引号或三个双引号
js的console.log的替代品 print()代码输出
数据类型
- 字符串(String)
- 数字(Digit) int整型(Integer)、float浮点型、bool布尔型(boolean)、complex复数。
- 列表(List)
- 元组(Tuple)
- 集合(Sets)
- 字典(Dictionary)
- 日期(date)
变量的删除
- del 变量
- del 变量1,变量2,…
先分析简单的,字符串、字符串和js定义差不多,下标也和js一样,不一样的是多了一些方法
myStr = 'abcdefghijklmn'
myStr[0] # a
myStr[-1] # g
myStr[0:3] # abc 第二个参数是尾下标、第一个是下标取值【头,尾)
myStr[-1:-5] # 空 原因: 步长默认是1,从前向后查找左-》右
myStr[-5:-1] # jklm # 只有头下标,没有尾下标,默认输出从头下标到结尾所有
myStr[0:] # abcdefghijklmn
# 步长,默认为1
myStr[0::1] # abcdefghijklmn
myStr[0::2] # acegikm 步长为2
# 我想把字符串的值 倒着输出
myStr[-1::-1] # nmlkjihgfedcba 逆序输出
myStr[::-1] # nmlkjihgfedcba 逆序输出
@字符串只能查看或重新赋值,不能修改某一个下标对应的值
# 续行符 \,也可以转义
myStr4 = "abc\
def"
myStr2 = 'abc\"def' # 转义符
注意:
- 字符串中索引值对应的某个值不能被修改
- 字符串可以使用+进行连接
- *代表字符串重复的n次
字符串的转义字符
\" | 转义双引号 | \' | 转义单引号 |
\\ | 转义本身 | \ | 续行符 |
\t | 水平制表符 | | |
print的一些格式化 format,{}为占位符
print("HELLO{}!最动听的’{}’语言".format('world', "计算机")) # 其中{} 占位符 HELLOworld!最动听的‘计算机’语言
# %s 字符串占位符 %d 整数占位符 %f 浮点数占位符
print("我叫%s 我今年%d岁了 我的成绩是%.2f分" %('张三', 18, 12.2)) # 我叫张三 我今年18岁了 我的成绩是12.20分
然后就是Number了(常用函数)
函数名 | 函数说明 |
pow(x,y) | x的y次方 |
round(x,n) | x浮点数的四舍五入,n为保留小数的位数 |
max(参数1,参数2,参数3,..) | 返回给定参数的最大值,参数可为序列(序列:能被for循环的) |
min(参数1,参数2,参数3,..) | 返回给定参数的最小值,参数可为序列(能被for循环的) |
math.ceil(float) 需要math包 imprt math | 进一取整数(向上取整) |
math.floor(float) | 舍一取整(向下取整) |
随机数(需要import random包)下面函数之前需要加random
random.choice(seq) | 返回一个列表,元组或者字符串的随机项 |
randrange(start,end,step) | start:范围内开始值包含本身; end:结束值,不包含本身; step:指定递增的基数 返回指定范围内的随机数 |
range(start,end,step) | start:范围内开始值包含本身; end:结束值,不包含本身; step:指定递增的基数 返回一定范围的序列 |
shuffle(list) | 返回随机打乱的列表(只有列表能被打乱),作用于列表本身 |
randint(start,end) | 返回随机整数 包含start 和end本身 |
字符串常用的函数
函数名 | 函数说明 |
str.isnumeric() | 判断是否是一个数字字符串(只能是一个纯数字字符串,不能包含其他字符) |
str.join( seq) | 以指定字符串str作为分隔符,在合并成一个新的字符串返回,不改变原来seq |
center(width, fillchar) | 以原始字符串作为中心,使用fillchar填充到固定的宽度,填充结果如果不够width位,用fillchar填充到width位,如果字符串本身超过width位数,不用填充 |
ljust(width,fillchar) | 返回一个原字符串左对齐,并使用fillchar填充到固定的宽度 |
rjust(width,fillchar) | 返回一个原字符串右对齐,并使用fillchar填充到固定的宽度 |
lstrip()/rstrip()/strip() | 去除字符串的左右两侧的指定字符或者默认的去除空白字符(只去除左右两次的字符) |
chr() | 将一个整数(ascii码值)转换为对应的字符 |
ord() | 将一个字符返回一个整数(ascii码值) |
replace(old, new[,max]),其中max为可选参数,替换次数 | 在一个字符串中把某一个字符替换成另外的一个字符,max不写,替换对应的全部,否则替换max次 |
find(str,beg=0) | 查找某个字符的出现位置,默认beg从第一位(0)查找,返回索引值,查找失败返回-1 |
rfind(str) | 返回字符串某个字符出现的位置(从右向左查询),返回索引值,查找失败返回-1 |
split(seq[,maxsplit]) | 用某个字符将当前的字符串进行拆分,返回列表 |
upper() | 把字符串中的小写转大写字母 |
lower() | 把字符串中的大写转小写字母 |
splitlines([True]) | 以换行符进行拆分,返回列表,参数 True可选,是否保留换行符,默认为Falses |