python基础笔记1

1、python是什么?

Python是一种计算机程序设计语言。你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言

2、python能用来做什么

日常任务,比如自动备份;可以用来做网站;云计算最火的语言;运维人员必备语言等等等

3、python的版本

python目前有两个版本,一个是python2.x  一个是python3.x

关于python两个版本区别此处描写的更加详细

http://www.cnblogs.com/codingmylife/archive/2010/06/06/1752807.html

4、第一个python程序

1 print('hello world!')

5、python的变量

变量定义的规则:

    • 变量名只能是 字母、数字或下划线的任意组合
    • 变量名的第一个字符不能是数字
    • 以下关键字不能声明为变量名 ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

变量的赋值

name = 'ly'

6、python的输入和输出

print()在括号中加上字符串,就可以向屏幕上输出指定的文字。比如输出'hello, world'

Python提供了一个input(),可以让用户输入字符串,并存放到一个变量里。比如输入用户的名字:

>>> name=input('please input your name:')
please input your name:ly
>>> name
'ly'
name

 input()的输入的类型默认都是字符串

>>> num=input(':')
:1
>>> type(num)
<class 'str'>

格式化输出字符串可以使用%格式化输出,例如

name = input('name:')
age = int(input('age:'))
score = float(input('score:'))
info = ('''
-------------info  %s -------------
name:%s
age:%d
score:%.2f
-----------------------------------
''') % (name,name,age,score)
View Code

%s  字符串 %d 10进制整数 %f  浮点型(取两位%.2f) 

有的时候字符串里面的%是一个普通字符,就需要转义使用%%来表示%

格式化输出还可以使用.format方式

 1 info1 = ('''
 2 -------------info1 {name}------------
 3 name:{name}
 4 age:{age:d}
 5 score:{score:.2f}
 6 -------------------------------------
 7 ''').format(name=name,age=age,score=score)
 8 print('format的一种输出方式',info1)
 9 info2 = ('''
10 -------------info2 {0}-------------
11 name:{0}
12 age:{1:d}
13 score:{2:.2f}
14 -----------------------------------
15 ''').format(name,age,score)
16 print('format的另一种输出方式',info2)
View Code

{}默认字符串{:d}整数型{:f}浮点型(取2位{:.2f})

7、python的数据类型

可以使用内部函数type()来查看数据的类型

7.1 字符串(str)

用单引号‘’或双引号“”括起来的任意文本,字符串中包含转义字符\,制表符\t,换行符\n

转义字符\的使用方法,比如我们要输出一个\

>>> print('\\')
\

 打印D:\test的文件路径也需要使用转义

>>> print('D:\\test')
D:\test

 如果字符串中有许多字符都需要转义的话,就需要加很多的\,为了简化python提供一种非常简便的方式r' ',例如如果我们要打印D:\test\test.txt时,可以这么写

>>> print(r'D:\test\test.txt')
D:\test\test.txt

如果字符串中有很多换行,写在一行使用使用\n不好阅读,为了简化python提供'''...'''的格式表示多行内容

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

7.2布尔型(bool)

布尔型表示判断只有True和Flase两种值,布尔值可以使用and、or、not计算

7.3整数型(int)

任意大小的整数,包含负整数

7.4浮点型(float)

小数

7.5列表(list)

一种有序的集合,使用[ ]定义可以随时添加和删除其中的元素,比如创建0-9的整数集合

>>> num=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 >>> num
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

可以通过索引来访问list中的每个元素,索引默认从0开始,比如定义一个班级的列表

 1 >>> classmates=['张三','李四','王五','赵六']
 2 >>> classmates
 3 ['张三', '李四', '王五', '赵六']
 4 >>> classmates[0]
 5 '张三'
 6 #添加一个王二麻子
 7 >>> classmates.append('王二麻子')
 8 >>> classmates
 9 ['张三', '李四', '王五', '赵六', '王二麻子']
