Python基础

目录

小技巧

一、基本概念

保留字

标识符命名规则

变量与常量

数据类型

运算符

二、基本语句

一、print函数

二、input函数 

三、eval函数

三、程序

一、if语句

二、多条件连接——match

三、遍历循环for

四、无限循环while

五、 break and continue

六、空语句 pass

七、例子


 

Python是一种解释型的编程语言。

小技巧

  • 选定几行代码,按住Ctrl+/ 可以将其全部注释掉。也可以反注释。只对单行注释有效

一、基本概念

  • Python语句不需要用分号隔开。
  • Python不需要显示声明数据类型。
  • Python中文文档声明注释,放在第一行用于指定Python文件的编码方式:#coding=utf-8等
  • Python中用引号表示字符串,如果没有引号比如单独的a,单独的word.txt,这些必须是变量等,不然就不行,word.txt违反命名规则也不行。

  • Python的语法是用换行符,缩进符区分的。也就是说不同语句之间用换行符区分,同一个语句的格式用缩进符区别。
C++Python
单行注释//单行注释#单行注释
多行注释/*多行注释*/

"""多行注释"""

'''多行注释'''

本质上是一个字符串,你也

可以用'单行注释',区别在于三引号是可以多行的

变量定义int a=50;//显示指明变量类型a=50#不需要显示指明,自动识别
语句区分

分号:

int a=50;printf("%d",a);

换行符:(换行自动区分)

a=50

print(a)

分号:(用于区分同一行的语句)

a=50;print(a)

字符与字符串

字符:'a'

字符串:“Love”

字符:“a” or 'a' or

"""a""" or '''a'''

字符串:"a" or 'a' or

"""a""" or '''a'''

&&

and

||or
!not

保留字

严格区分大小写。

4baf7bf98b614e61878121d911714f58.png

16dd2e2ec0f148f184725c28392036d3.png

import keyword
print(keyword.kwlist)
print(len(keyword.kwlist))

标识符命名规则

c6e1881cbe064751b4b63e8fed443b13.png

ed6c8c1d19fa4b13854f3bffe227c20f.png

变量与常量

Python是动态语言,同一个变量标识符的类型是可以变化的。

Python的变量都是指针类型!这样也可以说明为什么类型可以变,实际上是指向的值可以变。

变量的类型与赋值给它的值的类型有关。

可以用内置函数type()来查看变量内型是什么。

luck_number=8
print(type(luck_number))#<class 'int'>
luck_number='8888'
print(type(luck_number))#<class 'str'>

Python允许不同变量指向同一个值,可以用内置函数id()来查看指向的内存地址

no=number=1024
print(id(no),id(number))#输出相同的内存地址

Python中的常量实际是一个约定俗成的东西,标识符名字全为大写字符的变量被称为常量,约定俗成它不可以被更改(虽然它可以,但是不建议,因为我们把它当做常量了~)

pi=3.1415926#定义了一个变量
PI=3.1415926#定义了一个常量

数据类型

一、整数类型

4aa805dd4f9644be8c6a22fec3742dd7.png

a=0b10000000;b=128;c=0O200;d=0x80
print(a,b,c,d)#128 128 128 128  #默认以十进制形式输出

在C语言中,八进制只需在前面加一个0

int a=0b10000000,b=128,=0200,d=0x80;
printf("%d,%d,%d,%d",a,b,c,d);//128,128,128,128
printf("%d,%x,%o",b,b,b);//128,80,200      //无法直接以二进制形式输出

二、浮点类型

可以用科学计数法表示,e/E后面表示乘以10的几次方,十进制

number=123e3 #表示的是123000
number=1.55e2#表示的是155

三、复数

在python的数值中用j表示虚部

例如x=123+456j 等价于 数学意义上的 123+456i。

变量.imag表示虚数部分,变量.real表示实数部分,他们都默认是float型

a=123+456j
e=1
b=a.real
c=a.imag
print(a+e,b,c)#(124+456j) 123.0 456.0

四、字符串类型

Python没有字符类型!

①多行字符串

info="""收件人:Yorelee
发货人:Sweet_Mary
地址:China
"""
print(info)#输出的是三行

②转义字符

367f171faeeb453698aaa9ebebc382c0.png

注意这都是字符,都需要写成'\n' 或 "\n"才有效

一个制表位八个字符,'\t'的效果根据当前制表位数量来显示,如果制表位没填满那就空出没填满的空格。

原子符加在字符串前面,不能加在变量前面,它可以使得转义字符失效,原样输出。

