欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python 自学之路-Day one

程序员文章站 2022-07-02 14:22:11
本博客,是在观看金角大王(Alex)的python之路的基础上完成,仅用于记录本人学习随记。 一、python介绍 二、变量 三、字符编码 四、用户交互 五、if-else流程判断 六、While循环语句 七、for循环语句 八、习题扩展 ......

一、python介绍

创始人吉多范罗苏姆(龟叔),脚本解释程序

应用领域广,数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等。

主要应用领域:

云计算:openstack;

web开发:经典框架django

科学运算、人工智能:典型库numpy,scipy,matplotlib,enthought librarys,pands

系统运维

金融:量化交易,金融分析,擅长策略回测

图像gui:pyqt,wxpython,tklnter

解释型语言:平台兼容性,灵活性,速度慢 

python 自学之路-Day one

 

动态类型语言:不用给任何变量指定数据类型,在第一次赋值的时候就会内部记录下来

强类型定义语言:变量被指定类型后,没有经过强制转换,数据类型就不可能改变

优点:易懂,开发效率高,移植性,扩展性,嵌入性

缺点:速度慢,不能加密,线程不能利用多cpu问题

解释器最广泛的是cpython

声明解释器#!/usr/bin/env python

 

二、变量:存储东西,为了调用

变量命名规则:第一个不能是数字,变量只能是字母、数字或下划线的组合。关键字不能声明为变量。变量名尽量使用英文单词。

 

三、字符编码

发展历程:

ascii 255 字节——1980 gb2312 7xxx——1995 gbk1.0 2w+——2000 gb18030 27xxx——unicode 2字节——utf-8 en:一字节,zh:3字节。

python解释器在加载.py文件中的代码时,会对内容进行编码(默认是ascii),需要告诉解释器是用什么编码来执行源代码,即加入:# -*- coding: utf-8 -*-

注释:

当行注释:#被注释内容

多行注释:”””被注释内容”””

msg=’’’ ‘’’打印多行,用三个引号把需要打印的内容包含在里面,再赋予一个变量,最后打印变量就可以实现。

四、用户交互

         input()指令

 

第一种结合多行打印可以实现用户交互,利用字符拼接’’’ + 变量 +’’’

python 自学之路-Day one
 1 # author: jc
 2 
 3 name = input("name:")
 4 
 5 age = input("age:")
 6 
 7 job = input("job:")
 8 
 9 salary = input("salary:")
10 
11 
12 info = '''
13 ----------info of ''' + name + ''' ----------
14 
15 name:'''+ name + '''
16 
17 age:'''+ age + '''
18 
19 job:''' + job + '''
20 
21 salary:''' + salary
22 
23 
24 print(info)
view code

第二种方法格式化输出,在需要的位置添加%s,代表为string,当然可以为%d,但代表该位置只能接受数字,在程序后面需加上“%()”括号内的变量一一对应上面占用符,缺少时会报错。

python 自学之路-Day one
 1 # author: jc
 2 
 3 name = input("name:")
 4 
 5 age = input("age:")
 6 
 7 job = input("job:")
 8 
 9 salary = input("salary:")
10 
11 
12 info = '''
13 ---------- info of %s ----------
14 
15 name:%s
16 
17 age:%s
18 
19 job:%s
20 
21 salary:%s
22 
23 ''' %(name ,name,age ,job ,salary )
24 
25 
26 print(info)
view code

注意:

         在python中默认所有的输入都会是字符串,除非强制转换数据类型

python 自学之路-Day one
1 age = input("age:")
2 
3 print(type(age)) 
view code

通过type()指令可以查看数据类型,需要转为整型需要加入int()。

在python3中raw_input 和input是一模一样的,前者只在py2中存在。

在py2中input是输入是什么格式,所以就是什么格式,没有加上双引号会被自动默认为变量,系统会自动去寻找变量

第三种格式化输出,.format(),建议使用

python 自学之路-Day one
 1 info = '''
 2 
 3 ---------- info of {_name} ----------
 4 
 5 name:{_name}
 6 
 7 age:{_age}
 8 
 9 job:{_job}
10 
11 salary:{_salary}
12 
13 '''.format(_name=name ,
14 
15             _age=age,
16 
17             _job=job ,
18 
19             _salary=salary)
view code

format中还可以使用另一中输出,但同样不建议使用该输出模式,如下

python 自学之路-Day one
 1 info2 = '''
 2 
 3 ---------- info of {0} ----------
 4 
 5 name:{0}
 6 
 7 age:{1}
 8 
 9 job:{2}
10 
11 salary:{3}
12 
13 '''.format(name ,age,job ,salary)
view code

