Python学习笔记一

1.   Python安装

            在官网www.python.org下载安装程序,可以支持的操作系统linux,windows,mac.

            Python版本:2.x和3.x,分别有x86和x64.

            在Windows系统下安装完成后,需要配置一下环境变量,方便使用Python交互式模式。

            查看当前系统的python版本命令:python -V

 2.  Python特点

            Python3.x 默认使用UTF-8编码,Python2.x默认使用ASCII编码。

            注释:使用#号,单行注释;使用单引号双引号,多行注释。

            采用行缩进的方式,表示代码块。

 3.  Python解释器工具Pycharm

 4.  数据类型之 数字类型

      int整型     float浮点型     complex复数

5.  数据类型之字符串

     

name=”yangjianbo”

print(name)

 

name=’yangjianbo’

print(name)

 

name=’’’yangjianbo’’’

print(name)

 

 

+  字符串连接

 例子:

   a="wo"
b="shi"
c="shui"
d=a +' ' +b +' ' + c
print(d)

 

*字符串重复输出

a='yangjianbo'
c=a*2
print(c)

 

[]取字符串的第几个字符,从左到右从0开始,从右到左,-1开始。

例子:
a='yangjianbo'
print(a[-2])

 

[:]取字符串的一部分

a='yangjianbo'
print(a[1:4])

从索引1开始,从左到右的第4位结束

输出的结果为ang.

5.  数据类型之列表

  • 特点:用方括号括起来,元素之间用逗号隔开

      列表索引从0开始(从左往右),从-1开始(从右往左)

例子:

system=['yangjianbo','wangyanhe','gaozhongmin',1,2,3]
print (system)

输出的结果:

 

  • 查看列表的长度

例子:

system=['yangjianbo','wangyanhe','gaozhongmin',1,2,3]
print (len(system))

输出的结果:

 

  • 输出列表list索引为1的元素,访问列表中的元素

例子:

system=['yangjianbo','wangyanhe','gaozhongmin',1,2,3]
print (system[1])

 

 

  • 更新列表元素

例子:

xitongbu=['yangjianbo','wangyanhe','gaozhongmin']
print (xitongbu)
xitongbu[2]='gushuwei'
print (xitongbu)

  • 删除列表元素

例子:

xitongbu=['yangjianbo','wangyanhe','gaozhongmin']
print (xitongbu)
xitongbu[2]='gushuwei'
print (xitongbu)
del xitongbu[2]   删除索引为2的元素
print (xitongbu)
del xitongbu      删除整个列表
print (xitongbu)

  • 列表操作符

len(list)  长度

 

[1,2,3]+[4,5,6]

例子:

list1=[1]
list2=[2]
# print (type(list1))
list3=list1+list2
print (list3)

 

重复元素

list=['yangjianbo']*4
print (list)

 

元素是否在列表中。

list=['yangjianbo','wangyanhe','gaozhongmin']
if 'yangjianbo' in list:
    print ("You are right!")
else:
    print ("You are wrong!")

  • 列表函数

len()  长度

 

max()  最大值,如果是整型直接比大小,如果是字符串,比英文字母靠后。

例子:

xitongbu=['yangjianbo','zazgyanhe','zaozhongmin']
print (max(xitongbu))

 

min()   最小值

例子:

xitongbu=['yangjianbo','zazgyanhe','zaozhongmin']
print (min(xitongbu))

 

list(元组名)   转换类型

例子:

ruanjianbu=('wangyanzhe','wangzhibing','liushuang')
ruanjianbu=list(ruanjianbu)
print (type(ruanjianbu))

输出的结果显示为list.

 

       列表方法

增加元素

默认会在最后添加一个新元素,这个方法没有返回值。

list.append(obj)

例子:

xitongbu=['yangjianbo','wangyanhe']
xitongbu.append(2222)
print (xitongbu)

 向原来的列表添加一个新的元素,这个方法只能添加一个元素,添加两个会有报错。

 

删除元素

