一、python基础

输入与输出

  输出

print('hello world','jumps over','the lazy dog')
print('1+2=',1+2)
hello world jumps over the lazy dog
1+2= 3

  输入

name = input()

  当你输入name = input()并按下回车后,Python交互式命令行就在等待你的输入了。这时,你可以输入任意字符,然后按回车后完成输入。下次输入name就变成了你之前设

定的那个值

name = input() # Enter a
print('hello',name)
hello,a
name = input('please enter you name:') # Enter b
print('hello',name)
please enter you name:b
hello b
print('\\\n\\')#\n表示换行,\\等价于\
print(r'\\\t\\')#加了r之后内部的字符串默认不转义
print('''line1
line2
line3''')#也可以用这个表示多行内容
\
\
\\\t\\
line1
line2
line3

python基础

  

  1.数据类型与变量

  1.1布尔值

True and True #True
not True #False

  布尔值的应用

age=20
if age>=18:
    print('adult')
else:
    print('teenager')
adult

  

  2.变量

a = 'ABC'

  python 解释器干了两件事情

  1).在内存中创建了一个’ABC‘字符串

  2).在内存中创建了一个名为a的变量,并把它指向’abc‘

  

  3.常量

  一般除法

10/3 #3.333333333

  整除

10//3 #3

  取余

20%3  #2

 

  4.字符串和编码

  Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题

  在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输时,就转换为UTF-8编码

  很多网页的源码上会有类似的<meta charset="UTF-8" />的信息,表示该网页正是用的UTF-8编码

  python中的字符串是以Unicode编码的

ord('A') #65
ord('')#20013
chr(66)#'B'
chr(25991)#'文'
print('%2d-%02d' % (3, 1))
 3-01

  %d:整数,%2d,整数的宽度是2位,若不足两位,左边补空格;%02d整数输出,整数的宽度是2位,若不足两位,左边补0;%.2d整数输出,整数的有效数字是2位

  %f:浮点数,%s:字符串,%x:十六进制整数

print('Hello, %s' % 'world')
print('Age: %d. Gender:%s' % (25,True))
print('growth rate: %d %%' % 7)
Hello, world
Age: 25. Gender:True
growth rate: 7 %
'hello,{0},成绩提升了{1:.1f}%'.format('小明',17.25)
'hello:{0:.2s},xiaoming,chengji:{1:.2f}'.format('dididid',123)
'hello,小明,成绩提升了17.2%'
'hello:{0:.2s},xiaoming,chengji:{1:.2f}'.format('dididid',123)

 

  5.list和tuple

  列表

  list 是一种有序的集合,可以随时添加和删除其中的元素

classmates = ['Michael','Bob','Tracy']
len(classmates)
3

  列表的查找

classmates[0]
classmates[-1]
'Michael'
'Tracy'

  列表的添加

classmates.append('mon')#在最后面添加
classmates.insert(1,'sam')#在第一个位置添加元素

  列表的删除

classmates.pop()#删除最后一个元素
classmates.pop(1)#删除指定位置的元素

  列表的替换

classmates[1]='gulu'

  列表里面的元素也可以是不同的

a = [123,True,'adidas']

  另一种有序列表叫做元组:tuple,tuple和list相似,但是一旦初始化就不能修改

classmates = ('Michael','Bob','Tracy')

  此时不能进行添加,删除和替换

  不可变的tuple的意义在于:因为tuple不可变,所有代码更安全,如果可能,能用tuple代替list就尽量用tuple

  只定义一个元素的tuple,必须加逗号

t = (1,)

  可变的tuple

t = ('a','b',['A','B'])#a:位置0,b:位置1,['A','B']:位置2
t[2][0] = 'X'
t[2][1] = 'Y'
t
('a', 'b', ['X', 'Y'])
L = [
['Apple', 'Google', 'Microsoft'],
['Java', 'Python', 'Ruby', 'PHP'],
['Adam', 'Bart', 'Lisa']
]
L
[['Apple', 'Google', 'Microsoft'],
 ['Java', 'Python', 'Ruby', 'PHP'],
 ['Adam', 'Bart', 'Lisa']]

 

  6.条件判断

age = 3
if age>18:
    print('your age is',age)
    print('adult')
