1. python的安装
  2. python2.x与3.x的部分区别
  3. 第一个python程序
  4. 变量
  5. 字符编码
  6. 注释
  7. 格式化字符串
  8. 用户输入
  9. 常用的模块初始
  10. if判断
  11. 循环语句
  12. 作业

1.python的安装

可以在python的官方网站上下载python 地址是 https://www.python.org/downloads/
官方网站是有两个不同的版本 一个是python2.x 一个是python3.x 这个两个版本是并不兼容,我下载的是python3.x
在winodws下python安装直接双击.exe文件,然后可以一路的下一步。(当然,比如程序保存的位置什么的,你还是需要看看的)
然后CTRL+R输入cmd弹出命令行,输入python

C:\Users\administrator>python
Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:54:25) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

即安装成功,并且系统环境变量也添加成功

2. python2.x 和python3.x的区别(简单的了解)

print的输出不同

最直接明显的区别是python2.x输出语句print ""变成了python3.x中的print()函数,也就是python3中必须用括号来将需要输出的对象括起来。
另外在python2.7.x中官方做了对python3.x的兼容,所以在2.7.x版本中是支持print()输出,但是python3.x是不支持print"",会报错SyntaxError: Missing parentheses in call to 'print'

在python2.7.10下

Python 2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> print "hello world"
hello world
>>> print("hello world")
hello world
>>>

在python3.5.1下