默认会删除最后一个元素,并且返回该元素的值。

list.pop()

例子:

xitongbu=['yangjianbo','wangyanhe']
xitongbu.pop(0)
print (xitongbu)

 

插入元素

list.insert(index.obj)

例子:

xitongbu=['yangjianbo','wangyanhe']
xitongbu.insert(0,'gaozhongmin')
print (xitongbu)

在第一个元素添加。

 

统计元素的数量

list.count(obj)

例子:

xitongbu=['yangjianbo','wangyanhe','yangjianbo','yangjianbo']
print (xitongbu.count('yangjianbo'))

 

找出第一个匹配项的索引

list.index(obj)

例子:

xitongbu=['yangjianbo','wangyanhe','yangjianbo','yangjianbo']
print (xitongbu.index('wangyanhe'))

 

拿一个其他列表扩展列表

list.extend(list1)

list1=['yangjianbo','wangyanhe']
list2=[22,33]
list2.extend(list1)
print(list2)

 

删除某个值的第一个匹配项

list.remove(obj)

例子:

xitongbu=['yangjianbo','wangyanhe','gaozhongmin']
xitongbu.remove('yangjianbo')
print (xitongbu)

 

反向列表中元素

list.reverse

顺序倒序。

例子:

xitongbu=['yangjianbo','wangyanhe','gaozhongmin']
xitongbu.reverse()
print (xitongbu)

 

对列表进行排序

list.sort(obj)

       

6. 数据类型之Tuple元组

    • 特点:使用小括号,元组的元素不能被修改,只能读取。

当元组的元素只有一个的时候,必须在元素后面加一个逗号,否则,python会认为这是一个字符串。

    • 修改元组中的元素,

例子:

yuanzu=('yangjianbo','gaozhongmin','wangyanhe')
yuanzu[0]='zhangxueyou'
print (yuanzu[0])

输出结果直接报错了。

    • 删除元组

删除元组中的元素,会有报错

但是可以删除整个元组

例子:

del yuanzu

7.   集合

8.   Dictionary字典

    • 特点:每个键值组成一对,键值之间使用冒号隔开,整个字典使用{}。

      每对之间使用逗号隔开。

      键是唯一的,但值不必。

      键可以是字符串数字元组,不可以是列表,值可以使用任何类型。

      例子:

                xitongbu={['name']:'yangjianbo','age':30}
print (xitongbu)

      输出的结果报错,

     

      字典没有索引的概念,查看值的时候,不需要使用索引。

例子:

xitongbu={ 'name':'yangjianbo','zhiwu':'xitongguanliyuan'}
print (type(xitongbu))
print (xitongbu['name'])

输出结果,必须写明键名称。

 

每个键只能出现一次,如果出现两次,以后一个为准。

例子:

xitongbu={ 'name':'yangjianbo','zhiwu':'xitongguanliyuan','name':'wangyanhe'}
print (xitongbu)

 

 

    • 修改已存在的键的值。

例子:

xitongbu={ 'name':'yangjianbo','zhiwu':'xitongguanliyuan'}
xitongbu['name']='wangyanhe'
print (xitongbu['name'])

    • 添加一个新的键值。

例子:

xitongbu={ 'name':'yangjianbo','zhiwu':'xitongguanliyuan'}
xitongbu['age']='30'
print (xitongbu)

    • 删除字典

删除字典中的某个元素

例子:

xitongbu={ 'name':'yangjianbo','zhiwu':'xitongguanliyuan'}
xitongbu['age']='30'
del xitongbu['name']
print (xitongbu)

删除整个字典

del xitongbu

输出的时候,会找不到xitongbu的定义。

 

清空字典的内容

xitongbu.clear()    

xitongbu变量的定义还在,只是内容被清空。

    • 字典函数

cmp(字典1,字典2)   比较

len()   长度

str()   可打印的字符串

type()   类型

9.    Python运算符

算术运算符

+  加法

-  减法

*  乘法

/  除法

%  余数

**  幂数

//  除完的商数