print(r"北京\"欢\t迎\n你")#输出:北京\"欢\t迎\n你
print("北京\"欢\t迎\n你")#输出:北京"欢  迎
                               你

字符串索引和切片

索引可以使用在变量上,也可以使用在常量字符串上

f5f6e1cce5e841e3899858cc7744f4c7.png

c65f78f40c754361bf14d853ba44cfba.png

s="Yorelee love Sweet_Mary"
print(s[0],s[-23])#索引
#输出Y Y
print("Yorelee love Sweet_Mary"[0])
#输出Y
print(s[0:7])#切片:从0号索引开始到7号索引,不包含7号
#输出Yorelee
print("Yorelee love Sweet_Mary"[1:7])
#输出orelee
print(s[:7])#默认从0开始
#输出Yorelee
print(s[13:])#从13开始切到结尾
#输出Sweet_Mary
print(s[13:-1])#从13号开始到-1号的切片
#输出Sweet_Mar

④字符串常用操作

其操作数可以是变量也可以是常量字符串。

8895c40de22d4be68d76a4aa85a407a9.png

y="爱你"*3
x="爱"+"你"
print(y*2)#输出:爱你爱你爱你爱你爱你爱你
print("爱你"*6)#输出:爱你爱你爱你爱你爱你爱你
print(x)#输出:爱你
print("我" in x)#输出:False

五、布尔类型

5d9253bc851c48a9b8354fa921ca8a5c.png

print(1+True)#2

Python中一切皆对象,可以用内置函数bool()来测试其布尔值

非0整数的布尔值都是True

非空字符串的布尔值都是True

六、类型转换函数

92053a852ed54f89b78bed0d5e201b6b.png

①除法(/),自动将结果转换成浮点类型

②float类型转int类型,只截取整数,int(-3.9)值是-3

③将int类型转float类型,float(3)值是3.0

④将str类型转int类型,只有纯数字串能转换,int("500")的值是500

只能一次转换,如int("5.14")报错。

⑤将str类型转float类型,只能包含一个小数点的纯数字串,float(".15")的值是0.15

⑥chr()和ord()是相反的操作,ord()输入类型是一个字符,转成其Unicode编码的值

ord('a')的值是97,chr(97)的值是'a'

⑦hex()、oct()、bin()转换结果是一个字符串类型

hex(7)的值是"0x7"

oct(7)的值是"0o7"

bin(7)的值是"0b111"

运算符

一、算术运算符

18e3a3b00e654b8ab2eb0233824f901e.png1238b47b0eb246369b1f68c36c72cfbd.png

这里和C++不一样的是

