python3测试工具开发快速入门教程2数据结构1变量与赋值

语法基础

解释器像简单的计算器:可以输入表达式,它会返回值。表达式语法很简单:运算符 + , - , * 和 / 与其它语言一样(例如Pascal或C);括号用于分组。例如:

>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5.0*6) / 4
5.0
>>> 8 / 5.0
1.6

整数(例如2、4、20 )的类型是 int,带有小数部分的数字(例如5.0、1.6)的类型是 float。

除法(/)永远返回浮点数。地板除使用 // 运算符;要计算余数你可以使用 %。

>>> 17 / 3  # classic division returns a float
5.666666666666667
>>>
>>> 17 // 3  # floor division discards the fractional part
5
>>> 17 % 3  # the % operator returns the remainder of the division
2
>>> 5 * 3 + 2  # result * divisor + remainder
17

"**"表示乘方:

>>> 5 ** 2  # 5 squared
25
>>> 2 ** 7  # 2 to the power of 7
128

在Python中,名称( 标识符)只能由字母、数字和下划线(_)构成,且不能以数字打头。因此 Plan9 是合法的变量名,而 9Plan 不是。在某种程度上说,标识符命名规则基于Unicode标准,详情请参阅“Python语言参考手册”(https://docs.python.org/3/reference/lexical_analysis.html)。也就是说中文变量名也是可以的。

>>> 你好 = '你好'
>>> print(你好)
你好

等号( '=' )用于给变量赋值:

>>> width = 20
>>> height = 5*9
>>> width * height900

同一值可以同时赋给几个变量:

>>> x = y = z = 0  # Zero x, y and z
>>> x
0
>>> y
0
>>> z
0

变量在使用前必须"定义"(赋值),否则会出错:

>>> n
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'n' is not defined

支持浮点数,混合计算时会自动整型转为浮点数:

>>> 4 * 3.75 - 1
14.0

交互模式中,最近表达式的值赋给变量 _ 。更方便连续计算把Python当作桌面计算器,例如:

>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06

此变量对于用户是只读的。

除了int和float,还有fractions(https://docs.python.org/2/library/fractions.html#fractions.Fraction)和decimal(https://docs.python.org/2/library/decimal.html#decimal.Decimal)。

下面的复数部分很少使用,通常可以不阅读。

支持复数,虚数带有后缀j或J,有非零实部的复数写为(real+imagj),或者用complex(real, imag)函数创建。

>>> 1j * 1J
(-1+0j)
>>> 1j * complex(0,1)
(-1+0j)
>>> 3+1j*3
(3+3j)
>>> (3+1j)*3
(9+3j)
>>> (1+2j)/(1+1j)
(1.5+0.5j)

复数的实部和虚部总是记为两个浮点数。要从复数z中提取实部和虚部,使用z.real和 z.imag。

>>> a=1.5+0.5j
>>> a.real
1.5
>>> a.imag
0.5

浮点数和整数转换函数(float(), int()和long())不适用于复数。没有方法把复数转成实数。函数abs(z)用于取模(为浮点数)或z.real取实部:

>>> a=3.0+4.0j
>>> float(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't convert complex to float
>>> a.real
3.0
>>> a.imag
4.0
>>> abs(a)  # sqrt(a.real**2 + a.imag**2)
5.0

变量与赋值

自己实现求最大值。

代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Author:    xurongzhong#126.com wechat:pythontesting qq:37391319
# 技术支持 钉钉群:21745728(可以加钉钉pythontesting邀请加入) 
# qq群:144081101 591302926  567351477
# CreateDate: 2018-6-12 
# mymax2.py
# Write max function without built-in max().

def mymax2(x, y):
    """Return larger of x and y."""
    largest_so_far = x
    if y > largest_so_far:
        largest_so_far = y
    return largest_so_far
    
def main():
    print("MyMax: Enter two values to find the larger.")
    first = float(input("First value: "))
    second = float(input("Second value: "))
    print("The larger value is", mymax2(first, second))
    
main()

执行:

$ python3 mymax2.py 
MyMax: Enter two values to find the larger.
First value: 3
Second value: 89
The larger value is 89.0

注意赋值是=,判断是否等于是==。

实际上python的内置函数max已经很好的实现了这个功能。数值相关的内置函数如下:

方法 功能
abs(x) 绝对值。
max(x, y) 最大值
min(x, y) 最小值
pow(x, y) x的次方

参考资料:
[雪峰磁针石博客]python3标准库-中文版2:内置函数

输入输出的内置函数

方法 功能
input(prompt) 打印可选prompt并将用户输入的值作为字符串返回。
print(value1, value2, ...) 打印value1, value2等,以空格分隔。

python的基础数据类型有bool、float、int、str

类型 描述
bool True或False
float 带小数点浮点数值,如3.141,-23.8,7.0或5.92e7 = 5.92×10 7
int 如847,-19或7
str 单,双或三引号内的字符串。如“abc”,“它在这里!”或文档字符串等

这四种类型同时还有可以进行类型转换的内置函数。

  • 学英文、练python题目:

计算机等级考试python二级 浙江高考 全国中学生奥赛模拟题

Write a function grade(score) to return the corresponding letter grade for a given numerical score. That is, for 90 or above, return the string "A" , for 80 or above, return "B", etc. Include a main() to test your function.

计算

计算投资收益

代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Author:    xurongzhong#126.com wechat:pythontesting qq:37391319
# 技术支持 钉钉群:21745728(可以加钉钉pythontesting邀请加入) 
# qq群:144081101 591302926  567351477
# CreateDate: 2018-6-12 
# balance_table.py
# Print table of account balances earning interest.

def balance(p, r, t):
    """Return new balance using compound annual interest."""
    return p*(1 + r)**t

def main():
    print("Calculates compound interest over time.")
    principal = float(input("Principal: "))
    rate = float(input("Interest rate (as a decimal): "))
    years = int(input("Number of years: "))
    for year in range(years + 1):
        print(year, balance(principal, rate, year))
    
main()

执行:

$ python3 balance_table.py 
Calculates compound interest over time.
Principal: 1000
Interest rate (as a decimal): 0.055
Number of years: 5
0 1000.0
1 1055.0
2 1113.0249999999999
3 1174.2413749999998
4 1238.8246506249998
5 1306.9600064093747
In [1]: 17/5 # 除
Out[1]: 3.4

In [2]: 17//5 #整除
Out[2]: 3

优先级 运算符
**
*, /, //, %
+, -

math模块还有一些增强:

函数 功能
sqrt(x) x的平方根
floor(x) 地板:小于或等于x的最大整数
ceil(x) 天花板:大于或等于x最小的整数
log(x) 自然对数
exp(x) 指数
pi 指数

符合运算符

优先级 运算符
+= x = x + y

类似的有-=、*=、/=、//=、 %=

>>> a = 10
>>> a -= 1
>>> a
9
>>> a  += 2 * 3 - 1
>>> a
14
>>> a //=2
>>> a
7
>>> a %=2
>>> a
1

内置函数bin、hex、int可用于进制转换,请在[雪峰磁针石博客]python3标准库-中文版2:内置函数学习。后面的习题会覆盖这3个函数。

习题

1.python3.6+中下面哪个对于int内置函数的使用不合法

A. int('16',base=10) B. int('1.6') C. int(1.6) D. int('16_6',base=10)

  1. hex(25)、 int("0x1C", 16)、int("0b10101", 2)、int("0x1C", 16)的返回值各是多少?

参考资料

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,444评论 4 365
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,867评论 1 298
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,157评论 0 248
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,312评论 0 214
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,673评论 3 289
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,802评论 1 223
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,010评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,743评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,470评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,696评论 2 250
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,187评论 1 262
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,538评论 3 258
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,188评论 3 240
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,127评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,902评论 0 198
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,889评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,741评论 2 274

推荐阅读更多精彩内容