数据类型和变量
1.整数
2.浮点数
3.字符串
当字符串中既包含''又包含""时,我们可以使用转义字符\来标识:
print("I\'m \"OK\"!")
运行结果
4.布尔值
(1)布尔值我们都知道只有True、False两种值,在这里同样也是(注意大小写):
print(3>5)
运行结果
print(3<5)
运行结果
print(not True)//这是单目运算符
运行结果
(2)布尔值经常用在条件判断中:
age=12;
if age >=18:
print("成年人")
else:
print("少年")
运行结果
空值
空值是None,他不能理解为0,是一个特殊的空值。
变量
变量不仅可以是数字,还可以是任意数据类型。
a=1
t_007='T007'
常量
(1)除法:
print(10/3)
运行结果
(2)还有一种除法是//,称为地板除:
print(10//3)
运行结果
(3)取余
print(10%3)
运行结果
字符串
1、获取字符的整数表示,这里提供了一个ord()函数
print(ord('A'))
运行结果
2、转换为对应的字符,这里提供了chr()函数
print(chr(66))
运行结果
使用list和tuple
list
1、取元素的操作
list我们大家在学习java的时候都知道,她是集合,可以进行删除和添加的一个集合。
classmates=["Michael","Bob","Tracy","Java"]
print(classmates)
运行结果
变量classmates就是一个list。用len()函数可以获得list元素的个数
print(len(classmates))
运行结果
接下来我们取一下元素,这里和java几乎是类似的。
print(classmates[0])
运行结果
有时候我们想取最后一个元素的时候可能会写错,因为可能不清楚集合的长度,取错值,这时候,我们取最后一个元素的时候,可以用使用-1做索引。
print(classmates[-1])
运行结果
以此类推。
2、往集合中追加元素
classmates.append("Jane")
print(classmates)
运行结果
将元素追加到指定的位置
classmates.insert(1,"Jack")
print(classmates)
运行结果
3、删除元素
删除末尾的元素:
classmates.pop()
print(classmates)
运行结果
删除指定位置的元素
classmates.pop(1)
print(classmates)
运行结果
4、修改某一个位置上的值
classmates[1]="Sarah"
print(classmates)
运行结果
5、list里面的元素的数据类型也可以不同。
L=["Apple",123,True]
print(L)
运行结果
tuple
我们会发现,刚才的集合的括号是中括号,这里是圆括号。这样就可以区别list集合和tuple集合了。
classmates=("Michael","Bob","Tracy")
print(classmates[1])
运行结果
当你需要定义一个空的tuple时,可以写成()
t=();
print(t)
运行结果
条件判断
和java一样,判断都是用if,只是函数不一样。
age=20
if age>=18:
print("你的年龄是",age)
print("成年人")
else:
print("你的年龄是",age)
print("少年")
运行结果
注意别忘了写 :
当然上面的判断是粗糙的,更加细致一点的话,就是elif的判断:
age = 3
if age >= 18:
print('adult')
elif age >= 6:
print('teenager')
else:
print('kid')
elif是else if 的缩写,完全可以有多个elif,所以if语句的完整形式就是:
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
if 的判断条件还可以简写,比如:
x=10;
if x:
print("True")
只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。
再来看input
如果我们读取用户的输入,使用input()来获取
birth=input('birth:')
if birth<2000:
print("00前")
else:
print("00后")
运行结果
真惊喜,哈哈哈,报错了这是因为input()返回的数据类型是string,string不能直接和整数比较,必须先把string转换为整数。python提供了int()函数来完成这件事情:
birth=input('birth:')
s=int(birth)
if s<2000:
print("00前")
else:
print("00后")
运行结果
练习题:
小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖
用if-elif判断并打印结果:
weight=input('weight:')
we=int(weight)
if we<18.2:
print("过轻")
elif 18.5<=we<25:
print("正常")
elif 25<=we<28:
print("过重")
elif 28<=we<32:
print("肥胖")
else:
print("严重肥胖")
运行结果
循环
我们之前做过,如果直接要计算1+2+3,我们可以直接写表达式:
print(1+2+3)
这样就好了。但是如果是从1加到10000呢,直接写表达式是不可能的,所以这时候,我们就可能会用到循环了。在python里面的循环有两种,一种是for...in 循环,依次把list或tuple中的每个元素迭代出来,看例子:
names=['Bob','Danny','Alisa','Tacy']
for name in names :
print(name)
运行结果
通过这个可以把集合里面的元素遍历出来。
in后面的是循环,把循环出来的东西给for前面的变量。比如上面的列子,就是把集合里面的东西拿出来给name,最后打印出来。
可是如果要计算1到10的整数之和呢?可以用sum做累加:
sum=0;
for x in [1,2,3,4,5,6,7,8,9,10]:
sum=sum+x
print(sum)
运行结果
1到10还是比较好输入的,可是数字再大一点呢?这时候python就为我们提供了一个range()函数,他可以生成一个整数序列,再通过list()函数转换为list,比如:
print(list(range(5)))
运行结果
range(101)就可以生成0-100的整数序列,计算如下:
sum=0;
for x in range(101):
sum=sum+x;
print(sum);
运行结果
break
break语句可以提前退出循环。
n=1
while n<=100:
if n>10:#当n=11时,条件满足,执行break语句
break#break语句会结束当前循环
print(n)
n=n+1
print("nj")
运行结果
continue
和java中一样,是跳过当前的这次循环,直接开始下一次循环。
n=0;
while n<10:
n=n+1;
if n%2==0:
continue
print(n)
运行结果
dict
python内置了字典:dict的支持,dict全称dictionary,其实就是map,使用键值存储,这样可以快速的查找。
names={'Michael':95,'Bob':52,'Tracy':12}
print(names['Michael'])
运行结果
这样查找就会特别快!如果key不存在,dict就会报错。
为了避免key不存在的错误,有两种办法,第一种是:
通过in判断key是否存在:
names={'Michael':95,'Bob':52,'Tracy':12}
print('Michael' in names)
运行结果
这个结果说明这个元素的的key是存在的。
第二种方式是:
通过dict里面提供的get()方法,如果key不存在,可以返回None,或者指定的value:
names={'Michael':95,'Bob':52,'Tracy':12}
print(names.get('Michael'))
运行结果
names={'Michael':95,'Bob':52,'Tracy':12}
print(names.get('Michael',-1))
运行结果
因为我这里写的key是存在的,所以会输出相对应的value,如果不存在的话,第一个输出的应该是None,第二个输出的应该是-1;
当然删除一个元素的key也是可以的,用的还是pop()的方法,对应的元素也会从中删除:
names={'Michael':95,'Bob':52,'Tracy':12}
names.pop('Michael')
print(names)
运行结果
当然,因为dict查找是通过key值查找的,所以这里的key必须是不可变的对象,这样就不会混乱了,这种通过key计算位置的算法称为哈希算法;
set
set和dict是类似,都是key的集合,但不存储value。因为key不可以重复,所以,同样,在set里面没有重复的key。如果里面有重复的元素,是可以自动被过滤掉的。
s=set([1,2,2,3,5,3])
print(s)
运行结果
因为用的是list作为输入集合,所以是可以修改的,添加用的是add():
s=set([1,2,2,3,5,3])
s.add(4)
print(s)
运行结果
删除用的是remove():
s=set([1,2,2,3,5,3])
s.add(4)
s.remove(1)
print(s)
运行结果
因为set是集合,所以在这里是可以取交集和并集等操作:
s1=set([1,2,3])
s2=set([1,4,5,6])
print(s1&s2)
print(s1|s2)
运行结果
网友评论