除法(/)、整除(//)、幂运算(**)

注意:
s='1'
num=0
num+=s-'0' 这是不合法的,因为s是字符串,'0'也是字符串,num是整型且字符串没有减法。
正确的是:num+=int(s)
print("整除:",10//3)#输出:3
print("幂运算:",10**3)#输出:1000
print("除法:",10/3)#输出3.333333333333

二、赋值运算符

e247ca81b68e4301bc954df9f96c195e.png

链式赋值:

a=b=c=100

系列解包赋值:

a,b=10,20 #等价于a=10,b=20

a,b=b,a #原b的值赋值给a,原b的值赋值给a

字符串分解赋值:

a,b,c,d='room '  #相当于a='r';b='o';c='o';d='m';

a,b,c=input().split() #默认为所有的空字符,包括空格、换行(\n)、制表符(\t)分割

a,b,c=input().split(',',num)#num表示有几个分隔符,以逗号为分割,num可以省略

#注意,split是对字符串进行分割,分割后返回一个列表类型

三、比较运算符

18c4bd47093c46d4b88cec4b76f76169.png

和C语言里面一样诶。

不过python支持这样写:0<score<100

四、逻辑运算符

a7c4b7c5a09f479cafa27263e3a297bf.png

print(not 3>2 and 2<3)#输出:True
print(30>3 or 10/0)#输出:True

not的优先级高于and和or;and 或 or的表达式从左到右看,左边出结果直接出结果右侧不会再计算。

五、位运算符

5db121685ea4467f90ce7bfed8828f4c.png

8f3fd4990bf741cb8a110528e83c4565.png

5dff64667663432ab0b2fb27004434ce.png

111d35af459e4f98956ff3240746d71d.png

fb25ca6362274100bb121590e84b8f8f.png

和C里面是一样的诶。

&、|、^是二元运算符

~是一元运算符

print(1&2)#0
print(1|2)#3
print(1^2)#3
print(~1)#-2

六、优先级

ad61e279adfa417da9df2bb6127e61a8.png

二、基本语句

一、print函数

print()函数默认输出一个换行符。

多内容输出,默认有一个空格。

空print()作用是打印换行符,

①输出数值

print(50)

②输出变量值

a=50
print(a)

③输出字符串

print('Love forever')
print("Love forever")
print('''Love forever''')
print("""Love forever""")
#三个单引号 和 三个双引号可以不用换行符输出多行字符串
#但是在单引号里面不能直接用单引号,可以用双引号,要用单引号需要用转义字符\,双引号里也一样
如:
print('''Love

forever''')
"""输出示例:
Love

forever

"""
 

④输出表达式

a=50
b=100
print(a*b) #输出5000

⑤多内容输出

a=50
b=100
print(a,b,'Love forever')
"""输出示例:
50 100 Love forever

"""

⑥输出ASCII码对应字符(使用chr())

print(chr(98)) #将98转换成ASCII表对应的字符,并输出

⑦输出到文件

fp=open('fp.txt','w')
print('Love forever with you',file=fp)
fp.write('Love forever with you')
fp.close()

fp是文件对象,fp.txt是要写入的文件,w表示可写方式(如果文件不存在则创建文件,如果文件存在则清空文件再写入)

可以直接调用fp的write()函数写入,也可以使用print()直接写入,file指明文件。

⑧复杂的输出操作

+是连接符,sep分隔符,end输出结束符,file输出到的文件。它们需要放到输出内容的末尾来修饰。

sep默认为一个空格,end默认为'\n',file默认为None,+只能连接字符串

连接符+,可以连接变量和常量 如:'My name is'+name#name是一个字符串变量类型

print('Love'+' '+'U','U',sep=' ',end='')
"""+号连接符将表示输出时直接将俩字符串连接起来输出, 而逗号实际上用sep分隔符表示
Love U U
"""

⑨Python也有格式控制符

print("我爱%s"%"Sweet_Mary")#输出:我爱Sweet_Mary
print("%s的年龄是%d"%("爸爸",40))#输出:爸爸的年龄是40

和C语言的格式控制符是一样的,在后面用%()分别参数列表,只有一个参数可以不用括号

二、input函数 

返回值永远是字符串类型。可以使用强制类型转换转换成其他类型。

比如转换成整型:

x=input()

x=int(x) #但是一定要确保x中全是数字,不然无法转换。

x=input('提示文字')

在键盘中输入的内容保存至字符串变量x中。input的提示文字是用来提示输入的。

for i in range(5):
    x=input(f'请输入第{i}位的值')#这里的i转换成变量的值~

print()中也可以这样使用。

for i in range(5):
    x=print(f'第{i}位')#这里的i转换成变量的值~

提高:

lst=list(map(int,input().split())) 
#输入若干个整数,使用split()将字符串分割后 存入一个列表中
#使用map将列表中的数用int()转换,并返回一个迭代器
#使用list()转为列表
for i in lst:
    print(i)


s=input().split('#') #输入一个用#代表结束的学生信息:Yorelee#男#21#100
print(type(s))       #<class 'list'>
for i in range(len(s)):
    print(s[i],end=' ')
#Yorelee 男 21 100 

三、eval函数

eval是去掉字符串引号,执行里面的操作作为返回值。其本质就是脱掉其左右字符串,把没有引号的部分拿出来,这部分可能是变量,可能是表达式等等(如果脱掉引号无意义,那就会报错)

eval函数通常与input函数一起使用,将input函数的字符串类型返回值去掉其引号

x="""3.14+3"""
print(eval(x))#输出:6.140000000000001
age=eval(input('请输入您的年龄:'))#键入10+11;'10+11'直接被替换为10+11
print(age)#输出:21
print(eval('age'))#在这个位置脱掉'age'的引号,相当于这个位置的eval('age')直接被替换为age,输出:21

三、程序

一、if语句

一、单分支

if 表达式:
   成功语句1
   成功语句2

"""if+空格+表达式+冒号
      语句
"""
#用缩进表示结束, 空格数量不唯一,表达式是布尔类型返回值,Python中一切皆对象,一切皆有布尔值

当且仅当,语句块只有一句时,语句可以直接写在冒号后面

a=2;b=2
if a>b:print(a)
if a<b:print(b)

示例:

name="Sweet_Marry"
age=20
if name[:5]=="Sweet" and age>18 and age and not 0 and name:
    print(name)
    print("Yorelee")
'''
Sweet_Marry
Yorelee
'''
#字符串只有空串 其布尔值才是False

二、双分支

if 表达式:
    语句
else:
    语句
"""
    else和if对齐
    语句也可以是多条,用缩进来判断结束,缩进必须严格,一条的时候一样可以同行
"""

if单条语句赋值

值1 if 表达式 else 值2
#当表达式是对的,返回值1,否则返回值2

dab906eaa6814bc29ad3cacebcf5975d.png

三、多分支

if 表达式:
    语句
elif 表达式:
    语句
elif 表达式:
    语句
elif 表达式:
    语句
····
else:
    语句
"""
    else、elif和if对齐
    语句也可以是多条,用缩进来判断结束,缩进必须严格,一条的时候一样可以同行
    else是非必要的
"""

 四、嵌套if

if a>b:
    print(b)
else:
    print(b)
    if(b<a):
        print(a+b)
    else:
        print(a-b)

#缩进特别严格

二、多条件连接——match

match 值:
    case 值1:
        语句
    case 值2:
        语句
    ····
    case _: #相当于default,也可以没有
        语句

'''
这里不需要break,直接每一case模块结束之后 直接跳出了了
这里的值可以是基本数据类型,组合数据类型,不同的值可以是不同数据类型。
'''
switch(值){//类比C语言的switch
    case 值1:
        语句
        break;
    case 值2:
        语句
        break;
    case 值2:
        语句
        break;
    default:
        
}

三、遍历循环for

for 循环变量 in 遍历对象:
    语句块

可以遍历文件、字符串、range()函数等

①遍历字符串

for i in 'hello':
    print(i)
#每次取出一个字符赋值给i
#等价于:
s='hello'
for i in s:
    print(i)

②遍历range()函数的整数序列

for i in range(1,11):
    print(i)#1~10
#range(n,m)包含n不包含m的整数序列,
#每次取出一个整数赋值给i
for i in range(10):
    print(i) #0~9
#range(n)包含0,不包含n的整数序列,一共n个整数

例如:找出100~999的水仙花数

for i in range(100,1000):  #别忘了加冒号
    x=i%10
    y=i//10%10   #注意Python的整除!
    z=i//100
    if i==x**3+y**3+z**3:   #直接用幂运算!
        print("%d是水仙花数"%(i))

③正常结束(全满执行完毕),可以用else执行一条语句

for 循环变量 in 遍历对象:
    语句块1
else:
    语句块2
#只有当遍历对象全都被遍历之后才会执行else之中的内容。中间被break不会执行

④分解赋值遍历(组合数据类型)

s0 = tuple([1, 2, 3, 4])
s1 = ['a', 'b', 'c', 'd']
s2 = {1: 'dog', 2: 'cat'}
s3 = {1, 2, 3, 4}
for i, j in zip(s0, s1):
    print(i, j, end='\t')
print()
for i, j in s2.items():
    print(i, j, end='\t')
print()
for i, j in zip(s3, s1): #集合是无序的
    print(i, j, end='\t')
print()
for i, j in enumerate(s1):
    print(i, j, end='\t')
print()

'''
1 a	2 b	3 c	4 d	
1 dog	2 cat	
1 a	2 b	3 c	4 d	
0 a	1 b	2 c	3 d	
'''

变量并不是临时的:

for i in range(1,6):
    j=i
print(j) #输出:5

四、无限循环while

while 表达式:
    语句块
#同样可以使用else,这个else也是while正常判断条件结束的时候执行,如果中间break就不会执行
while 表达式:
    语句块1
else:
    语句块2

正常结束用else的一个好处是,有的时候我们用一个标记flag=True,然后循环判断条件是否成立,不成立就flag=False,然后break,之后我们判断flag是True的时候会执行语句。我们可以减少这个flag,变成:

while i<100:
    if 条件:
        break
else:
    成功语句
#等价于:
flag=True
while i<100:
    if 条件:
        flag=False
        break
if flag:
    成功语句

五、 break and continue

①break:退出循环结构

②continue:跳过本次循环,注意更改while的条件

六、空语句 pass

09d17e26177d4495ac13600a12b07edf.png

没啥作用,占位符。

for i in range(1,10):
    pass
if True:
    pass

七、例子

        一、打印等腰三角形

for i in range(1,6):
    for j in range(1,10):
        if(6-i<=j<=4+i):
            print('*',end='')
        else:
            print(' ',end='')
    print()
'''
for i in range(1,6):
    for j in range(1,6-i):
        print(' ',end='')
    for j in range(1,i*2):
        print('*',end='')
    print()

'''

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yorelee.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值