python基础(一)

今天主要讲的是python的注释、用户的交互方式、python基本数据类型、运算符的知识点。

注释就是对代码的解释,python解释器不识别它,大项目中的注释可以给程序员带来很多方便。

我们通常有两种注释方式:一个是用 # 作为单行注释,另一个是用三引号作为多行注释(可以是三个单引号,也可以是三个双引号)。

输入方面,也有不同。

python3.x版本解释器中的输入关键字input()获取的用户输入统一全部存成字符串类型,如下代码中[1,2,3,4]本因是list数据类型却被存成str类型。

>>> name=input('please input:')
please input:jason
>>> name
'jason'
>>> type(name)
<class 'str'>
>>> name=input('please input:')
please input:[1,2,3,4]
>>> name
'[1,2,3,4]'
>>> type(name)
<class 'str'>

python2.x版本解释器中的输入关键字input()则需要人为告诉input,程序员输入的是什么类型的数据类型,如下代码中在仅仅输入jason而不是'jason'时就会出现NameError: name 'jason' is not defined的错误,且输入[1,2,3,4]数据时就是我们认知的list类型数据。

>>> name=input('please input:')
please input:jason
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'jason' is not defined
>>> name=input('please input:')
please input:'jason'
>>> name
'jason'
>>> type(name)
<type 'str'>
>>> name=input('please input:')
please input:[1,2,3,4]
>>> name
[1, 2, 3, 4]
>>> type(name)
<type 'list'>

而raw_input()会将用户输入的数据统一也存为字符串形式。

>>> name=raw_input('please input:')
please input:jason
>>> name
'jason'
>>> type(name)
<type 'str'>
>>> name=raw_input('please input:')
please input:[1,2,3,4]
>>> name
'[1,2,3,4]'
>>> type(name)
<type 'str'>

我们要知道,用户输入的一般都是字符串形式;另外代码一旦被改动,就必须重新执行一下所改动的py文件,否则程序执行的还是你未改动之前的代码。

格式化输出方面,我们给定两个需要输入的值,name、age。

下图中是最直接的先输出name,再输出age:

# my name is 用户输入的用户名 my age is 用户输入的年龄
name = input('username:')
age = input('age:')
print(name)
print(age)

接着是另一种看似改变了形式的输出方式:

# my name is 用户输入的用户名 my age is 用户输入的年龄
name = input('username:')
age = input('age:')
print(name,age)

我们会发现它们的输出结果格式是相同的:

因为input自带换行作用,通常一个print独占一行。那么,我们再试试加入占位符%s、%d:

# my name is 用户输入的用户名 my age is 用户输入的年龄
name = input('username:')
age = input('age:')
print('my name is %s my age is %s'%(name,age))

这个结果不难看出,输出结果与%(name,age)相对应。

# my name is 用户输入的用户名 my age is 用户输入的年龄
name = input('username:')
age = input('age:')
print('my name is %s my age is %s'%(age,name))

这个结果我们发现,占位符的作用就是谁在前面就是谁先输出,它的个数必须一致。%d只能给数字占位,%s可以给任意数据类型占位。

另外,关于print(‘%08d’%123),整数是8位,传入的数不够8位的话默认用0补全,超出8位时,是多少就是多少。

数据类型

数据是衡量/记录事物的状态/特征,不同的数据应该有不同的存储类型。

  • int整型,float浮点型,str字符
  • list[ ]列表  # 在it行业,通常数据索引都是从0开始的
  • bool布尔类型:比较 时用'==';比较 id 时用'x is y',这个is比较的是两个变量对应的id是否相等,且id相等的情况下,值一定相等;而id不相等的情况下,值有可能相等。
  • long长整型只有python2.x里面才用
  • dict{ }字典(很重要的知识点):
    • 能够存储多组数据,存取的数据有对应的描述,可以明确表示数据表示什么;
    • 大括号内村多个元素,元素的格式key:value形式存储,键值对与键值对之间用逗号隔开;
    • key通常是描述vale的描述性信息,key通常存的是字符串;
    • value就是描述性信息对应的真实的数据;
    • 字典是无序的且暴露给用的可以操作的部分只有key,无法直接获取到value。

运算符

算术运算

  • print(10/3) 结果保留小数部分
  • print(10//3) 结果只保留整数部分
  • print(10%3) 结果取余数
  • print(10**3) 10的三次方

比较运算:==,!=,>,<,>=,<=,其中!=表示不等于。

  比如print(10 > 3)、print(10 > 3.1)、print(10 != 9),数字之间是可以互相比较大小的。

  关于字符串方面:

    # a = 'hello'

    # b = 'z'

    # print(b > a)

  这个就运用到ASCLL码,而且A-Z、a-z中z对应的数字最大,A对应的数字最小。

赋值运算:a = 10,b = 20这种就行。

  • 增量赋值:x += 1相当于x = x + 1
  • 链式赋值:o = m,m = n,n = o
  • 交叉赋值:m,n = n,m
  • 解压赋值:l = [1,2,3,4]

    a = l[0]
    b = l[1]
    c = l[2]
    d = l[3]

    a,b,c,d = l   # 前面的变量个数与后面的元素个数必须相等

    print(a,b,c,d)

    若a,_,_,d = l

    print(a,d)结果为[1,4]

    print(_)结果为[3]

    若a,*_,d = l

    print(_)结果为[2,3]  # 这种情况也适用于超长列表

逻辑运算

  • 与and;或or;非not
  • print(1 >0 and 3>4)  # and两边必须同时成立才会true
  • print(1 > 0 or 1 > 0 and 3>4)  # 只要有一边成立就全部成立true
  • print(not 1 > 3)  # 结果为true
原文地址:https://www.cnblogs.com/zhukaijian/p/11116395.html