Python是啥?

 

      动态解释性的强类型定义语言。(看球不懂,慢慢理解...以下)

      编程语言又有些撒子类型:  编译型、解释型

                                        静态语言、动态语言

                                        强类型定义语言、弱类型定义语言

  

 

编译型:(C/C++)

        Complie:  有一个负责翻译的程序来对源代码进行转换,生成相对应的执行代码

        Complier: 负责编译的程序

        一次性把code转换成机器语言,然后写成可执行文件

 

解释型:(Java,Python)

        如果说编译时一名书本翻译,解释更像一名同声传译

        不断解释,不断执行... ...

 

动态类型语言:(Python Ruby)

        运行期间才检查数据类型

 

静态类型语言:(C/C++,Java)

        数据类型在编译时检查

 

强类型定义语言:

        强制数据类型定义的语言

        如没有强制转换,永远是同个数据类型

 

弱类型定义语言:

        数据类型可以忽略的语言

       一个变量可以赋予不同数据类型的值

 

 

小程序之 Hello World! 



name = "你好,世界"    # Python 3 可以写中文,但是不推荐
print(name)



 

小程序之 用户交互 (Interaction)



python goto类似功能 python有goto语句吗_开发工具

python goto类似功能 python有goto语句吗_java_02

# user input
name = input("name:")
age = input("age:")
job = input("job:")
salary = input("salary:")

# 4 种格式化输出

# Practice 1  格式化输出    forget it
info = '''
-------- info of ''' + name +''' --------
Name: ''' + name + '''
Age; ''' + age + '''
Job: ''' + job + '''
Salary:''' + salary + '''
'''
print(info)


# Practice 2  格式化输出
# in shell,  %s = $

info2 = '''
------- info of %s --------
Name: %s
Age; %s
Job: %s
Salary: %s
''' % (name,name,age,job,salary)
print(info)

# %s  s represents string
# %d  d only works for numbers     Using int() to do transform for numerical variables
# %f   f is floating numbers



# Practice 3 格式化输出     usually use this method

info3 = '''
-------- info of {_name} --------
Name:{_name}
Age:{_age}
Job:{_job}
Salary:{_salary}
'''.format(_name=name,
           _age=age,
          _job=job,
         _salary=salary)
print(info3)



info4 = '''
-------- info of {0} --------
Name:{0}
Age:{1}
Job:{2}
Salary:{3}
'''.format(name, age, job, salary)

print(info4)


View Code


 

getpass: 输入密码时,如想不可见,可用它

               但python自带IDE(Integrated Development Environment)终端不支持隐藏回显

               用windows下的cmd就OK~



import getpass

_username = 'momo'
_password = 'abc123'
username = input("username:")
password = getpass.getpass("password:")   #encrypt 
# not working well in Pycharm but works in python



 

 

小程序之 猜年龄

流程: 1.定义一个年龄

        2.用户去猜测

        3.判断是否正确

---make only one guess---

if else:




python goto类似功能 python有goto语句吗_数据类型_03

python goto类似功能 python有goto语句吗_java_02

age_of_oldboy = 56


# can only make one guess

guess_age =int(input("guess age:"))    # input 默认是string, need to use int()

if guess_age == age_of_oldboy:
    print("yes, you got it!")
elif guess_age > age_of_oldboy:
    print("think smaller!")
else:
    print("think bigger!")


View Code


 

---make only 3 guesses---

while:




python goto类似功能 python有goto语句吗_数据类型_03

python goto类似功能 python有goto语句吗_java_02

age_of_oldboy = 56

count = 0
while count < 3:    # make only 3 guesses
    guess_age =int(input("guess age:"))
    if guess_age == age_of_oldboy:
       print("yes, you 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...fuck off")


View Code


while True:




python goto类似功能 python有goto语句吗_数据类型_03

python goto类似功能 python有goto语句吗_java_02

age_of_oldboy = 56