比较算术符

==  等于

>=  大于等于

<=  小于等于

!=   不等于

>   大于

<   小于

例子:

a=12
b=19
if a > b:
    print("you are right")
else:
    print("you are wrong!")

l  赋值运算符

= 普通赋值

+= 加法赋值

例子:

num=1
a=5
num+=a
print(num)

相当于:num=num+a  ,输出的结果为:6

-=   减法赋值

例子:

num=1
a=5
num-=a
print(num)

相当于: num=num-a,输出的结果为:-4

*=  乘法赋值

例子:

num=9
a=5
num*=a
print(num)

相当于num=num*a,输出的结果:45

/=  除法赋值

num=8
a=3
num/=a
print(num)

相当于num=num/a,输出的结果:2.6666666666666665

//=  除法商数赋值

num=10
a=3
num//=a
print(num)

相当于num=num//a,输出的结果为:3

%=  除法余数赋值

num=10
a=3
num%=a
print(num)

相当于num=num%a,输出的结果为:1

**=  幂数赋值

num=10
a=3
num**=a
print(num)

相当于num=num**a,输出的结果为:1000

 

Python位运算符

python把数字当做二进制来进行计算。

&: 参与运算的两个值,如果对应位都为1,则结果为1.
a=5   0101
b=6   0110
c=a&b   
print(c)
输出结果为0100,转换为十进制为4.
|: 参与运算的两个值,如果对应位有一个为1,则结果为1.
a=5   0101
b=6   0110
c=a|b
print(c)
输出结果为0111,转换为十进制为7

^: 表示对应位的不同时,结果为1.

a=5   0101
b=6   0110
c=a^b 
print(c)

输出结果为0011,转换为十进制为3.

~:对应的二进制取反,1取0,0取1.(不明白)

a=5   0101
b=6   0110
c=~b 
print(c)

输出的结果为

 Python逻辑运算符

and

    • or

not

10.  条件语句

        

l  条件语句的执行过程

 

      Python学习笔记一_第1张图片

 

 

 if  判断条件:

 

   执行语句……

 

else:

 

   执行语句……

 

例子:

 

       name='yangjianbo'
if name=='yangjianbo':
     print('了四五度')
else:
     print('pgone')

 

         因为符合if的条件,条件为true,所以执行if后面的代码,打印出了四五度.

 

if有多个判断条件,应该怎么写呢?

 

例子:

 

name='yangjianbo'
age=20
if name=='yangjianbo' and age >25:
     print('了四五度')
else:
     print('pg one')

 

if的判断条件为name等于yangjianbo,并且age要大于25,但是当前age不符合条件,所以,直接执行else后面的代码。

 

当判断的值有多个的时候,就需要使用if ... elif ... else,格式如下:

 

if 判断条件1:

           执行语句1……

elif 判断条件2:

           执行语句2……

elif 判断条件3:

           执行语句3……

else:

           执行语句4……

 

例子:

 

age=input('请输入你的年龄>>:')
age=int(age)
if age>50:
    print('奶奶,你好!')
elif age>30:
    print('阿姨,你好!')
elif age>20:
    print('姐姐,你好!')
else:
    print('老妹,你好!')

 

 

11.  循环语句

    

循环结构图

 

       Python学习笔记一_第2张图片

 

当条件符合时,则进行循环,否则,循环结束。

循环方式

while循环

while 判断条件:

     执行语句……

for循环

嵌套循环

 

例子:

 

count=0
while count<9:
    print("count:",count)
    count=count+1
print("循环结束!")

 

当count小于9时,条件符合,执行print,并count+1。

 

当count>=9时,条件不符合,执行与while对齐的print,循环结束。

 

12.  continue语句

count=0
while count<9:
    if count==6:
        count=count+1
         continue
    else
:
        print("count:",count)
        count=count+1
print("循环结束!")

 

输出的结果:

Python学习笔记一_第3张图片

         

从这个例子中,可以看出continue跳出count等于6时的循环。但是仍然继续7和8的循环。

 

