Day1---Hello,World!-----继续加油,明天完成作业编程
我使用的是PyCharm的解释器。
1.Hello World!
Hello World!是编程人员学习时必须要写的一行代码,这是一种特殊的仪式!
# Author:Taozi
print("Hello Word!")
Python 生成的文件是.py格式文件。
在CPython中写Hello World!格式如下:
C:\Users\Administrator>python
Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit (AM
D64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello World!")
Hello World!
>>>
2.变量及字符编码
声明变量:变量名=变量值
eg:
name="Taozi"
就是一个变量
name是变量名,Taozi是变量name的值。
变量定义的规则:
- 变量名只能是 字母、数字或下划线的任意组合(不能是中划线,因为中划线是减号)
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
[‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’, ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]
其他
约定俗成:
1.变量名要有含义,不要用随便的a.b.c.d等等来表示,后期看代码的时候容易混淆
2.变量名不能是汉语或者拼音
3.若变量名需要表示的内容比较多,可以用下划线或者大小写来区分
eg:老男孩的女朋友:gf_of_oldboy GfOfOldboy
4.常量:Python 中没有法定常量,如果自己要定义一个常量,则需要全部用大写表示,表达出不应改的意思。
变量的赋值
name = "Taozi"
name2 = name
print(name, name2) #此时,name2和name一样都是Taozi
name = "Jack"
print("What is the value of name2 now?") #此时,name=Jack,name2=Taozi。因为第一次name2=name=桃子时,操作过程其实是name2=Taozi,name2=name仅仅是问路的过程,并不是name2→name→Taozi这样子的过程
3.字符编码
计算机二进制的由来
计算机可以简化为电路,有两种状态:通电和断电。我们把通电定义为1,把断电定义为0。
二进制表示数据的方法:
比如说25356用二进制表示11000110000110
字符编码的变动:
ASCII码
*python2解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。*
关于中文
*为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。
GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。
GB2312 支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。2000年的 GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、*文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。
从ASCII、GB2312、GBK 到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。
有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,普通人是很难用到的,通常我们还是用GBK指代中文Windows内码。
以上的字符集都是对ASCII码的扩展,即出现超过127的编码时,就引用GB2312等编码扩展集*
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存…
所以,python2解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:
print "你好,世界"
则会报错:ascii码无法表示中文
应该显示的告诉python解释器,用什么编码来执行源代码,即:
#!/usr/bin/env python
# -*- coding: utf-8 -*- #用于告诉解释器用什么编码来执行
print "你好,世界"
但是python3已默认解释器用UTF_8来编码,所以python3中不需要进行
# -*- coding: utf-8 -*-
4用户输入语句
最简单的用户输入语句:input
input 默认字符串,比较数字大小时,需要将其强制转换成整型数据
# Author:Taozi
username=input('username')
password=input('password')
print(username,password)
用户信息输入及输出语句
第一种info信息输出,采用%s转义字符来引用数据
# Author:Taozi
#input用来进行语句输入 python3中用input python2中使用raw_input
name=input("Please in put your name:")
age=int(input("Please in put your age:")) #integer整型数据 int(input(" ")) 强制将字符串类型转成整型数据input输入语句是字符串形式
# print(type(age),type(str(age))) #type(str( ))转换数据类型
job=input("Please in put your job:")
salary=input("Please in put your salary:")
info=''' #info 信息的意思
--------info of %s--------
Name=%s
Age=%s
Job=%s
Salary=%s
'''%(name,name,age,job,salary) #(%s是字符串(string)的占位符,出来后连接字符的%必须紧连着"""才能识别 %d代表数字 %f代表浮点,可以理解为小数)
print(info)
第二种info,用”.format()“语句来定义元组。
# Author:Taozi
#input用来进行语句输入 python3中用input python2中使用raw_input
name=input("Please in put your name:")
age=int(input("Please in put your age:"))
job=input("Please in put your job:")
salary=input("Please in put your salary:")
info2="""
--------info of {_name}--------
_Name={_name}
_Age={_age}
_Job={_job}
_Salary={_salary}
""".format(_name=name,
_age=age,
_job=job,
_salary=salary)
print(info2)
第三种info,其实和第二种差不多,只不多第三种用顺序表示,{}中的0.1.2.3和”.format()“中的顺序是一致的。不过不建议用这种数据来进行编码,容易混乱。推荐的编码类型为第二种编码格式。
# Author:Taozi
name=input(“Please in put your name:”)
age=int(input(“Please in put your age:”))
job=input(“Please in put your job:”)
salary=input(“Please in put your salary:”)
info3="""
--------info of {0}--------
__Name={0}
__Age={1}
__Job={2}
__Salary={3}
""".format(name,age,job,salary)
print(info3)
关于注释
- 当行注视:# 被注释内容 快捷键 Ctrl+/
- 多行注释:”“” 被注释内容 “”“
- “”” “”“可以表示打印多行。上面info的例子就用到了这一点,info表示”“” “”“中的内容。
- 打印单行时可以用” “或者’ ‘。
5.if……else语句
该语句一般用于判定
# 猜老男孩的年龄,先定义个数字
#猜对了,提示Congratulation,you are right!
#猜大了,提示Think smaller...****
#猜小了,提示Think bigger...
# Author:Taozi
old_boy_age=56 #输入字符串的时候添加引号,输入数字的时候直接输入
guess_age=int(input("guess the age of oldboy:") ) #input 默认字符串,比较数字大小时,需要将其强制转换成整型数据
if guess_age==old_boy_age:
print("Congratulation,you are right!")
elif guess_age>old_boy_age: #elif 相当于else if
print("Think smaller...")
else:
print("Think bigger...")
6.while语句
-python 是以强制缩进作为区分代码块的
-标准是4个空格,tab和4个空格不是一样的
while语句是循环语句,
while 判断条件:(判断条件boolean类型的表达式)
循环体(可以有多行)
避免死循环–>正规代码
# Author:Taozi
count=0
while True: #True 真的意思,属于bool条件,在python中T要大写
print("count",count)
count+=1
if count==1000:
break
上面是简单的while语句。我们来看一下while语句在猜年龄例子中的应用。
# 猜老男孩的年龄,先定义个数字
#猜对了,提示Congratulation,you are right!
#猜大了,提示Think smaller...
#猜小了,提示Think bigger...
#最多可以猜三次,三次都猜错,就退出循环,猜对了也退出循环
old_boy_age=56 #输入字符串的时候添加引号,输入数字的时候直接输入
count=0
while count<3:
guess_age=int(input("guess the age of oldboy:") ) #input 默认字符串
if guess_age==old_boy_age:
print("Congratulation,you are right!")
break #break 跳出循环
elif guess_age>old_boy_age: #elif 相当于else if
print("Think smaller...")
else:
print("Think bigger...")
count += 1
else: #这个else和while语句是并列的,即当while循环正常结束时,就进行本else语句,当while循环中途跳出即break时,就不进行else语句。
print("You have tied too many times...fuck off")
另外一种实例:当三次猜错之后再问是不是还要继续猜,如果要继续,就重新猜
# 猜老男孩的年龄,先定义个数字
#猜对了,提示Congratulation,you are right!
#猜大了,提示Think smaller...
#猜小了,提示Think bigger...
#最多可以猜三次,三次都猜错,就退出循环,猜对了也退出循环
#三次以后询问是不是要继续猜,如果继续猜就在继续就行。
# Author:Taozi
old_boy_age=56 #输入字符串的时候添加引号,输入数字的时候直接输入
count=0
while True: #while是循环语句
if count==3:
answer=input("Do you want to continue?Y or N:")
if answer=="Y":
count=0
guess_age=int(input("guess the age of oldboy:") ) #input 默认字符串
if guess_age==old_boy_age:
print("Congratulation,you are right!")
break #break 跳出循环
elif guess_age>old_boy_age: #elif 相当于else if
print("Think smaller...")
else:
print("Think bigger...")
count += 1
While语句的布尔条件True不能换成<3,换成后,会先判定小于3这个条件,不会执行下面的if count==3的语句
7. for语句
range(10) 返回一个生成器,往往和for循环结合
for 迭代变量 in列表/字典/元组 逐个列表取值
range()函数 生成数列,不包含结尾参数
range(5):一个参数从0开始到5不包含5自己
range(5,15):两个参数从5开始到15不包含15自己
range(5,55,5):三个参数从5开始到55不包含自己,最后的参数5是步长
end=”不换行
for循环的格式
1.for x in range(1,X):
循环体
2.list1 = [1,2,3,4] test_str = ‘hello world’
for item in list1: for item in test_str:
print(item) print(item)
即
for item in ‘序列’: 依此去序列中取出它的元素 (字符串也是一个序列)
print(item) 遍历
3.nums=range(5)
for i in range(5,19,2):
print(i)
简单的for循环
#最简单for循环
for i in range(10): #i默认为0
print('i的值为',i)
#稍复杂点for循环 只打印双数
for i in range(0,10,2): #i默认为0 range(最小值,最大值,步长):
print('i的值为',i)
#for循环加continue
for i in range(0,10): #i默认为0 range(最小值,最大值,步长):
if i<3:
print('i的值为',i)
else:
continue #break 跳出整个循环;continue 跳出本次循环,进行到下一个循环
print('hehe')
以上实例中,#for循环加continue的例子中会i的值会继续的向上加到10,只不过不满足i<3的条件,所以打印不出来,也不会继续打印”hehe”,如果continue编程break,则i的值就不会向上加到10,只会到2就跳出循环。具体可以用Debug调试按钮来看i值得变化。
#for循环套循环
for i in range(10):
print('----------------',i)
for j in range(10):
print(j)
if j>5:
break
上述实例计算的是i的数字从0打印到9,j的数字从0打印到6的过程
实例:猜年龄
猜年龄,猜5次
# 猜老男孩的年龄,先定义个数字
#猜对了,提示Congratulation,you are right!
#猜大了,提示Think smaller...
#猜小了,提示Think bigger...
#最多可以猜三次,三次都猜错,就退出循环,并提示"You have tied too many times...fuck off",猜对了也退出循环```
```
# Author:Taozi
old_boy_age=56 #输入字符串的时候添加引号,输入数字的时候直接输入
for i in range(3): #range()中的数据为猜测的次数,这个实例中for和while循环差不多
guess_age=int(input("guess the age of oldboy:") ) #input 默认字符串
if guess_age==old_boy_age:
print("Congratulation,you are right!")
break #break 跳出循环
elif guess_age>old_boy_age: #elif 相当于else if
print("Think smaller...")
else:
print("Think bigger...")
else: #for循环正常结束时,执行else语句若是for循环中语句断了,则不执行else
print("You have tied too many times...fuck off")
参考资料:https://www.cnblogs.com/alex3714/articles/5465198.html
https://blog.csdn.net/lqian1993/article/details/80114486
上一篇: 让人无语的笑话
下一篇: 我跟女神吃同一个西瓜