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 ...
随机推荐
- poj1852 Ants(思维)
https://vjudge.net/problem/POJ-1852 最短时间显然是各自往靠近端点的地方走. 最长时间关键是要想到,折返和擦肩其实是一样的,可以当成两只蚂蚁换了个位子,最终求max是 ...
- 问题9:tabtle 整理
合并“行”单元格: <th colspan="2">Telephone</th> 合并“列”单元格: <th rowspan="2" ...
- 使用log4net生成日志文件
(一)使用log4net生成日志文件 1.引入log4net.dll 1.1 Nuget安装 或 http://logging.apache.org/log4net/下载log4net的源代码,编 ...
- DBS:TestSys
ylbtech-DBS:TestSys 1.返回顶部 1. -- ============================================= -- 测试系统 -- 2018-4-12 ...
- mysql函数之SUBSTRING_INDEX(str,"/",-1)
SUBSTRING_INDEX的用法: •SUBSTRING_INDEX(str,delim,count) 在定界符 delim 以及count 出现前,从字符串str返回自字符串.若count为正值 ...
- quartz集群分布式(并发)部署解决方案
项目中使用分布式并发部署定时任务,多台跨JVM,按照常理逻辑每个JVM的定时任务会各自运行,这样就会存在问题,多台分布式JVM机器的应用服务同时干活,一个是加重服务负担,另外一个是存在严重的逻辑问题, ...
- 基于git命令的代码统计方法
基于git命令的代码统计方法 没什么好说的,基于git log命令,使用前提是安装了git ...... .统计所有人代码量 统计所有人代码增删量,拷贝如下命令,直接在git bash等终端,git项 ...
- 每天一个linux命令(9):touch
1.命令简介 touch命令将每个文件的访问时间和修改时间改为当前时间. 2.用法 touch [选项]... 文件... 3.选项 -a 只更改访问时间 -c, --no-create 不创建任何文 ...
- Spring Boot系列——如何集成Log4j2
上篇<Spring Boot系列--日志配置>介绍了Spring Boot如何进行日志配置,日志系统用的是Spring Boot默认的LogBack. 事实上,除了使用默认的LogBack ...
- vivado和modelsim联合调试仿真
vivado和modelsim联合调试仿真 0赞 发表于 2017/5/10 19:10:59 阅读(881) 评论(0) 使用vivado和modelsim联合调试仿真时,在破解完modelsim后 ...