使用密文密码,调用标准库指令import,getpass是密文的库,但是在pycharm中会用不了(可能是bug吧。。。),所以需要在编译器使用

python 自学之路-Day one
 1 # author:jc
 2 
 3 import getpass
 4 
 5 
 6 
 7 username = input("username:")
 8 
 9 password = getpass .getpass ("password:")
10 
11 
12 
13 print(username,password)
view code

五、if-else流程判断

在python中有个特点在if语句中写完会自动强制缩进,在同等级的时候不需要进行缩进,当存在上下级关系的时候进行缩进,如果上下级之间没有进行缩进就会被执行,如果自身就是*的时候,就需要顶格写,不然会报错。

python 自学之路-Day one
1 if _username == username and _password == password:
2 
3     print("welecome user {name} login...".format(name =username ))
4 
5 else:
6 
7     print("invlid username or password!")
8 
9 print("test")
view code

if-else语句中还有一个elif语句,等同于c语言中的else if

猜年纪小游戏:利用判断语句if-else,根据用户输入的数字进行猜科比的年纪,分别得出三个答案,大于等于和小于。

例:

python 自学之路-Day one
 1 # author:jc
 2 
 3 kobe = 40
 4 
 5 
 6 guess_age = int(input("guess age:"))
 7 
 8 
 9 if guess_age == kobe:
10 
11     print("yes,you got it.")
12 
13 elif guess_age > kobe:
14 
15     print("think smaller...")
16 
17 else:
18 
19     print("think bigger!")
20  
view code

六、while循环语句

基本的一个while语句可以这样实现:会无限进行加一,true可以看成是循环语句中判断条件永远执行下去。

python 自学之路-Day one
1 count 0
2 
3 while true :
4 
5     print("count:",count)
6 
7     count = count + 1 #count +=1
view code

修改猜年龄游戏:使用while语句,只能猜3次,出现正确答案或者超过3次的时候程序退出,同时超过3次错误打印文字。

例:

python 自学之路-Day one
 1 kobe = 40
 2 
 3 while count < 3:
 4 
 5     guess_age = int (input("guess age:"))
 6 
 7     if guess_age == kobe:
 8 
 9         print("yes,you got it.")
10 
11         break
12 
13     elif guess_age > kobe:
14 
15         print("think smaller...")
16 
17     else:
18 
19         print("think bigger!")
20 
21     count += 1
22 
23 else:
24 
25     print("sorry..you tryed too many times...")
view code

加入break语句,使得程序在判断正确的时候跳出循环(结束循环),最后一个else是程序循环中条件不成立的情况下执行,while-else搭配,python特殊的地方。和break语句对应还有一个continue语句,是跳出本次循环进行下一次循环。(可以通过设置断点使用debug进行查看程序过程这样更直观)

七、for循环语句

实现打印0-9十位数

python 自学之路-Day one
1 for i  in range (10):
2 
3     print("loop:",i) 
view code

等同于下面:第一个是0代表的是开始的数字,中间的10代表10次,第三个1是步长,修改为2的话就是隔两个输出,类推。

python 自学之路-Day one
1 for i  in range (0,10,1):
2 
3     print("loop:",i)
view code

通过对for语句来对猜年龄游戏进行优化:

python 自学之路-Day one
 1 kobe = 40
 2 
 3 for i in range(3):
 4 
 5     guess_age = int (input("guess age:"))
 6 
 7     if guess_age == kobe:
 8 
 9         print("yes,you got it.")
10 
11         break
12 
13     elif guess_age > kobe:
14 
15         print("think smaller...")
16 
17     else:
18 
19         print("think bigger!")
20 
21 else:
22 
23     print("sorry..you tryed too many times...")
view code

猜年龄豪华玩法:游戏错误3次后进行询问用户是否进行继续,如果用户输入n则退出,否则继续进行

python 自学之路-Day one
 1 # author: jc
 2 
 3 kobe = 40
 4 
 5 count = 0
 6 
 7 while count < 3:
 8 
 9     guess_age = int (input("guess age:"))
10 
11     if guess_age == kobe:
12 
13         print("yes,you got it.")
14 
15         break
16 
17     elif guess_age > kobe:
18 
19         print("think smaller...")
20 
21     else:
22 
23         print("think bigger!")
24 
25     count +=1
26 
27     if count ==3:
28 
29         countine_cofirm = input("do you want to countine?")
30 
31         if countine_cofirm != 'n':
32 
33             count = 0
view code

 

 

 

习题练习和扩展

一、编写登陆接口:

  • 输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后锁定

二、多级菜单

  • 三级菜单
  • 可依次选择进入各子菜单
  • 所需新知识点:列表、字典