count = 0
while True:
    if count == 3:   # only make 3 guesses
       print("you have tried too many times...fuck off")
       break
    guess_age =int(input("guess age:"))
    if guess_age == age_of_oldboy:
        print("yes, you got it!")
        break
    elif guess_age > age_of_oldboy:
        print("think smaller!")
    else:
        print("think bigger!")
    count += 1


View Code


for:




python goto类似功能 python有goto语句吗_数据类型_03

python goto类似功能 python有goto语句吗_java_02

age_of_oldboy = 56

for i in range(3):  # make only 3 guesses
    guess_age =int(input("guess age:"))
    if guess_age == age_of_oldboy:
       print("yes, you got it!")
       break
    elif guess_age > age_of_oldboy:
       print("think smaller!")
    else:
       print("think bigger!")
else:
    print("you have tried too many times...fuck off")


View Code


 

---keep guessing---




python goto类似功能 python有goto语句吗_数据类型_03

python goto类似功能 python有goto语句吗_java_02

age_of_oldboy = 56

count = 0
while count < 3:  
    guess_age =int(input("guess age:"))
    if guess_age == age_of_oldboy:
       print("yes, you got it!")
       break
    elif guess_age > age_of_oldboy:
       print("think smaller!")
    else:
       print("think bigger!")
    count += 1
    if count == 3:
        countine_confirm = input("do you wanna keep guessing?")
        if countine_confirm != 'n':
            count = 0


View Code


 

 

 

 

 

                                      ★★★★★添补小知识★★★★★

 

1.comments

   两种方法:# comments          

                   '''comments'''/"""comments"""

     PS: ''' comments'''可以print多行;

             但是 ' 和 " 只能print单行

2.解释器



# !/usr/bin/ python



 告诉操作系统执行这个脚本时,调用/usr/bin下的python解释器



# !/usr/bin/env python



防止python没装在默认的/usr/bin 路径里,会到env设置里查找python的安装路径,再调用对应的路径下的解释器程序

 

3.编码申明



#-*- coding uft-8 -*-



可变长的编码集

 

4.Define variables



# Good try
gf_of_oldboy = "Chen rong hua"
GFOfOldboy = "Chen rong hua"        # called hump hhhhh 23333
 __________name = "Chen rong hua"

# non sense
2name = ""
a
b

# Define constants(in Capital)  eg. PIE



Important!!!



name = "Momo"
name2 = name

print("My name is",name,name2)

name = "PaoChe Ge"
print(name,name2)  # name2 does not change



python goto类似功能 python有goto语句吗_开发工具_13

 

5. int(), str()  



# convert string into integer
age = int(input("age:"))

# convert integer into string  
print(str(age))



 

6. while, for 循环

while 循坏是地老天荒

例子:



# while True
count = 0
while True:
    print("count:",count)
    count = count + 1      #  same as   count += 1
    if count == 1000:
        break

# for
for i in range(10):   # 0-10,0 gap
    print('-----------',i)
    for j in range(10):
        print(j)
        if j > 5:
            break



 

continue                VS.                   break

不往下走                                         不往下走

进入下一个loop                               跳出整个loop

 

7.bytes类型 (字节数据类型)

文本总是Unicode, 由str类型表示
二进制数据由bytes类型表示 (视频,音频文件)

 

8bit = byte(字节)
1024 byte = 1kbyte
1024kbyte = 1mbyte
1024mb = 1gb
1024gb = 1T

 

string --> encode --> bytes

bytes --> decode --> string

eg.
>>> '€20'.encode('utf-8')
b'\xe2\x82\xac20' # b开头代表二进制
>>> b'\xe2\x82\xac20' . decode('utf-8)
'€20'



msg = "我爱北京天安门"
print(msg)
print(msg.encode(encoding="utf-8").decode(encoding="utf-8"))



 

8. 三元运算

result = 值1 if 条件 else 值2    (一句话搞定)

9.进制

python goto类似功能 python有goto语句吗_python_14