else:
    print('your age is',age)
    print('teenager')
your age is 3
teenager
age = 3
if age>18:
    print('you are a adult:', age)
elif age>6:
    print('you are a teenager:',age)
else:
    print('you are a baby:' ,age) #可以看出一个循环用else,多个循环用elif
you are a baby: 3
birth = input('age:') #input默认输入类型是str
birth = int(birth)
if birth<2000:
    print('00前')
else:
    print('00后')

 

  7.循环

  for ... in循环,依次把list或tuple中的每个元素迭代出来

names = ['Michael','Bob','Tracy']
for name in names:
    print(name)#for i in ...循环就是把每个元素代入变量i,然后执行缩进快的语句
Michael
Bob
Tracy
sum = 0
for i in range(11):
    sum = sum + i
print(sum) #0加到10------》55
list(range(5)) #[0, 1, 2, 3, 4]

   while循环

  只要条件满足,就不断循环,条件不满足时退出,从头执行

  如果print()在循环里面,那么每次都打印,如果在最外面则打印出一个总的

sum = 0
n = 99
while n>0:
    sum = sum + n
    n = n - 2
print(sum) #99+97+...+1
2500

  break语句可以提前退出循环,例如,本来要循环打印1-100的数字

n = 1
while n <=100:
    print(n)
    n = n+1
print('END')
1
2
3
...
END
n = 1
while n <= 100:
    if n>10:
        break
    print(n)
    n = n + 1
print('END')
1
2
...
10
END

  continue:跳出当前这次循环,直接开始下一次循环

n = 0
while n<10:
    n = n+1
print(n)
10

  只想打印奇数,可以用continue语句跳过某些循环

n = 0
while n<10:
    n = n+1
    if n%2 == 0: #如果n是偶数,执行continue语句
        continue #continue语句会直接继续下一轮循环,后续的print()不会执行
    print(n)
1
3
5
7
9

  break是结束整个循环体,continue是结束单次循环,直接开始下一次循环。

  break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。

 

  8.dict和set

  dict:使用键值存储,具有极快的查找速度

d = {'Michael':95, 'Bob':75, 'Tracy':85}
d['Michael']
95

  把数据放入dict的方法,除了初始化时指定外,还可以通过key放入,即新增

d['Adam'] = 67
d['Adam']
d
{'Michael': 95, 'Bob': 75, 'Tracy': 85, 'Adam': 67}

  由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉

d['Jack'] = 90
d['Jack']
d['Jack'] = 88
d['Jack']
88

  如果key不存在,dict就会报错,要避免key不存在的错误,有两种方法:

  1).

'Thomas' in d

  2).

d.get('Thomas',0)#如果不在就直接返回0

  要删除一个key,用pop(key)方法,对应的value也会从dict中删除

d.pop('Bob')
d
{'Michael': 95, 'Tracy': 85, 'Adam': 67}

  dict内部存放的顺序和key放入的顺序是没有关系的

  和list比较,dict有以下几个特点:

  1).查找和插入的速度极快,不会随着key的增加而变慢

  2).需要占用大量的内存,内存浪费多

  而list相反:

  1).查找和插入的时间随着元素的增加而增加

  2).占用空间小,浪费内存很少

  所以,dict是用空间来换取时间的一种方法

  dict的key是不可变对象,在python中,字符串、整数等都是不可变的,因此可以放心做为key,而list可变,不能作为key

  set和dict类似,也是一组key的集合,但不存储value,由于key不能重复,所以,在set中,没有重复的key

 s = set([1,2,3])

  重复元素在set中自动过滤

s = set([1,1,2,2,3,3,])
s
{1, 2, 3}
s = set([1,1,2,2,3,3,])
s.add(3)
s
{1, 2, 3}
s = set([1,1,2,2,3,3,])
s.remove(3)
s
{1, 2}

  可以进行数学运算

s1 = set([1,2,3])
s2 = set([2,3,4])
s1&s2
s1 | s2
{2, 3}
{1, 2, 3, 4}

  str是不变对象,list是可变对象

a = ['c','b','a']
a.sort()
a
['a', 'b', 'c']  

  

posted @ 2019-11-20 10:18  瞧我这个笨脑袋  阅读(228)  评论(0)    收藏  举报