Python学习笔记(1)--Python基础

一、输入输出

print('aaa')
print('The quick brown fox','jumps over','the lazy dog')
print(100+200)
print('100 + 200 =',100+200)

name=input('please enter your name: ')
print('hello',name)

print('1024 * 768 = ',1024*768)

二、数据类型和变量

**整数**
**浮点数**
**字符串**
    字符串是以单引号'或双引号"括起来的任意文本
    如果'本身也是一个字符,那就可以用""括起来
        print("I'm OK") 显示:I'm OK
    如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识
        print('I\'m \"OK\"!') 显示:I'm "OK"!
    比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\。
        print('I\'m OK!') 显示:I'm OK
    如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容
    

print('''line1
... line2
... line3''')
line1
line2
line3

**布尔值**
    在Python中,可以直接用True、False表示布尔值(请注意大小写)
**空值**
    空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值
**变量**
    1、变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头
    2、在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量
        a=123 #a是整数
        print(a)
        a='ABC' #a变为字符串
        print(a)
    3、a='ABC',Python解释器干了两件事情:
        在内存中创建了一个'ABC'的字符串;
        在内存中创建了一个名为a的变量,并把它指向'ABC'。
    也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据
**常量**
    1、在Python中,通常用全部大写的变量名表示常量:
        PI = 3.14159265359
    2、在Python中,有两种除法.
    (1)一种除法是/:
        print(10/3)
        3.3333333333333335
        /除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数
    (2)还有一种除法是//,称为地板除,两个整数的除法仍然是整数:
        print(10//3)
        3
    3、Python还提供一个余数运算,可以得到两个整数相除的余数:
        print(10%3)
        1

例:

s1='Hello, world'
print(s1)
s2='hello,\'Adam\''
print(s2)
s3=r'Hello,"Bart"'
print(s3)
s4=r'''Hello,
Lisa!'''
print(s4)
显示:

Hello, world
hello,'Adam'
Hello,"Bart"
Hello,
Lisa!


三、字符串和编码

**字符编码**
    (1)在最新的Python 3版本中,字符串是以Unicode编码的
        print('包含中文的Str') 显示:包含中文的Str
    (2)对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符
        print(ord('A')) 显示:65
        print(chr(66)) 显示:B
     (3)要计算str包含多少个字符,可以用len()函数:
  **格式化**  
    (1)print('Hello,%s' % 'world')   显示:Hello,world
    (2)常见占位符
        %d 整数;%f 浮点数;%s 字符串;%x 十六进制整数
    (3)其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数
       
print('%2d-%02d' % (3,1)) 显示: 3-01
        print('%.2f' % 3.1415926) 显示:3.14
    (4)如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串
        print('Age: %s. Gender: %s' % (25,True)) 显示:Age: 25.Gender: True
    (5)有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%
        print('growth rate: %d%%' % 7) 显示:growth rate: 7%
     (6)format()
        print('Hello,{0},成绩提升了{1:.1f}%'.format('小明',17.125)) 显示:Hello,小明,成绩提升了17.1%
##练习##     
小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出'xx.x%',只保留小数点后1位:

# -*- coding: utf-8 -*-
s1=72
s2=85
r=(85-72)/72*100
print('%.1f%%' % r)

18.1%


四、使用list和tuple

**list**
Python内置的一种数据类型是列表:list。
    (1)list是一种有序的集合,可以随时添加和删除其中的元素。
        cm=['Mi','Bo','Tr']
        >>>cm
        ['Mi', 'Bo', 'Tr']
    (2)用len()函数可以获得list元素的个数
    (3)用索引来访问list中每一个位置的元素,记得索引是从0开始的
        >>>cm[0]
        'Mi'
        如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素
        >>>cm[-1]
        'Tr'
        以此类推,可以获取倒数第2个、倒数第3个
    (4)增加:list是一个可变的有序表,所以,可以往list中追加元素到末尾
         cm.append('Ad')
         也可以把元素插入到指定的位置,比如索引号为1的位置
         cm.insert(1,'Jack')
    (5)删除:要删除list末尾的元素,用pop()方法
         cm.pop()
         要删除指定位置的元素,用pop(i)方法,其中i是索引位置
         cm.pop(2)
    (6)替换:要把某个元素替换成别的元素,可以直接赋值给对应的索引位置
         cm[1]='Sa'
    (7)list里面的元素的数据类型也可以不同
         L=['Apple',123,True]
    (8)list元素也可以是另一个list
         s=['python','java',['asp','php'],'scheme']
         要拿到'php'可以写s[2][1]
    (9)如果一个list中一个元素也没有,就是一个空的list,它的长度为0:
         L=[]
         
**tuple**
另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改
>>> classmates = ('Michael', 'Bob', 'Tracy')
    (1)现在,classmates这个tuple不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用classmates[0],classmates[-1],但不能赋值成另外的元素。
    (2)不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
    (3)定义:tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,
            t=(1,2)
        如果要定义一个空的tuple,可以写成():
            t=()
        定义一个只有1个元素的tuple,如果你这么定义
          错:   t = (1)
        !!定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1
         t = (1,)
    (4)一个“可变的”tuple
        t=('a','b',['A','B'])
        t[2][0]='X'
        t[2][1]='Y'
        >>>t
        ('a', 'b', ['X', 'Y'])
        表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。

##练习##

L=[
   ['Apple','Google','Microsoft'],
   ['Java','Python','Ruby','PHP'],
   ['Adam','Bart','Lisa']
  ]
print(L[0][0])
print(L[1][1])
print(L[2][2])    
Apple
Python
Lisa

五、条件判断

**条件判断**

age=3
if age>=18:
    print('adult')
elif age>=6:
    print('teenage')
else:
    print('kid')
(1)根据Python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了,否则,什么也不做
    (2)注意不要少写了冒号:
    (3)可以用elif做更细致的判断
    (4)if判断条件还可以简写,比如写
        if x:
            print('True')
        只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False


**再议input**

s=input('birth:')
birth=int(s)
if birth<2000:
    print('00前')
else:
    print('00后')
(1)input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数。Python提供了int()函数来完成这件事情:

##练习##
小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖

用if-elif判断并打印结果

# -*- coding: utf-8 -*-
height=1.75
weight=80.5
bmi=weight/(height*height)
if bmi>32:
    print('严重肥胖')
elif bmi>=28:
    print('肥胖')
elif bmi>=25:
    print('严重肥胖')
elif bmi>=18.5:
    print('正常')
else: print('过轻')


六、循环
**for循环**

names = ['Michael', 'Bob', 'Tracy']
for name in names:
    print(name)
sum=0;
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
    sum=sum+x;
print(sum)

(1)python提供一个range()函数,可以生成一个整数序列,再通过list()函数可以转换为list
    list(range(5))
(2)range(101)就可以生成0-100的整数序列,计算如下

sum=0
for x in range(101):
    sum+=x
print(sum)

**while循环**
sum=0
n=99
while n>0:
    sum+=n
    n-=2
print(sum)

**break**

**continue**


七、使用dict和set

**dict**
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
d={'Michael':95,'Bob':75,'Tracy':85}
print(d['Michael'])
    (1)把数据放入dict的方法,除了初始化时指定外,还可以通过key放入
        d['Adam'] = 67
    (2)由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉
    (3)如果key不存在,dict就会报错
    (4)判断存在:一是通过in判断key是否存在 'Thomas' in d
        二是通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value
        d.get('Thomas')
        d.get('Thomas', -1)
    (5)删除:用pop(key)方法,对应的value也会从dict中删除
        d.pop('Bob')
    (6)dict内部存放的顺序和key放入的顺序是没有关系的。
    (7)dict是用空间来换取时间的一种方法
    (8)dict的key必须是不可变对象:
        在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key


**set**
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
    (1)要创建一个set,需要提供一个list作为输入集合:s=set([1,2,3])
    (2)重复元素在set中自动被过滤
    (3)添加:通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:
        s.add(4)
    (4)删除:通过remove(key)方法可以删除元素:s.remove(3)
    (5)两个set可以做数学意义上的交集、并集等操作
        s1 & s2
        s1 | s2
    (6)set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象
    
**再议不可变对象**
    (1)上面我们讲了,str是不变对象,而list是可变对象。
        对于可变对象,比如list,对list进行操作,list内部的内容是会变化的
        而对于不可变对象,比如str,对str进行操作呢:
a='abc'
print(a.replace('a','A'))
print(a)
显示:
Abc
abc
······要始终牢记的是,a是变量,而'abc'才是字符串对象!
有些时候,我们经常说,对象a的内容是'abc',但其实是指,a本身是一个变量,它指向的对象的内容才是'abc':
相反,replace方法创建了一个新字符串'Abc'并返回,如果我们用变量b指向该新字符串,就容易理解了,变量a仍指向原有的字符串'abc',但变量b却指向新字符串'Abc'了:



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值