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 ...
随机推荐
- IO流(2)—知识结构
结构: 注:此IO包下主要介绍: 节点流:(字节流)FileInputStream.FileOutputStream.(字符流)Filereader.FileWriter 处理流(缓冲流):(字节流) ...
- 35、concurrent.futures模块与协程
concurrent.futures —Launching parallel tasks concurrent.futures模块同时提供了进程池和线程池,它是将来的使用趋势,同样我们之前学习 ...
- Nancy的基本用法
在前面的文章轻量级的Web框架——Nancy中简单的介绍了一下Nancy的特点,今天这里就介绍下它的基本用法,由于2.0的版本还是预览状态,我这里用的是1.4版本,和最小的版本API还是有些差异的. ...
- MYSQL的联合查询最好是少用,效能差异巨大
同样的功能,不同的写法,时间和内存占用差了几千倍,不废话,直接上代码 第一种写法: 代码如下: $Rs=DB::get($_ENV['DB'],3,"SELECT * FROM _xiazh ...
- 【转】Wireshark和Fiddler分析Android中的TLS协议包数据(附带案例样本)
本文转自:http://www.wjdiankong.cn/wireshark%E5%92%8Cfiddler%E5%88%86%E6%9E%90android%E4%B8%AD%E7%9A%84tl ...
- bootstrap-3-fileinput上传案例
效果 导入的js和css <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/ ...
- hive-相关报错处理${system:java.io.tmpdir}
在使用hive的时候启动成功 [root@localhost bin]# ./hive which: no hbase in (/usr/local/hive/apache-hive-2.1.1-bi ...
- Win10系统的SurfacePro4如何重装系统-2 重装WIN10系统
把SurfacePro充好电,然后关机,开机按住音量+,然后再按电源键,可以开机并进入BIOS(此前应确保优盘已经装了PE并插入Surface) 然后选择U盘启动为第一个(按住之后把他拖放到第一位 ...
- “5W1H”带你来学习JavaScript
上次的设计模式讲课,从中学习到了非常多.不仅是技术上,更重要的是怎样来学习.我们学习的技术.科技的更新速度超过我们的想象,对于我们这个有生命年限的个体,怎样可以在有生之年可以让自己立足于科技的不败浪潮 ...
- CentOS 6.5 x64下安装VMware tools
[root@CentOS6 /]# mount /dev/cdrom /mnt mount: block device /dev/sr0 is write-protected, mounting re ...