10 #删除王五,使用remove,默认删除第一个
11 >>> classmates.remove('王五')
12 >>> classmates
13 ['张三', '李四', '赵六', '王二麻子']
14 #查看每个元素对应的索引号可以使用enumerate
15 >>> for obj,value in enumerate(classmates):
16 ...     print(obj,'--',value)
17 ...
18 0 -- 张三
19 1 -- 李四
20 2 -- 赵六
21 3 -- 王二麻子
22 #删除张三,使用pop方法,默认删除最后一个元素
23 >>> classmates.pop(0)
24 '张三'
25 >>> classmates
26 ['李四', '赵六', '王二麻子']
classmates

要把某个元素替换成别的元素,可以直接赋值给对应的索引位置

>>> classmates
['李四', '赵六', '王二麻子']
>>> classmates[2] = '周二'
>>> classmates
['李四', '赵六', '周二']

list中所有元素也可以是不同的数据类型例如:

>>> list = ['apple',1,True]
>>> list
['apple', 1, True]

 list元素也可以是另一个list

>>> list1 = ['red','blue',list]
>>> list1
['red', 'blue', ['apple', 1, True]]

python中列表的操作函数跟方法

len(list)    列表元素的个数

max(list)   返回列表元素的最大值

min(list)   返回列表元素的最小值

list()         修改其他的数据类型为list类型(不是所有数据类型都可转换)

列表操作方法

list.append(obj)   在列表末尾添加新元素

list.count(obj)    统计某个元素在列表中出现的次数

list.extend()    追加,在列表末尾添加一个列表

list.index(obj)   从列表中找出某个元素对应的索引号

list.insert(index,obj) 将某个元素插入列表指定的索引位置

list.pop(index)         删除列表中某个索引对应的元素,不写默认删除最后一位

list.remove(obj)       删除列表中某个元素,不写默认删除第一位

list.reverse()            反向列表中元素

>>> a
[0, 1, 2, 4, 5, 6, 7, 8]
>>> a.reverse()
>>> a
[8, 7, 6, 5, 4, 2, 1, 0]

list.sort()     对列表中元素进行排序

>>> a
[8, 7, 6, 5, 4, 2, 1, 0]
>>> a.sort()
>>> a
[0, 1, 2, 4, 5, 6, 7, 8]

7.6元组(tuple)
另一种有序的列表叫元组,元组跟列表非常相似,但是元组一旦初始化就不能修改,使用()定义,元组同样可以操作

如果元组中只有一个元素需要在元素后面添加,(逗号)

>>> b=('a')
>>> b
'a'
>>> type(b)
<class 'str'>
>>> b=('a',)
>>> type(b)
<class 'tuple'>

 7.7字典(dict)

 python内置了字典dict的支持,使用  键---值(key---value)的方式存储,具有极快的查找速度

定义方法使用{}定义

>>> d = {'张三':90,'李四':58,'王五':65}
>>> d
{'张三': 90, '李四': 58, '王五': 65}
>>> d['李四']
58
>>>

 根据key值直接拿到value,把数据放入dict的方法,除了初始化时指定之外,还可以通过key放入

>>> d['周二']=100
>>> d
{'张三': 90, '李四': 58, '王五': 65, '周二': 100}

 如果多次对一个key放入value,后面的值会把前面的冲掉,如果key不存在,dict就会报错

>>> d['金三胖']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: '金三胖'

 要避免key不存在的错误,有两种方法,一种是in方法

>>> '金三胖' in d
False
>>> '周二' in d
True

 一种是通过dict提供的get方法,如果key不存在,可以返回None或自定义value

>>> d.get('金三胖')
>>> d.get('金三胖',0)
0

 要删除使用dict.pop(key)方法,对应的value也会从dict中删除,注意dict内部存放的顺序跟key放入的顺序是没有关系的

