Python 自主学习 Day1(你一定能开明白的Py新手向教程,一起学习鸭)

Python 自学Day 1

8.25 库米云微实习Day2

Python基础

一、标识符
1、首字符为 _(下划线) 或 字母
2、py 对大小写是敏感的

二、保留字
Py的标准库中提供了一个keyword 模块,可以输出当前版本的所有关键字

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

三、注释
1、单行注释

#print("hello world")

2、多行注释

'''
print("hello world")
print("hello world")
'''
#或者
"""
print("hello world")
print("hello world")
"""

BlingBling小技巧 1
输出一个函数中的注释信息

def a():
"""这是注释鸭~~~"""
pass
print(a.__doc__)

输出:

这是注释鸭~~~

经过本人的测试发现只能输出单引号或者双引号中的注释,#是不行哒

四、行与缩进
Py一大特点(sang xin bing kuang)就是使用缩进来表示代码块,从而不用大括号 { } 来表示代码块。以写出py独有的优雅、大方、简洁、美观、的代码。C++选手表示接受不了
缩进的空格数是可以变的,但是属于相同代码块的语句必须包含相同的缩进格数。

if True
   print("Right")
else 
   print ("Wrong")

但如果缩进不一致,就会导致错误

if True
   print("Right")
else 
   print ("Wrong")
 print("hello world") #缩进不一致,会导致运行错误

我已经隐约感觉到这将会是我将来最常出错的地方23333

五、多行语句
据说Py通常是一行写完一句代码,那么有人就会问了:
代码太长了怎么办鸭~
身为一个经常被长度过长困扰的男子, 可以用这样的办法
反斜杠(\)来实现分行

num = num_first+ \
      num_second+ \
      num_third

如果语句是写在 [ ] { } ( ) 中的话,就不用 \ 辣

total=['num_one','num_two'
       'num_three','num_four']

六、空行
因为在写Py代码的时候,代码块之间的分隔不像有 { } 的语言一样容易区分,所以我们在写函数,类中的方法的时候,就尽量在不同函数或方法之间敲一行空行,便于我们自己区分代码块,也同时方便了我们后续的修改和重构。
当然,如果不加入空行,Py解释器也不会认为错误,但是如果加了空行,空行也自然成了代码的一部分。

七、单行代码多条语句
如何在同一行中写多个语句呢,可以在语句中加分号隔开就行了。当让我本人不建议这么写,太不美观了说。
追求代码行数最少的选手绕道

import sys; x = 'yujia666'; sys.stdout.write(x + '\n')

会输出:

yujia666

上面一些比较零碎的点大概说完了,下面开始具体部分具体学习辣~~

Python运算符

因为运算符大部分语言都是通用的,我这里只列出Py与C++ 运算符不同的、或者新型的运算符

一、算术运算符
下面的例子 :a = 10 b = 25

  • / (除以) :这里与整除不同,这里的 / 就是除以 例:b / a = 2.5
  • //(取整除):向下取整 例:b // a =2
  • ** (幂运算):x**y 返回 x的y次幂
  • ’+‘ 、’ - ‘ 、’ * ‘ 、’ % ‘ 与C++ 同
