python基础——变量、运算符和if条件语句

1、引言

python的定义:python是解释性语言。与js一样,既面向对象,又面向过程。

语言类型:python为弱类型语言,无需像java一样,在定义变量时要定义好变量类型。其类型类型全部为引用数据类型------>由此推测python为强类型语言。(可讨论,具体为何种类型语言)


基本数据类型:如intdouble等,一般存储于栈内。

引用数据类型:string,类,数列等,一般存储于堆内。

例:int Array=new Array(),其中new是为数据开辟一个新的储存空间,返回给Array的是整个数据储存空间的首地址,因此Array本身放在栈内,其数据放在堆内。

基本数据类型储存的是所赋予的值,引用数据类型储存的是一系列数据地址。

 

存储特点:

栈:先进后出

堆:无序,储存空间较大。寻找数据需要数据地址。

队列:先进后出


2、变量

python在定义变量时无需关键字,无需类型:a=10

 

2.1 变量的输出

在输入print()时结果会换行,但输入print(end='')时不会换行

例:

print('aaaa')
print('bbbb',end='')
print('cccc')

输出结果:

aaaa
bbbbcccc

2.2 接收用户输入

输入:input('提示信息:')----------->所有数据都是字符串类型

 例如:

age=input('请输入年龄:')  #接收后为str类型
print(type(age))
if age.isdigit():  #将age转换成数值类型
    print(age)
else:
    print('请输入数字')

输出结果为:

请输入年龄:12
<class 'str'>
12

2.3 注释

#:后面可接要注释内容(pycharm快捷键:ctrl+/),此为单行注释。

'''''':其作用有两个:1、多行注释;2、换行字符串。

例:

# 这里是单行注释
s='''a
b
c
'''
print(s)

输出结果为:

a
b
c

2.4 变量的类型

Number(数值型):

包括:

1 int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。

bool (布尔), 如 True。

3 float (浮点数), 如 1.23、3E-2

4 complex (复数), 如 1 + 2j、 1.1 + 2.2j

可用isinstance或者type来判断:

class A:
    pass

class B(A):
    pass

isinstance(A(), A)  # returns True
type(A()) == A      # returns True
isinstance(B(), A)    # returns True
type(B()) == A        # returns False

其区别为:type不认为子类是一种父类的类型。isinstance会认为子类是父类类型。


String(字符串):

字符串有索引,可以通过索引对字符串的相对应位置元素进行查询。但不能进行更改和删除某个元素。

索引值以0开始,-1是表示从末尾的第一个元素开始。

例:

str = 'hello world'

print(str)  # 输出字符串
print(str[0:-2])  # 输出第一个到倒数第二个的所有字符
print(str[0])  # 输出字符串第一个字符
print(str[2:5])  # 输出从第三个开始到第五个的字符
print(str[2:])  # 输出从第三个开始的后的所有字符
print(str * 2)  # 输出字符串两次
print(str + "TEST")  # 连接字符串

输出结果:

hello world
hello wor
h
llo
llo world
hello worldhello world
hello worldTEST     # 发现用‘+’连接的字符串之间没有空格

在输入字符串过程中,有时需要'\'转义特殊字符,来保证字符串可以正常输出。

例:

print('i\'m a genius!')    # 如果将\去掉,将会报错

输出结果:

i'm a genius!
注释:当然也可以写作
print("i'm a genius!")

这样执行程序也不会报错。

list(列表):

定义:任意对象的可变、有序、可重复序列

 

任意对象——列表当中可以存储任意类型的对象

可变——可对任意位索引置元上的素进行修改、替换(索引从0开始)

有序——其中的元素可以用位置索引

可重复——不同索引位置的元素可以是相同的

 

操作:

合并——两个列表合并 x+y

              自身合并x*3

切片——x[i:j:k] ——取前舍后

其中:i是切片开始的索引位置,j是切片结束的索引位置,k是切片提取元素时索引的递增值,默认是1

