用中文写Python程序代码

        网上搜“python支持中文吗”,答案基本上是:“python是没有中文版的”,或者“Python的发行版至今尚未包括任何中文支持模块”之类,总之“不支持中文”。
        但是基于以下知识和事实,还是可以测试用中文编写Python程序。
一、中文变量名
        Python3.x 已经支持全面 Unicode 编码,支持使用中文作为变量名。那是不是所有中文都可以作为变量名呢?
        先来看一下Python的测试、判断字符串类型的测试方法:isalpha、isdigit、isdecimal、isnumeric、isalnum、isidentifier,本篇介绍Python字符串测试用例的字符列表strVar如下:
strVar=['ABCabc',       # 纯字母
         '123456',           # 纯数字
         '1.2345',            # 带小数点纯数字
         '①②③',            # 带圈的数字编号
         '⑴⑵⑶',            # 带括号的数字编号(中文)
         '⒈⒉⒊',            # 带点的数字编号(中文)
         '一二三',            # 汉字数字(中文)
         '壹贰叁',            # 汉字大写数字(中文)
         'ⅠⅡⅨ',            # 汉字罗马数字(中文)
         '129',            # 全角数字
         'Aa汉字',           # 字母+汉字
         '①2345',           # 数字编号与数字混合
         'ABab②',          # 字母+数字编号
         'ABab12',          # 字母+数字
         'Aa汉12',           # 字母汉字+数字
         '¡¢£¤®µ',           # 扩展ASCII(128~254)、ISO 8859-1字符
         '%#@$&,']         # 特殊符号
在本例中的字符串测试采用表1中的各种方法,对列表strVar中的每一个元素(字符串)进行测试,并输出对应的测试结果。所有测试结果汇总于表1中。测试程序如下:

for chrt in strVar:
     print(chrt, chrt.方法,end='\t')


        从表1中可以发现:带圈数字、带括号数字、带点数字不能出现在变量名中,全角数字与数字相同不能出现在变量首部。
二、函数是对象
        秉承着一切皆对象的理念,函数也是一个对象,具有属性(可以使用dir()查询)。作为对象,它还可以赋值给其它对象名,或者作为参数传递。

        本篇举二个例子。  

【示例1】输入三角形的三条边长,计算三角形的面积。根据海伦公式则三角形的面积公式,令p=(a+b+c)/2,则面积:


其中p为半周长
一般情况下的编写的程序如下:

a = float(input('输入三角形第一边长: ')) 
b = float(input('输入三角形第二边长: ')) 
c = float(input('输入三角形第三边长: ')) 
# 计算半周长
s = (a + b + c) / 2 
# 计算面积 
area = (s*(s-a)*(s-b)*(s-c)) ** 0.5 
print('三角形面积为 %0.2f' %area)

用中文编写的程序如下:

from math import sqrt as 开平方
输入 = input
输出 = print
对 = True
错 = False
转浮点数 = float

第一边长 = 转浮点数(输入('输入三角形第一边长: ')) 
第二边长 = 转浮点数(输入('输入三角形第二边长: ')) 
第三边长 = 转浮点数(输入('输入三角形第三边长: ')) 
半周长 = (第一边长 + 第二边长 + 第三边长) / 2 
面积 = 开平方(半周长*(半周长-第一边长)*(半周长-第二边长)*(半周长-第三边长)) 
输出('三角形面积为%0.2f' % 面积)

运行结果:

 【示例2】使用while语句实现不定次循环时输出循环次数。使用while语句,实现猜数字游戏,要求每次只有5次机会,当机会用完,还没有猜对时,结束程序并且提示“您的机会已用完。”
一般情况下的编写的程序如下:

import random                                   # 导入随机数模块

def eq(value, number):
    if value > number:
        print('您猜大了!')
        return False
    elif value < number:
        print('您猜小了!')
        return False
    else:
        print('恭喜您,猜对了!')
        return True

number = random.randint(1, 100)                 # 生成1~100之间的随机整数
count = 0 #次数
while count < 5:                                # 条件循环
    count += 1
    value = int(input('请输入100以内的数字:'))   # 输入数字
    if eq(value, number):
        break                                   # 猜对退出循环
else:
    print('您的机会已用完。')

用中文编写的程序如下:

from random import randint as 随机整数
输入 = input
输出 = print
对 = True
错 = False
取整 = int

def 相等否(数1, 数2):
    if 数1 < 数2:
        输出('您猜小了')
        return 错
    if 数1 > 数2:
        输出('您猜大了')
        return 错
    if 数1 == 数2:
        输出('恭喜您,猜对了!')
        return 对

被猜数 = 随机整数(1, 100)  # 生成1~100之间的随机整数
计数 = 0
while 计数 < 5:           # 条件循环
    计数 += 1
    猜测值 = 取整(输入('请输入100以内的数字:'))
    if 相等否(猜测值, 被猜数):
        break             # 猜对退出循环
else:
    输出('您的机会已用完。')

运行结果:

猜你喜欢

转载自blog.csdn.net/hz_zhangrl/article/details/130373689