知识点"/>
python基础学习小知识点
文章目录
- 前言
- python基本语法
- 一.数据和符号问题
- 1.数据类型问题
- 2.运算符问题
- 3.输入与输出问题
- 4.引号问题
- 5.进制转换问题
- 6.位运算问题
- 二.语句问题
- 1.条件语句
- 2.循环语句
- 1.while 循环
- 2.for循环
- 3.break语句
- 4. continue语句
- 5.pass语句
- 三.函数与模块问题
- 1.函数问题
- ★匿名函数
- 2.参数问题
- 1.可更改(mutable)与不可更改(immutable)对象
- 2.参数
- 3.模块问题(Module)
- 四.字符串问题
- 1.切片问题
- 2.字符串常见操作
- 总结
前言
新手上路学习python,真的是(白中白)QAQ,emm,没啥好说的,加油吧!
python基本语法
一.数据和符号问题
1.数据类型问题
1.python的数据类型虽然和之前所学的python有相似之处,但是也有许多差异。命名规则一样,但是在定义变量的时候不用写上变量名。(字母,数字,下划线;数字和下划线不能放在开头)
2.驼峰式命名:getNameByLine(大驼峰),get_name_by_line(小驼峰)
3.数据类型
Number(数字) | int,long,float,complex |
---|---|
Bool(布尔类型) | True,False |
String(字符串) | |
List(列表) | |
Tuple(元组) | |
Dictionary(字典) |
4.给定数据,编译器自动换成该类型。可以用type()
函数观察该变量式什么类型
5.强制性类型转换:类型名+(变量)
,转化成bool类型中:0,"",’’,None,(),{},[]都是false,其他为true
int()
:将一个数值或字符串转换成整数,可以指定进制。float()
:将一个字符串转换成浮点数。str()
:将指定的对象转换成字符串形式,可以指定编码。chr()
:将整数转换成该编码对应的字符串(一个字符)。ord()
:将字符串(一个字符)转换成对应的编码(整数)。
2.运算符问题
加减就不用多说
运算符 | 描述 |
---|---|
/ | 除以 |
// | 取整除(向下取整) |
** | 多少次幂 |
[] [:] | 下标,切片 |
** | 指数 |
~ + - | 按位取反, 正负号 |
* / % // | 乘,除,模,整除 |
+ - | 加,减 |
>> << | 右移,左移(二进制下的左右移) |
& | 按位与 |
^ | | 按位异或,按位或 |
<= < > >= | 小于等于,小于,大于,大于等于 |
== != | 等于,不等于 |
is is not | 身份运算符(比较地址部分) |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
= += -= *= /= %= //= **= &= = ^= >>= <<= |
3.输入与输出问题
1.输入: input()
,已经规定好是string类型了(括号里面可以加提示语)
2.输出:print()
,输出自己给定内容用单双引号都可
注意:
1.输出多个变量的值的时候逗号隔开,默认输出空格隔开。不用空格隔开而用其他符号隔开的时候在尾部加上sep='要用的符号'
。
2.int型的值可以不用变量直接输出(00000输出就是0)。
3.输出默认在结尾有一个换行符,在结尾加上end=""
就不会换行啦
4.自定义输出内容用单引号引用起来后加**”+“**再连接变量就没有空格
5.格式符号:
格式符号 | 转换 |
---|---|
%% | 输出% |
%s | 字符串 |
%d | 有符号十进制整数 |
%f | 浮点数 |
%c | 字符 |
%u | 无符号十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数(小写字母0x) |
%X | 十六进制整数(大写字母0X) |
%e | 科学计数法(小写e) |
%E | 科学计数法(大写E) |
%g | %f和%e的简写 |
%G | %f和%E的简写 |
6.格式化输出
print('我喜欢吃'+much+'蛋糕和'+many+'糖果')
print('我喜欢吃%d蛋糕和%d糖果'%(much,many))
4.引号问题
1.单引号在输出中使用为给定内容输出;在字符串中使用为定义字符串赋值。
2.双引号可用于字符串赋值(和单引号的赋值作用一样)。
3.三引号为多行注释(井号**#**为单行注释),也可用于字符串赋值,和单双引号一样。
这个是为了当单双引号交叉使用时有区别,三引号保留格式
5.进制转换问题
函数 | 进制转换 |
---|---|
bin() | 十进制转二进制 |
oct() | 十进制转八进制 |
hex() | 十进制转十六进制 |
其它进制转十进制
i="10"#需要转成十进制的数
j=int(i,2)#2进制转
j=int(i,8)#8进制转
j=int(i,16)#16进制转
6.位运算问题
n1=0b10110#0b提示为二进制数值
n2=0b10010
print(n1&n2)#与::输出为2,其按照每个位置的真假相加,这里只有第1,4位同为真,就为2)
print(n1|n2)#或::输出为3,有三个位置的有真值
print(n1^n2)#亦或::输出为4,相同为假,不同为真,只有第三位不同,对应的二进制数值为00100-->4(十进制
)
print(~n1)#取反::输出为-23,这里涉及到源码,反码,补码问题
'''
n1的源码:0001 0110
n1的反码:1110 1001
n1的补码:1110 1010(反码的基础上加1)
这里-23的二进制表示就是1110 1010
然而根据这样看来,原十进制数字为22,取反后得到-23,这里就要源自补码了,记住取反后得到的数字比原数字小1就好了
'''
#最高位是1的是负数,0是正数
print(n1<<2)#左移::输出为92,二进制数为1011000,简单来说就是将原来的数字乘2的n次方,n为移动的位数
print(n1>>2)#右移::输出为5,二进制数为101,简单来说就是将原来的数字除以2的n次方,n为移动的位数,不能整除就保留整数部分
当位数不对齐时,补零对齐
二.语句问题
1.条件语句
if 判断条件1:执行语句1……
elif 判断条件2:执行语句2……
elif 判断条件3:执行语句3……
else:执行语句4……
#三元运算符(if-else语句的简写形式)
a=10
b=20
c=a if a>b else b
2.循环语句
1.while 循环
while 判断条件(condition):#这里while 1:为死循环哦~执行语句(statements)……
else:(不满足循环条件时)执行语句(statements)……
2.for循环
for iterating_var in sequence:statements(s)
举个例子:
sum = 0
for x in range(101):sum += x
print(sum)
这里的range(101)
是指从1到100,没有101
range(101)
:可以用来产生0到100范围的整数,需要注意的是取不到101。range(1, 101)
:可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间。range(1, 101, 2)
:可以用来产生1到100的奇数,其中2是步长,即每次数值递增的值。range(100, 0, -2)
:可以用来产生100到1的偶数,其中-2是步长,即每次数字递减的值。
3.break语句
★break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
★break语句用在while和for循环中。
★如果使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。
4. continue语句
★continue语句跳出本次循环,而break跳出整个循环。
★continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
★continue语句用在while和for循环中
5.pass语句
★pass 是空语句,是为了保持程序结构的完整性。
★pass不做任何事情,一般用做占位语句。
三.函数与模块问题
1.函数问题
定义一个由自己想要功能的函数的规则:
-
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
-
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
-
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
-
函数内容以冒号起始,并且缩进。
-
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
-
默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。
def test(num):#判断奇偶数的函数result=0if num%2==0:result=1return resultm=int(input("请输入一个数字:")) n=int(test(m)) if n==1:print("你输入的是一个偶数") else:print("你输入的是一个奇数")
★匿名函数
-
lambda只是一个表达式,函数体比def简单很多。
-
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
-
lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
-
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
语法:
lambda [arg1 [,arg2,.....argn]]:expression
举个栗子:
sum = lambda arg1, arg2: arg1 + arg2# 调用sum函数 print "相加后的值为 : ", sum( 10, 20 ) print "相加后的值为 : ", sum( 20, 20 )
运行结果:
相加后的值为 : 30 相加后的值为 : 40
2.参数问题
这里引入对象的概念,简单来说对象就是python用来储存数据的模型。python的对象有三个特性:身份、类型、值(这里就不进行展开啦!
1.可更改(mutable)与不可更改(immutable)对象
在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
- 不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。
- 可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。
python 函数的参数传递:
- 不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
- 可变类型:类似 c++ 的引用传递,如:列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响
python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。(这里突然间想到了静态变量问题,python是动态语言,并没有完全静态的变量)
2.参数
- 默认参数:调用函数时,默认参数的值如果没有传入,则被认为是默认值。在函数形参列表中就已经有了赋值。
- 不定长参数:在实际操作过程中可能会需要函数从处理比当初声明时更多的参数,这些参数会在变量名前加上*,就叫做不定长参数。
3.模块问题(Module)
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句,简单来说其类似于C/C++头文件。
这里的模块可以用来管理函数,但是遇到同名函数时只保留最后一个函数的函数体实现,不存在函数重载问题。如果要避免,就要将两个函数存到不同的模块中就好了。
import语法:
import module1[, module2[,... moduleN]]
模块名.函数名
这时可以运用指定模块中的函数
from…import语法:
from modulename import 函数名:
只引入与指定函数有关的项目到当前命名空间
from…import 语句*
from modulename import *
一次性引入模块内的所有项目到当前命名空间
四.字符串问题
1.切片问题
用于字符串的截取,对于python输入输出使用input
和print
,input
默认输入的都是字符串。
对于字符串的索引问题,与C/C++有一定的差别。
index(C/C++):0~len(str)-1
index(python):0~len(str)-1或者:-len(str)~-1或者交叉使用:当使用第二种方式要取到最后一个字符时,就用-len(str)~len(str)作为范围
切片可用于字符串和列表
运用格式:
字符串变量[start:end]
start=0默认从第一个字符开始
end=0默认取到最后一位
**对于截取区间,遵循取头不取尾的原则**
当需要步长时:字符串变量[start:end:step]
*每step个字符取一个
*step为正则正向取,为负则反向取,如果要输出,也是倒着输出,这时需要注意起始位置
举个栗子:
str='ABCDEFG'
print(str)#输出整串
print(str[0])#输出首个字符
print(str[0:5])#输出前五个字符
print(str[0:8])#输出全部字符
print(str[-7:-1])#输出除最后一个字符的全部字符
print(str[-7:7])#输出全部字符
print(str[-7:8])#输出全部字符
print(str[0:8:2])#隔两个输出一个字符
print(str[8:0:2])#没有字符可以输出
print(str[8:0:-2])#反向隔两个输出一个字符
运行结果:
ABCDEFG
A
ABCDE
ABCDEFG
ABCDEF
ABCDEFG
ABCDEFG
ACEGGEC
2.字符串常见操作
- 获取长度:len
- 查找内容:find,index,rfind,rindex
- 判断:startswith,endswith,isalpha,isdigit,isalnum,isspace,isidentifier,islower,isupper
- 计算出现次数:count
- 替换内容:replace
- 切割字符串:split,rsplit,splitlines,partition,rpartition
- 修改大小写:capitalize,title,upper,lower
- 空格处理:ljust,rjust,center,strip,lstrip,rstrip
- 字符串拼接:join
- 输出指定内容:format
- 将字典中的参数传进字符串:format_map
python字符串处理函数都是不会改变原有字符串的函数,只会返回一个临时产生的字符串,出函数之后会自动销毁。
具体操作见另一篇文章!
上述字符串常见操作详细实现戳这里
总结
学海无涯,每天学习一点点,每天更新一点点!
更多推荐
python基础学习小知识点
发布评论