13.  break语句

count=0
while count<9:
    if count==6:
        count=count+1
        break
    else
:
        print("count:",count)
        count=count+1
print("循环结束!")

 

输出的结果:

Python学习笔记一_第4张图片

从这个例子中,可以看出break跳出整个循环,直接执行循环结束了。

14. while +else:

只有while循环完成,才会执行else后面的语句,如果while循环被break,则不会执行else后面的语句。

15. 作业

#while练习题
#求1-100的所有数的和:
sum=0
count=1
while count<=100:
sum=sum+count
count+=1
else:
print(sum)


#输出1-100内的所有奇数
#奇数就是除2,余数为1.
count=1
while count<=100:
if count%2==1:
print (count)
count+=1
else:
count+=1

#输出1-100内的所有偶数
#偶数就是除2,余数为0.
count=1
while count<=100:
if count%2==0:
print (count)
count+=1
else:
count+=1

#求1-2+3-4+5....99的所有数的和
count=1
sum_jishu=0

while count<=99:
if count%2!=0:
sum_jishu+=count
count+=2
else:
print("奇数和完成!")
sum_oushu = 0
count=2
while count<=99:
if count%2==0:
sum_oushu+=count
count+=2
else:
print("偶数和完成!")
jieguo=sum_jishu-sum_oushu
print(jieguo)
结果为50
#这个方法比较长,有重复的代码,想一下如何进行优化。我是利用奇数的总和减去偶数的总和,得到最后的结果的。
优化结果:
#求1-2+3-4+5....99的所有数的和
count=1
sum=0
while count<=99:
if count%2==0:
sum-=count
else:
sum+=count
count+=1
else:
print(sum)
结果为50


#用户登录(三次机会尝试)
name='yangjianbo'
pwd=123

count=0
while count<=2:
username = input("用户名:")
password = input("密码:")
if username==name and password==pwd:
print("登录成功!")
break
else:
print("登录失败!请重新登录!")
count+=1

else:
print("您已经登录三次!")


#猜年龄游戏
age=18
count=0
while count<=2:
guess=int(input("猜年龄:"))
if guess==age:
print("猜对了!")
break

else:
print("三次都不正确!")


#猜年龄游戏,老师的代码,更简单!
age=18
count=0
while count<=2:
guess=int(input("猜年龄:"))
if guess==age:
print("猜对了!")
break
count+=1


#猜年龄游戏升级版,
age=18
count=0
while count<=3:
if count==3:
choice=input("输入Y or N>>")
if choice=='Y':
count=0
else:
break
guess = int(input("猜年龄:"))
if guess==age:
break
count+=1
 
   
#格式化输出
print("My name is %s ,My age is %d" %('yangjianbo',18))
print ("Name : %s" %'yangjianbo')
print ("Age : %s" %22)
print ("Sex : %s" %'male')
print ("Age : %s" %'Teacher')
%s 可以接收字符串和整型
%d 只能接收整型

第一天作业:
#升级需求:
student_list=[{
     'yangjianbo':'123'},{
     'wangyanhe':'123456'}]
count=0
while count<3:
    username=input('用户名>>').strip()
    userpassword=input('密码>>').strip()
    with open('lock.txt','r') as lock:
        for i in lock:
            i=i.strip('\n')
            if username == i:
                print('该账号已经被锁定!请换其他账号!')
                break
    for i in student_list:
        if username in i.keys() and userpassword in i.values():
            print('欢迎您到来,您登陆成功了!')
            break
    else:
            count+=1
            print("请重新输入用户名和密码")
else:
    print('您已经输入三次了,账户被锁定!')
    with open('lock.txt','a') as lock_file:
        lock_file.write('%s\n'%username)

满足需求:

  • 让用户输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后退出程序 可以支持多个用户登录 (提示,通过列表存多个账户信息)
  • 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)














 

转载于:https://www.cnblogs.com/yangjianbo/p/7491184.html

你可能感兴趣的:(Python学习笔记一)