欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Day1---Hello,World!-----继续加油,明天完成作业编程

程序员文章站 2022-06-21 18:26:27
...

我使用的是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。

二进制表示数据的方法:
Day1---Hello,World!-----继续加油,明天完成作业编程
比如说25356用二进制表示11000110000110
Day1---Hello,World!-----继续加油,明天完成作业编程

字符编码的变动:

ASCII码

*python2解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。*

Day1---Hello,World!-----继续加油,明天完成作业编程
关于中文

*为了处理汉字,程序员设计了用于简体中文的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值得变化。
Day1---Hello,World!-----继续加油,明天完成作业编程

#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