a , b = 11 , 2
print(a/b)
print(a//b)
print(a**b)

输出:

5.5
5
121

二、比较运算符
这里没啥新东西

  • ‘==’ 等于
  • ‘!=’ 不等于
  • ‘>’ 大于
  • ‘<’ 小于
  • ‘>=’ 大于等于
  • ‘<=’ 小于等于

三、赋值运算符

运算符功能栗子鸭
=简单的赋值运算符b=a
+=加法赋值运算符b+=a 等价于 b=b+a
-=减法赋值运算符b-=a 等价于 b=b-a
*=乘法赋值运算符b*=a 等价于 b=b*a
/=除法赋值运算符b/=a 等价于 b=b/a
%=取模赋值运算符b%a 等价于 b=b%a
**=幂赋值运算符b**=a 等价于 b=b**a
//=取整赋值运算符b//=a 等价于 b=b//a
:=海象运算符(Python 3.8 版本新增运算符)用于在表达式内部为变量赋值官方给出的例子:if(n:=len(a)>10): print(f"List is too long ({n} elements, expected <= 10)")

BlingBling 小技巧2
这里简单说一下海象运算符,我目前的理解是,在Py中,如果要在表达式内做赋值运算的话,就需要用到这个海象运算符。官方给出的解释还有一条:可以避免函数调用多次,来节省运算时间。那我们就看一哈官方的例子

if(n:=len(a)>10):
  print(f"List is too long ({n} elements, expected <= 10)")

官方的意思就是说,如果你不这么写的话,那就是这样:

if(len(a)>10):
  print(f"List is too long ({len(a)} elements, expected <= 10)")

这样写的话 len() 函数是不是就被执行了两遍?所以就慢了23333
你品,你细品
想要了解更多内容去看这篇文章咯:
传送门 : 海象运算符详细内容
四、位运算符
这个也都是一样滴

运算符描述
&按位与:同1为1,否则为0
I按位或:有1为1,全0为0
^按位异或:不同为1,相同为0
~按位取反;0变1,1变0
<<左移:运算数的二进制位所有向左移动一位,高位舍弃,低位补0
>>右移:运算数的二进制位所有向右移动一位,低位舍弃,高位补0

例子:(上代码!)

a = 0b00111100   #60
b = 0b00001101   #13
'''
0b用于直接对变量赋值二进制数
bin()用于输出二进制数
'''
print(a&b,end="   ");print(bin(a&b))
print(a|b,end="   ");print(bin(a|b))
print(a^b,end="   ");print(bin(a^b))
print(~a,end="   ");print(bin(~a))
print(a>>2,end="   ");print(bin(a>>2))
print(a<<2,end="   ");print(bin(a<<2))

输出:

12   0b1100
61   0b111101
49   0b110001
-61   -0b111101
15   0b1111
240   0b11110000

五、逻辑运算符
还是与或非那一套,与C++ 无非就是符号不同

描述C++Python
逻辑与&&and
逻辑或IIor
逻辑非!not

六、成员运算符
这个运算符我是真心很喜欢,能够直接告诉你某一个元素在不在一个序列里。好有用鸭

运算符描述
in如果能在序列中找到该元素的值,返回true,否则返回false
not in如果在指定的序列中找不到该元素的值,返回true,否则返回false

上栗子鸭:

a=1
b=2
list=[1,3,5,7,9];
if(a in list):
    print("a是在list中")
else:
    print("a不在list中")
if(b not in list):
    print("b不在list中")
else:
    print("b是在list中")

输出:

a是在list中
b不在list

七、身份运算符
身份运算符用于比较两个对象的存储单元是否相同,换句话说,比较两个元素的 id 是否相同(没看明白的话就去看下面的BlingBling小技巧3)

运算符描述
isis 是判断两个标识符是不是引用自一个对象,是的话返回true,否则返回false
is notis not 是判断两个标识符是不是引用自不同对象,不是返回true,是就返回false

上栗子鸭:

list=[1,2,3]
a=list
b=list
if(a is b):
    print("a和b来源于同一对象")
    print("id(a)=",id(a),"id(b)=",id(b))
else:
    print("id(a)=",id(a),"id(b)=",id(b))

输出:

a和b来源于同一对象
id(a)= 2641299339840 id(b)= 2641299339840

相同对象,id相同
当我们随意修改一下a的值,使其与b不同再来看

list=[1,2,3]
a=20
b=list
if(a is b):
    print("a和b来源于同一对象")
    print("id(a)=",id(a),"id(b)=",id(b))
else:
    print("id(a)=",id(a),"id(b)=",id(b))

输出:

id(a)= 140731215124736 id(b)= 2582734731648

id属性是8是不一样咯

BlingBling小技巧3
关于 is 和 ==的区别
可以说:is运算符比较的是id属性,而 == 运算符比较的是数值
id属性就像是身份证号,每一个对象(无论是一个数、一个字符串还是一个list,都有),表明了该对象在内存中的储存地址,是一个整数。如果两个变量被赋予了相同的对象,那么这两个变量的就都会指向同一个地址,也同时拥有了相同的id
而 == 仅仅比较数值是否相同
明白了叭~~

好啦Day1 差不多就学了这些,整理一下我们明天继续!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值