Python入门小知识-2

操作符

  • Python中支持 + - * / % 这样的操作符. 并且它们的行为都和C语言一样.

  • / 是 "精确除法"

    a = 1
    b = 2
    print(a/b)    #0.5
  • // 是 "整除". 会对结果进行取整

    • Python2 中 / 是传统除法(即1/2 = 0) // 是地板除法, 和 Python3 的语义截然不同.
    a = 1
    b = 2
    print(a//b)        #0
  • ** 表示乘方运算(记得Python的数据无上限) a**b <==> a的b次方

    a = 100
    b = 10
    print(a**b)    #100000000000000000000
  • Python也支持标准的比较运算符. > < >= <= == != 这些运算符的表达式的结果, 是一个布尔值

    a = 2 < 4
    print(type(a))    #<class 'bool'>
  • Python也支持逻辑运算符. and or not(相当于 与 或 非 ) 注意:符合短路原则

    • 短路原则:

      and:左边为False 就不看右边

      or : 左边为True,就不看右边了

    a = 2<4 and 2 == 4
    print(a)    #False
    
    a = 2<4 or 2 == 4
    print(a)    #True
  • Python中, 3 < 4 < 5 等价于 3 < 4 and 4 < 5 这一点和其他大多数编程语言都不太一样.

  • 运算符之间有高低优先级的区分. 应该合理使用括号来增加代码的可读性.

  • 字符串和字符串之间也可以使用运算符进行操作,

    • 例如前面使用 + 进行字符串连接
    print('hehe' + 'haha')    #hehehaha
  • 字符串之间可以使用 == !=来判定字符串的内容是否相同

    print('hehe' != 'haha')    #True
    print('hehe' == 'haha')    #False
  • 字符串之间也可以比较大小. 这个大小的结果取决于字符串的 "字典序"

    C,C++,Java都是按字典序进行比较字符串

    print('hehe' < 'haha')        #False
    print('mango' > 'Mango')    #True

列表,元组,字典

列表和元组

  • 列表和元组类似于C语言中的数组.

  • 使用 [] 来表示列表list, 使用 () 来表示元组tuple

    alist = [1,2,3,4]    #列表
    print(alist)    #[1, 2, 3, 4]
    print(len(alist))    #4
    print(alist[1:-1])    #[2,3]    左闭右开
    print(alist[1])        #2
    print(alist[-1])    #4
    
    atuple = (1,2,3,4)    #元组
    print(atuple)    #(1, 2, 3, 4)
  • 列表和元组能保存任意数量, 任意类型的Python对象

    a = [1,'list']
    print(a)    #[1, 'list']
  • 可以使用下标来访问里面的元素, 下标从0开始. 最后一个下标为-1

    a = [1,'list']
    print(a[0])    #1
    print(a[1])    #list
    print(a[1][2])    #s
  • 可以使用[A:B]切片操作得到列表或元组的子集. 这个动作和字符串操作是一样的.注意:切片切出来的也是列表或元组

    a = [1,'list']
    print(a[:])    #[1, 'list']
    print(a[0:1])    #[1]
  • 列表和元组唯一的区别是, 列表中的元素可以修改, 但是元组中的元素不能修改.

    • 本质区别:列表:可变对象 元组:不可变对象
    a = [1,2,3,4]
    a[0] = 100  #列表可变
    
    a = (1,2,3,4)
    a[0] = 100  #元组不可变 error

字典

  • 字典是Python中的映射数据类型. 存储键值对(key-value).
  • 几乎所有类型的Python对象都可以用作键. 不过一般还是数字和字符串最常用.
  • 使用{} 表示字典.

例子

键是怎么样,访问就怎么样.不同的键值对用逗号分割

键和值用:分割 键要用''括起来

a = {'ip':'127.0.0.1' , '1':'2'}  #字典
print(a['ip'])    #取字典中的元素    执行结果:127.0.0.1
a['port'] = 80  #插入新的键值对
print(a)    #{'ip': '127.0.0.1', 'port': 80}

引用

内建函数id

Python中可以用 id 这个内建函数, 查看变量的 "地址"

  • 地址只是身份标识
a = 100    
print(id(a))    #140****89684720

a = 200    #给a重新赋值成200, 相当于新创建了一个200这样的对象, 然后将变量名a重新绑定到200这个对象上
print(id(a))    #140****89687920

b = a    #将a赋值给b, 其实相当于又创建了一个变量名b, 并将b这个名字和200这个对象绑定到一起.
print(id(b))    #140****89687920

b = 300    #
print(id(b))    #2642453910960

像创建 a, b 这样的变量名, 其实只是一个对象的别名. 或者叫做变量的 "引用",这个变量真正在内存开辟空间,但是a和b并不开辟空间,a和b相当于贴在这个变量身上的标签

代码块及缩进

  • Python中使用缩进来表示代码块. 相当于天然从语法的角度规定了代码风格.
  • Python是独一无二的使用缩进而不是{}的, 这就避免了一场党派之争~

党派1:

if (a > b)
{
    do_something()
}

党派2

if (a > b){
    do_something()
}

python:并不存在大括号. 因此也就不需要考虑大括号放在哪里了.

if a > b:
    do_something()

if语句

如果表达式的值非0或者为布尔值True, 则执行 do_something, 否则执行下一跳语句.

注意:判断语句后面要加:

if expression:
    do_something1
    do_something2
next_something
  • Python也支持else语句

    if expression:
        do_something1
    else:
        do_something2
  • Python里还有神奇的的elif(意思是else-if)

    if expression:
        do_something1
    elif expression2:
        do_something2
    else:
        do_something3
  • Python并不支持switch/case这样的语句. 也没有必要支持. 实际上 switch/case 语法并不优雅.

while语句

while循环语句和if语句语法类似. 只要表达式的值非0或者为True, 就会循环执行do_something

注意:判断语句后面要加:

while expection:
    do_something

例子:循环三次打印

count = 0
while count < 3:
    print('loop %d' %count)
    count+=1    #不可以用count++
#执行结果
loop 0
loop 1
loop 2

for循环

Python中的for循环和传统的for循环不太一样.

注意:判断语句后面要加:

  • for循环接收可迭代对象(序列或者迭代器)作为参数, 每次迭代其中的一个元素.
#遍历打印字符串的每个字符
a = 'hehe'
for c in a:
    print(c)
#执行结果
h
e
h
e

#遍历列表的每个元素
a =[1,2,3,4]
for item in a:
    print(item)
#执行结果
1
2
3
4


#遍历字典中的所有key-value
a = {'ip':"198.168.1.1",'tel':'12345'}
for key in a:
    print(a[key])   #打印键对应的值
    print(key,a[key]) #打印键和值
#执行结果
198.168.1.1
ip 198.168.1.1
12345
tel 12345
#Python#
全部评论

相关推荐

我的名字是句号:接好运
点赞 评论 收藏
分享
评论
3
4
分享

创作者周榜

更多
牛客网
牛客企业服务