python 笔记 week1-- if while for
1.添加环境变量
windows要加环境变量。
linux若升级版本不一致,
#!/usr/bin/env python 调用环境变量中的python
#!/usr/bin/python 调用系统中默认的python
2.字符编码
二进制到数字的转换:x位0与1 可以表示的最大数字为2**x -1
1)ASSCII(美国标准信息交换代码):将数字与字符相联系,从而二进制表示出数字转化为字符。其最多只能用8byte位来表示一个字节。即2**8-1=255,故其最多只能表示255个字符。
其中0-127先使用了,后边预留了128-255;
2)GB2312,1980年中国取了一个数字范围作为中文的索引,引入GB2312,共7000多个汉字加字符;
3)GBK1.0,1995年扩展到GBK1.0。
4)GBK18030,2000年GBK18030收录了27484个汉字,现在的pc平台必须支持GBK18030,对嵌入式产品暂不做要求,故手机、MP3一般只支持GB2312。
ASSCII ---> GB2312 ---> GBK ---> GBK18030都是向下兼容的。
之后由于多个国家都进行重编,字符混乱。
5)Unicode(统一码),为每种语言每个字符设置了统一并唯一的二进制编码 。每个字符占两个字节,即16byte位。缺点:所占用的空间大。
utf-8在Unicode基础上做了改进,存英文字符占用1个字节,存其他语言占用两个字节。即 00000000 10001110 有一个字节的8位都是0,就省略。
python3字符编码默认utf-8
python2字符默认ASCII,固要想在py2中使用中文需要先声明字符集为utf-8,即 # -*- coding:utf-8 -*-
eg: 2,3不同点
name = "你好,世界!"
print (name)
===============================================================================
3.python变量
变量定义规则:
1)变量名只能为字母、数字或下划线的任意组合
2)变量名的第一个字符不能是数字
3)有部分系统已经使用的关键字不能声明为变量名:"and" "as" "break" "def" "with" etc.
4)变量名尽量达意,以_或大写字母表达(GF_of_sb 或 GFOfSb),常量(pai 3.1415926就是一个常量)通常以大写字母来命名。
4.python中注释与打印多行:
1)单行注释 #
2)多行注释''' 多行 ''' 三个单/双引号
3)打印多行 ''' 多行 ''' 三个单/双引号
python中单/双引号用法完全一致,唯一要注意单双引号互套的情况 "i'm a girl"
eg:
name = " 你好,世界!"
'''
print (name)
print (name)
print (name)
'''
msg = '''
print (name)
print (name)
'''
#print (name)
print (msg)
print (name)
执行结果:
print (name)
print (name)
你好,世界!
5.input、引入变量与密文输入
1)脚本等待用户输入执行,如同shell的read -p:
username = input('usrname:')
print (username)
2)格式化输出,引入变量:字符串拼接 4种方法'''str''' 与%s
注:%s 代表此处接受字符串
%d 代表此处接受整数
%f 代表此处接受浮点数
要注意对应的变量的type,在接受变量时可强制转化
eg:当引入变量 %d 将字符串转化为数字 age =int(input("age:"))
py2 的raw_input = py3 的input
eg:
name = input("name:")
age = input("age:")
job = input("job:")
salary = input("salary:")
#法一:
info = '''
----------------- info of ''' +name+ '''--------------------
Name:''' +name+ '''
Age:''' +age+ '''
Job:''' +job+ '''
Salary:''' + salary+ '''
'''
print (info)
#法二:
info = '''
----------------- info of %s -----------------
Name:%s
Age:%s
Job:%s
Salary:%s
''' % (name,name,age,salary)
#法三:
info = '''
----------------- info of {_name}} -----------------
Name:{_name}
Age:{_age}
Job:{_job}
Salary:{_salary}
''' .format(_name=name,
_age=age,
_job=job,
_salary=salary)
#法四:
info = '''
----------------- info of {0}} -----------------
Name:{0}
Age:{1}
Job:{2}
Salary:{3}
''' .format(name,age,job,salary)
print (info)
执行结果:
----------------- info of yh--------------------
Name:yh
Age:22
Job:it
Salary:00
5)密文输入(在pycharm中不好使)
import getpass
username = input("username:")
password = getpass.getpass("password:")
print(username,password)
if:
--------------------------
_username = 'yh'
_password = 'yanghuan'
username = input("username:")
password = input("password:")
print(username,password)
if _username == username and _password == password:
print("welcome user {name} login...".format(name = username))
else:
print("invalid username or password!")
执行结果:
username:yh
password:yanghuan
yh yanghuan
welcome user yh login...
========================================================================
4. 猜年龄脚本:if while for -else break continue
(if-elif-else while错了猜三次)
age_of_oldboy = 56
count = 0
while True:
if count == 3:
break
guess_age = int(input("guess age:"))
if guess_age == age_of_oldboy:
print("yes,u got it!")
break
elif guess_age > age_of_oldboy:
print("think smaller")
else:
print("think bigger")
count +=1
if count == 3:
print("you have tried too many times..")
优化:
while True:
if count == 3:
break
改为:
while count<3:
------------------
if count == 3:
print("you have tried too many times..")
改为:
else:
print("you have tried too many times..")
---------------------------------------------
注:while-else 中的else代表while不成立走else
猜三次不对自动退出:
age_of_oldboy = 56
count = 0
while count<3:
guess_age = int(input("guess age:"))
if guess_age == age_of_oldboy:
print("yes,u got it!")
break
elif guess_age > age_of_oldboy:
print("think smaller")
else:
print("think bigger")
count +=1
else:
print("you have tried too many times..")
-------------------------------------------------------
猜三次input n 退出,任意键继续:
age_of_oldboy = 56
count = 0
while count<3:
guess_age = int(input("guess age:"))
if guess_age == age_of_oldboy:
print("yes,u got it!")
break
elif guess_age > age_of_oldboy:
print("think smaller")
else:
print("think bigger")
count +=1
if count == 3:
continue_guess = input("do u want to keep guess?")
if continue_guess != "n":
count = 0
-----------------------------------------------------------------------------------
for循环:
for-else:
当for正常执行完毕,执行else;
当for break非正常退出,不执行else。
for-break:
break:跳出break所在的整个for循环,包括else。
for-contine:
contine:跳出此次循环,进行下次循环,包括else。
age_of_oldboy = 56
for i in range(3):
guess_age = int(input("guess age:"))
if guess_age == age_of_oldboy:
print("yes,u got it!")
break
elif guess_age > age_of_oldboy:
print("think smaller")
else:
print("think bigger")
else:
print("you have tried too many times..")
------------------------------------------
for i in range(1,5):
if i <3:
print("loop",i)
else:
continue
print("hehe...",i)
执行结果:
loop 1
hehe... 1
loop 2
hehe... 2
------------------------------------------
for i in range(0,10,2):#从0开始,隔一个数打印一次
print("loop",i)
=====================================================================
homework:
作业:
1.编写登陆接口
输入用户名密码
认证成功后显示欢迎信息
输错三次后锁定
2.多级菜单
三级菜单,b返回上一级,q可以在任意一级退出程序
可依次选择进入各子菜单
所需知识点:列表 、字典
交作业格式:
Readme
blog addr
program summary
流程图
代码
python 笔记 week1-- if while for的更多相关文章
- Python笔记之不可不练
如果您已经有了一定的Python编程基础,那么本文就是为您的编程能力锦上添花,如果您刚刚开始对Python有一点点兴趣,不怕,Python的重点基础知识已经总结在博文<Python笔记之不可不知 ...
- boost.python笔记
boost.python笔记 标签: boost.python,python, C++ 简介 Boost.python是什么? 它是boost库的一部分,随boost一起安装,用来实现C++和Pyth ...
- 20.Python笔记之SqlAlchemy使用
Date:2016-03-27 Title:20.Python笔记之SqlAlchemy使用 Tags:python Category:Python 作者:刘耀 博客:www.liuyao.me 一. ...
- Python笔记——类定义
Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属 ...
- 13.python笔记之pyyaml模块
Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...
- 8.python笔记之面向对象基础
title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...
- python笔记 - day8
python笔记 - day8 参考: http://www.cnblogs.com/wupeiqi/p/4766801.html http://www.cnblogs.com/wupeiqi/art ...
- python笔记 - day7-1 之面向对象编程
python笔记 - day7-1 之面向对象编程 什么时候用面向对象: 多个函数的参数相同: 当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性的封装到对象,以后去对象中取值即可: ...
- python笔记 - day7
python笔记 - day7 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 面向对象,初级篇: http://www.cnblog ...
- python笔记 - day6
python笔记 - day6 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 大纲: 利用递归,实现阶乘: Python反射 pyt ...
随机推荐
- CSS学习之路,指定值,计算值,使用值。
前面被问过这几个值得区别,没太研究,有点抠文字的感觉,既然到这儿了 ,就简答梳理下吧. 指定值(specified value):通过样式表样式规则定义的值:可以来自层叠样式表,如果没有指定,则考虑父 ...
- JAVA自学笔记11
JAVA自学笔记11 1:Eclipse的安装 2:用Eclipse写一个HelloWorld案例,最终在控制台输出你的名字 A:创建项目 B:在src目录下创建包.cn.itcast C:在cn.i ...
- #define LT(a,b) ((a)<(b))
就是带参数的宏定义 LT是函数名 (a,b )是参数表((a)<(b))是表达式返回一个布尔类型的值
- Cenos7 部署asp.net core站点
系统版本 rpm -q centos-release --- centos-release--5.1804.el7.centos.x86_64 安装libicu yum install libunwi ...
- 介绍三款串口监控工具:Device Monitoring Studio,portmon,Comspy
在开发上位机下位机通讯程序时,有一个好的监控工具会事半功倍.特在网上找了几款串口监控软件,作了简单对比: 一.Device Monitoring Studio 网址:http://www.hhdsof ...
- /debug/requests is already registered. You may have two independent copies of golang.org/x/net/trace in your binary, trying to maintain separate state. This may involve a vendored copy of golang.org/x
找到问题就很好解决了,直接百度 go依赖管理-govendor go get -u github.com/kardianos/govendor 先获取这个,然后将govendor.exe放入path ...
- ReactNative如何在JS中引用原生自定义控件(rn变化太快,网上很多教程有坑,这个我研究后可用,特意分享)
直接写一个Demo例子,有相关功底的肯定明白,会对特别的地方进行提醒,本文基于https://blog.csdn.net/lintcgirl/article/details/53489490,但是按此 ...
- .net core安装及初体验
.net core安装及初体验 .net core 作为微软的新一代技术,在开发跨平台.微服务等方面有很大的优势,也更贴近现代的编码习惯.在2.0版发布很久以后,近期终于决定进行学习和体验. 安装 作 ...
- Lua require 相对路径
lua require 加载方式与我们现在熟知的路径系统不太一样,想要知道lua require 方法的工作原理也很简单 随便写一个错误的require 代码即可: 1 require("l ...
- Go 语言极速入门
本系列文章主要是记录<Go 语言实战>和<Google 资深工程师深度讲解 Go 语言>的学习笔记. Go 语言极速入门1 - 环境搭建与最简姿势Go 语言极速入门2 - 基础 ...