Python 3.5.1 (v3.5.1:37a07cee5969, Dec  6 2015, 01:54:25) [MSC v.1900 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> print ("hello world")
hello world
>>> print "hello world"
SyntaxError: Missing parentheses in call to 'print'
>>>

Unicode

python2.x 需要在头部申明? # -*- coding:utf-8 -*-才能在程序中输出中文,不然会报错,而python3.x可以直接对中文的输出

input解析用户输入

在python2.x中用input()获取用户的输入存储为int,使用raw_input()存储为str。
而在python3.x中,input()就将用户的输入存储为str类型,避免2.x版本中,在input()中输入其他类型引起不必要的报错。

某些库改名字了

额,2.x版本还没用好,并不熟悉库,所以也没记住什么库改了,学好认识3.x的库就好了把

3.第一个Python程序

输出第一个3.x的语句

#!/usr/bin/env python
print ("Hello World") #输出:
hello world

缩进

python是一个优美的语言,所以程序不像C/C++/JAVA 是用{}来区分代码块,而是靠缩进来区分代码块的。

#!/usr/bin/env python
print("hello world")
for i in range(10):
print(i)
if i = 5:
break

执行

在winodws下 用命令行python来执行

4.变量

python的变量声明和php等多类型语言类似,不需要声明变量类型

#!/usr/bin/env python
# version python 3.x name = "python" # 字符串类型
num = 5 # 整型

上述代码中,给变量名为name的赋值为str类型的python,给num赋值int类型数字5。

变量命名规则

命名规则:
1.只能包含数字、字母和下划线
2.不能以数字开头
3.不能是python的关键字
符合上面条件的都可以申明为变量名 比如:
name
name0629
szy_wm
_num_0629
都是可以的 下面这些都是不可以的:
1name
number xing
aaaa$
if 变量赋值
name1 = "A"
name2 = 'B' num1 = 5
num2 = 6

在python中直接使用等号=赋值,字符串类型用''或者""包含起来,数字类型直接输入数字。类型由python自动识别

5.字符编码

python2中默认是支持ascill如果输出中文需要先应该显示的告诉python解释器,用什么编码来执行源代码,即:# -*- coding: utf-8 -*-

 

6.注释

当行注视:# 被注释内容
多行注释:””” 被注释内容 “””

# 被注释内容单行注释

""" 被注释内容
被注释内容
被注释内容
被注释内容
"""

注释的内容程序不会执行,注释是给开发者用来提示等作用的

7.格式化字符串

#!/usr/bin/env python
name = "SemameMing"
age = 23
money = 5.20
print("%s今年%d岁,身上只有%f块钱"% (name,age,money)) 输出:
>>>SemameMing今年23岁,身上只有5.200000块钱

可以看见print里的%s %d %f 被变量给替换
字符串是%s , 整数是%d , 浮点是%f

8.用户输入

#!/usr/bin/env python

#name = raw_input("What is your name?") #python2.x版本下的输入
name = input("What is your name?")
print("Hello " + name )

输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:

#!/usr/bin/env python

import getpass
# 将用户输入的内容赋值给 pwd 变量
pwd = getpass.getpass("请输入密码:")
# 打印输入的内容
print(pwd)

但是getpass()在Pycharm软件不能正常使用,需要在交互模式下来执行

9.常用模块初始

os模块、sys模块

10.if判断

各个语言都存在用来判断的语句

#!/usr/bin/env python

num = 1
if num == 1:
print('这个判断是对的')
#或者
if num == 1:
print('这个判断是对的')
else:
pass
#或者
if num == 1:
print('这个判断是对的')
else:
print('这个判断是错的')

if 或者 if...else.. 或者 if...elif...else...语句都是判断语句,根据自己的具体程序要求来使用

11.循环语句

while

i = 0
while True:
i += 1 输出:
1
2
3
...
无限循环累加

只要满足while后面的条件 就会一直循环执行while代码块里的内容

for

#!/usr/bin/env python

for i in range(5):
print(i) #输出:
1
2
3
4
5

break

在循环语句中,可以使用break跳出整个循环

#!/usr/bin/env python
i = 0
while True
i += 1
print(i)
if i == 3:
break #输出:
1
2
3

比如上诉代码 while True本身是一个无限循环,但是当i累加到3的 执行了if判断里的break 就跳出了循环

continue

在循环语句中,可以使用continue跳出本次循环,接着执行一下循环

#!/usr/bin/env python
i = 0
for i in range(5)
print(i)
if i == 3:
break
#输出:
1
2
4
5

12.作业

模拟登陆:
1. 用户输入帐号密码进行登陆
2. 用户信息保存在文件内
3. 用户密码输入错误三次后锁定用户

三级菜单:
1. 运行程序输出第一级菜单
2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单
3. 菜单数据保存在文件中

模拟登录作业

#!/usr/bin/env python
# -*-coding:utf-8-*-
# Author:SemaseMing <blog.v-api.cn>
# Time:2016-08-16 23:40
# ---------------
# 编写登陆接口
# 输入用户名密码
# 认证成功后显示欢迎信息
# 输错三次后锁定
# -----------------
import os
import sys userdict = {}
wuserdata = []
REEOR_NUM = 3 # 最大失败出次
USERFILE = 'user.txt' # 配置文件名称 if os.path.exists(USERFILE):
print("系统文件加载正常")
else:
print("丢失配置文件,请检查文件完整性,退出")
sys.exit(1) print("欢迎来到Python系统,请先登录") while True:
username = input("用户名:")
password = input("密码:")
# 读取用户登陆文件
user_data = open(USERFILE)
for data in user_data:
userlist = data.strip()
userdata = userlist.split(',')
user_name = userdata[0].strip()
user_passwd = userdata[1].strip()
user_lock = userdata[2].strip()
user_error_num = int(userdata[3].strip())
userdict[user_name] = {'username':user_name,'password':user_passwd,'lock':user_lock,'errornum':user_error_num}
user_data.close() # 判断用户账户是否合法
if username in userdict.keys():
if userdict[username]['lock'] == '1':
print('该账户已被锁定,请联系管理员')
break
# 判断用户名密码是否匹配
if username == userdict[username]['username'] and password == userdict[username]['password']:
print("Success! 登录成功,欢迎",username)
break
else:
userdict[username]['errornum'] += 1
if userdict[username]['errornum'] >= REEOR_NUM:
print('帐号密码输入错误%d次,被锁定,退出' % REEOR_NUM)
userdict[username]['lock'] = 1
userdict[username]['errornum'] = 0
else:
print('帐号密码错误')
wirte_data = open(USERFILE,'w+')
for t in userdict.values():
wuserdata = [t['username'], t['password'], str(t['lock']), str(t['errornum']), '\n']
wuserdatestr = ','.join(wuserdata)
wirte_data.write(wuserdatestr)
wirte_data.close()
if userdict[username]['errornum'] >= 3:
break
else:
print('帐号或密码错误')

user.txt

username,password,0,0,
semaseming,111111,0,0,
root,111,0,1,

三级菜单代码

#!/usr/bin/env python
# -*-coding:utf-8-*-
# Author:SemaseMing <blog.v-api.cn>
# Time:2016-08-17 22:23 # 三级菜单。
# b:返回上一级 q:退出整个程序 y:到第一级 # 还是一个总的菜单呢
menu_list = {
1: {
'name': '中国'
, 'info': {
1: {
'name': '北京',
'info': {
1: {
'name': '北京市',
'info': '北京是中国的首都'
}
}
},
2: {
'name': '上海',
'info': {
1: {
'name': '上海市',
'info': '上海是一个非常有魅力的地方,我想去的地方'
}
}
}
}
},
2: {
'name': '美国',
'info': {
1: {
'name': '加州',
'info': {
1: {
'name': '洛杉矶',
'info': '天使之城'
},
2: {
'name': '旧金山',
'info': '旧金山唐人街'
}
}
}
}
}
} country_flag = True #第一层循环控制 QUIT = "q" #退出字符
LAST = "b" #上一层字符
DYC = "y" #返回到第一层
print("欢迎来到菜单选择 %s:退出 %s:返回上一层 %s: 返回到第一层" % (QUIT, LAST, DYC))
#第一层循环
while country_flag:
province_flag = True # 第二层循环控制
city_flag = True # 第三层循环控制
for i in menu_list:
print(i, '.', menu_list[i]['name'])
num_1 = input("请输入一级菜单号:")
if num_1==QUIT:
print("退出程序")
country_flag = False
continue
elif num_1 == LAST:
print("第一层没有上一级")
continue
elif num_1 == DYC:
print("这就是第一层拉")
elif num_1.isdigit():
num_int_1 = int(num_1)
if num_int_1 <= len(menu_list):
#第二层循环
while province_flag:
city_flag = True
for k in menu_list[num_int_1]['info']:
print(k,'.',menu_list[num_int_1]['info'][k]['name'])
num_2 = input("请输入二级菜单:")
if num_2==QUIT:
country_flag = False
province_flag = False
continue
elif num_2 == LAST:
province_flag = False
continue
elif num_2 == DYC:
province_flag = False
continue
elif num_2.isdigit():
num_int_2 = int(num_2)
if num_int_2 <= len(menu_list[num_int_1]['info']):
#第三层循环
while city_flag:
for l in menu_list[num_int_1]['info'][num_int_2]['info']:
print(l, '.', menu_list[num_int_1]['info'][num_int_2]['info'][l]['name'],menu_list[num_int_1]['info'][num_int_2]['info'][l]['info'])
num_3 = input("请输入菜单:")
if num_3 == QUIT:
print("退出程序")
country_flag =False
province_flag = False
city_flag = False
continue
elif num_3 == LAST:
city_flag = False
continue
elif num_3 == DYC:
province_flag = False
city_flag = False
continue
elif num_3.isdigit():
print("这已经是最后一层菜单,请其他选择 %s:退出 %s:返回上一层 %s: 返回到第一层"% (QUIT, LAST, DYC))
else:
print('错误的数字编号输入,请重新输入')
else:
print('错误的数字编号输入')
else: # 第一层的退到第一层
pass print("退出程序")

  

Python基础(一),Day1的更多相关文章

  1. python基础之day1

    Python 简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python为我们提供了非常完善的基础代码库,覆盖了 ...

  2. python基础篇-day1

    python基础篇 python是由C语言写的: pass 占位符: del,python中全局的功能,删除内存中的数据: 变量赋值的方法: user,pass = 'freddy','freddy1 ...

  3. Python基础(Day1)

    一.Python的简介  1.Python的诞生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发 ...

  4. Python 基础学习day1

    1.计算机的组成 CPU:相当于人的大脑,预算中心. 内存:临时加载数据或者程序. 缺点:断电即消失. 硬盘:存放所有的数据,输入输出设备. 2.什么是操作系统. 调控所有硬件与软件的中间介质. 3. ...

  5. Python基础,day1

    一. Python介绍 目前Python主要应用领域: 云计算: 云计算最火的语言, 典型应用OpenStack WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, ...

  6. 9-Python基础知识-day1

    Python基础知识-day1 Python 2 和Python 3 的区别: Python2 源码不标准,混乱,重复代码多:#-*-encoding:utf8 -*- 解决python2显示中文的问 ...

  7. Day1 - Python基础1 介绍、基本语法、流程控制

    Python之路,Day1 - Python基础1   本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼 ...

  8. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

  9. python基础day1

    一.python介绍 1.1简介 Python  (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum ...

  10. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

随机推荐

  1. Visual Studio快捷键 [VS2008/VS2005]快捷键

    VS系统通用快捷键: 1.自动排版(类似VC6中的Alt+F8) 编辑.格式化选定内容 Ctrl + K,Ctrl + F 根据周围的代码行,正确缩进选定的代码行. 2.注释与去掉注释功能. 编辑.注 ...

  2. Android showing LoadingView or EmptyView for Activity or Fragment

    这几天利用一些时间,整理了一下,写了一个简单的工具类,用来快速的显示LoadingView或者EmptyView,以前都是定义一个layout,根布局为FrameLayout,再在layout布局文件 ...

  3. EF6+MYSQL之初体验

    初次使用EF6+MYSQL 这次的项目时间可拉得够长的,定制开发就是这样.客户真正用上了才能基本上不再改了.起先项目是php实现的,改造成桌面程序.用.net winform开发,像这种小项目肯定要用 ...

  4. wow7.1 xd 新手教程

    本人第一次录游戏视频,很多地方说错了 第一节说奶量百万,其实是十万 目前上传去百度云,录了奶德,跟猫德 [https://pan.baidu.com/s/1jIsLlg6]

  5. 让我们一起Go(十)

    前言: 本系列还没流产,继续难产中,哈哈,只怪我没专心,在期间又偷偷去学了python,ruby,scala,haskell这几种语言,如果你不幸是本系列的读者,那么你得慢慢等后面的了,等不及可以过几 ...

  6. MVC3.0学习笔记之元模型元数据ModelMetaData以及模型元数据提供系统

    模型元数据ModelMetaData是MVC中很重要的概念,它包括但不仅限于 模型的类型,模型包含了哪些属性,属性都是什么类型的,属性上都有什么特性. ASP.NET MVC3.0 提供了默认的模型元 ...

  7. CM: 使用gerrit,提交代码到CM

    1. Make sure your local git username matches with your Gerrit username, Gerrit username needs to be ...

  8. repo: 创建local manifest以及如何添加app到CM/Android build系统中

    The local manifest Creating a local manifest allows you to customize the list of repositories on you ...

  9. 再次讲解js中的回收机制是怎么一回事。

    在前几天的一篇闭包文章中我们简单的介绍了一下闭包,但是并没有深入的讲解,因为闭包涉及的知识点比较多,为了能够更好的理解闭包,今天讲解一下关于js中的回收机制. 在初识闭包一文中我说过js中有回收机制这 ...

  10. AppStore下载慢的真实原因

    今天有个朋友说他的app下载很慢,他说下载其他的不会,就他的会很慢很卡.我心想这东西苹果的我也没办法了呀,不过我心里也想我平时下载挺快的呀.于是就开始试试.搜索了几个app下载发现确实是有快有慢,并且 ...