添加元素——列表名.append(元素值)——在最后添加

                     列表名.insert(索引位置,元素值)——在制定位置添加元素

删除元素——del 列表名[索引位置]

查找操作——元素值 in 列表名——返回布尔类型 True or False


例:

a=['a','b','c']
b=[1,2,3,4]

print(a+b)
print(a*3)
print(a[0])
print(b[0:3:2])
a.insert(1,'d')
print(a)
a.append('e')
print(a)
print('d' in a)

输出结果:

['a', 'b', 'c', 1, 2, 3, 4]
['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c']
a
[1, 3]
['a', 'd', 'b', 'c']
['a', 'd', 'b', 'c', 'e']
True

tupe(元组):

定义:任意对象的不可变有序可重复集合。

元组与列表的区别:

 

列表

元组

元素

[]

()

可变性

可变

不可变

操作

添加、修改、删除、搜索

搜索

 

元组优点:

1、元组比列表操作速度快

2、不允许修改,使数据更安全

 

注释:元组取值操作与列表相同。但不允许删除元组元素,可以删除整个元组:del 元组名。


Dictionary(字典)

定义:任意对象的无序不重复键值对集合。

元组可作为字典的键,序列不可以

任意对象——键必须是不可变数据类型,值可以是任意对象

无序——不可索引,即无索引值,只能依靠键来查询键所对应的值

不重复——键不可重复


3 运算符

3.1 算数运算符

取a=1,b=2

+ 加——两个对象相加 a + b 输出结果 3
-

减——得到负数或是一个数减去另一个数

a - b 输出结果 -1
* 乘——两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 2
/ 除—— x 除以 y b / a 输出结果 2
% 取模——返回除法的余数 b % a 输出结果 0
** 幂——返回x的y次幂 a**b 为1的2次方
// 取整除——返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0

3.2 比较运算符

取a=10,b=15

== 等于 - 比较对象是否相等 (a == b) 返回 False。
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 True。
> 大于 - 返回x是否大于y (a > b) 返回 False。
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 (a < b) 返回 True。
>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
<= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 True。

3.3 逻辑运算符

取a=10,b=15

and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 15。
or x or y 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False

例:

a = 10
b = 15
 
if ( a and b ):
   print ("1 - 变量 a 和 b 都为 true")
else:
   print ("1 - 变量 a 和 b 有一个不为 true")
 
if ( a or b ):
   print ("2 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
   print ("2 - 变量 a 和 b 都不为 true")
 
# 修改变量 a 的值
a = 0
if ( a and b ):
   print ("3 - 变量 a 和 b 都为 true")
else:
   print ("3 - 变量 a 和 b 有一个不为 true")
 
if ( a or b ):
   print ("4 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
   print ("4 - 变量 a 和 b 都不为 true")
 
if not( a and b ):
   print ("5 - 变量 a 和 b 都为 false,或其中一个变量为 false")
else:
   print ("5 - 变量 a 和 b 都为 true")

输出结果:

1 - 变量 a 和 b 都为 true
2 - 变量 a 和 b 都为 true,或其中一个变量为 true
3 - 变量 a 和 b 有一个不为 true
4 - 变量 a 和 b 都为 true,或其中一个变量为 true
5 - 变量 a 和 b 都为 false,或其中一个变量为 false

3.4 身份运算符

定义:用于比较两个对象的储存单元

例:

a=20
b=20
print(a is b)            
print(id(a) is id(b))   

输出结果:

True    # 说明a和b都指向了同一个储存空间地址
False   # a、b的id的储存空间地址是不同的

4、if条件语句

分支结构:
 if 条件:
 代码块
 elif 条件:
 代码块
 ...
 else:
 代码块

例:猜数游戏

import random
print('猜数游戏')
num=random.randint(1,100)
while True:
    print('请输入1至100的数字')
    i=int(input())
    if i == num:
        print('猜对了!')
        break
    elif i < num:
        print('小了')
    elif i > num:
        print('大了')






猜你喜欢

转载自blog.csdn.net/nico_w/article/details/80521651