>>> d
{'张三': 90, '李四': 58, '王五': 65, '周二': 100}
>>> d.pop('王五')
65
>>> d
{'张三': 90, '李四': 58, '周二': 100}

和list相比dict有以下几个特点
a.查找和插入的速度极快,不会随着key的增加而变慢

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

而list正好相反,所以dict是一种用空间换取时间的方法,需要牢记的是dict中key必须是不可变对象,list就不能作为key,而字符串、整数、元组都可以作为key

7.8 set

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

要创建一个set需要提供一个list作为输入集合

>>> s = set([1,2,'a','b',2])
>>> s
{'b', 1, 2, 'a'}

 注意,传入的参数是一个list,而显示的{  }只是告诉你这个set内部有这几种元素,显示的顺序也不表示set是有序的,并且重复元素会自动过滤

可以通过add(key)添加元素到set,可以重复添加,不会有效果,通过remove(key)删除元素

>>> s.add(3)
>>> s.add(3)
>>> s
{1, 2, 'a', 3, 'b'}
>>> s.remove('b')
>>> s
{1, 2, 'a', 3}

 set可以看出是数学意义上无序和无重复的元素的集合,因此两个set可以做数学意义上的交集、并集等操作

>>> s1
{1, 2, 3}
>>> s2
{2, 3, 4}
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}

 set和dict的唯一区别仅在于没有存储对应的value,但是set和dict一样,同样不可放入可变对象

7.9 空值(None) 

空值是python中一个特殊的值,用None表示,None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

8、运算符

8.1 算数运算

+ 加法 - 减法 * 乘法 / 除(使用/除时,结果为float类型) //地板除(结果为整数int) % 取余数  ** 次幂(2**2 表示2的2次幂结果4)

8.2 比较运算,输出结果为bool

== 等于   != 不等于(python3.0之后不可以写作<>) > 大于 <  小于  >=  大于等于  <=小于等于

8.3赋值运算

= 简单的赋值运算符

+=加法赋值运算符   c+=a相当于c=c+a

-=减法赋值运算符    c-=a相当于c=c-a

*=乘法赋值运算符   c*=a相当于c=c*a

/=除法赋值运算符   c/=a相当于c=c/a

%=取余赋值运算符  c%=a相当于c=c%a

除此之外还有**=  //=

8.4逻辑运算符

and  布尔与  两者都是True才是True,否则为False

or    布尔或  两者都是False才是False,否则为True

not  布尔非  非True就是False,非False就是True

8.5成员运算

in      如果在指定的序列找到值,则返回True,否则为False

not in     如果在指定的序列中没有找到值,返回True,否则为False

8.6身份运算

is      is是判断两个标识符是不是引用一个对象

is not     is not 是判断两个标识符是不是引用不同对象

8.7强制类型转换符

不同数据类型之间可以进行转换

>>> a = '1'
>>> type(a)
<class 'str'>
>>> int(a)
1
>>> b = int(a)
>>> type(b)
<class 'int'>

 

 8.8 python中不同对象进行比较需要使用operator模块

需要引入 operator 模块,适合任何对象,包含的方法有:

import operator

operator.lt(a, b)  a小于b? operator.le(a, b)  a小于等于b? operator.eq(a, b)  a等于b? operator.ne(a, b)  a不等于b? operator.ge(a, b)  a大于等于b? operator.gt(a, b)  a大于b
Python 运算符优先级
运算符描述
lambdaLambda表达式
or布尔“或”
and布尔“与”
not x布尔“非”
in,not in成员测试
is,is not同一性测试
<,<=,>,>=,!=,==比较
|按位或
^按位异或
&按位与
<<,>>移位
+,-加法与减法
*,/,%乘法、除法与取余
+x,-x正负号
~x按位翻转
**指数
x.attribute属性参考
x[index]下标
x[index:index]寻址段
f(arguments...)函数调用
(experession,...)绑定或元组显示
[expression,...]列表显示
{key:datum,...}字典显示
'expression,...'字符串转换

 9、判断语句和循环语句

python的语法比较简单,采用缩进方式;已#开头表示注释,批量注释使用'''。。。''',其他每一行都是一个语句,当语句已冒号:结尾时,缩进的语句视为代码块。按照约定俗成,缩进应始终坚持使用4个空格(不要tab键和空格混用,python是区分大小写的)。

9.1判断语句

简单的if判断语句为

if   条件:#条件为True

     执行结果

else:  #否则

     执行结果

if中还可以使用elif做更细致的判断,elif 是else if的缩写,if语句是从上往下判断,如果某个判断上是True,就会执行相应的结果,执行完毕后会忽略掉接下来的elif和else

9.2循环语句for

for...in....语句可以循环遍历list或tuple,又称作迭代,例:

names = ['Michael', 'Bob', 'Tracy']
for name in names:
    print(name)
#执行这段代码,会依次打印names的每一个元素:
Michael
Bob
Tracy

如果要计算从1到100的数之和,我们可以使用for循环实现

sum=0
#range()函数可以生成一个整数序列,range(1,101)代表从1开始取到100,相当于
#[1,2,3,4,5.....100]的一个列表
for i in range(1,101):
    sum = sum + i
print(sum)

9.3循环语句while

while循环是,只要条件满足,就不断循环,条件不满足时退出。例:

打印1到10的整数

>>> i=0
>>> while i <10:
...     i = i + 1
...     print(i)
...
1
2
3
4
5
6
7
8
9
10

在循环中,可以使用break和continue,需要配合if语句来使用,break是退出循环,continue是跳过当前循环

一个经典的猜数字的游戏

 1 #!/usr/bin/env python3
 2 #-*- coding: utf-8 -*-
 3 #经典猜数字游戏
 4 import random
 5 #取一个随机数(0-9)
 6 num = random.randint(0,9)
 7 #用户输入一个数字
 8 #给3次机会判断输入的数字跟获取的随机数是否相等,并给出提示,超过次数提示机会已用尽
 9 for i in range(3):
10     #用户输入一个数字
11     num_of_user = int(input('请输入一个0-9的数字:'))
12     #首先判断输入的数值是否0-9之间
13     while True:
14         if num_of_user in range(10):
15             break
16         else:
17             print('输入的数值超过0-9区间范围!,请重新输入')
18             num_of_user = int(input(''))
19     if num_of_user == num:
20         print('恭喜你猜对了!')
21         break
22     elif num_of_user > num:
23         print('你猜测的数字过大!')
24     else:
25         print('你猜测的数字小了!')
26     
27 else:
28     print('你的机会已用尽,对不起,你输了!')    
View Code

一个交互式的猜数字游戏

#!/usr/bin/env python3
#-*- coding: utf-8 -*-
#经典猜数字游戏
import random
#取一个随机数(0-9)
num = random.randint(0,9)
#创建一个计数器
count = 0
while count<3:
    #用户输入一个数字
    num_of_user = int(input('请输入一个0-9的数字:'))
    #计数器循环+1
    count += 1
    #首先判断输入的数值是否0-9之间
    while True:
        if num_of_user in range(10):
            break
        else:
            print('输入的数值超过0-9区间范围!,请重新输入')
            num_of_user = int(input(''))
    if num_of_user == num:
        print('恭喜你猜对了!')
        break
    elif num_of_user > num:
        print('你猜测的数字过大!')
    else:
        print('你猜测的数字小了!!')
    if count == 3:
        print('三次机会已用尽,请问你还想继续玩吗Y/N?')
        play_flag = input('')
        if play_flag == 'Y':
            count = 0
        elif play_flag == 'N':
            print('游戏结束。')
        else:
            print('输入的命令有误,游戏结束。')
View Code

 

 

 

转载于:https://www.cnblogs.com/lyzyy/p/7340389.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值