一段简单的代码让你了解python3.0的基础语法

建议对照下文输出结果,进行查看:

import operator
import math
print ('Hello,World')

100
0xff00
1.2e-5
True
False

print(45678 + 0x12fd2)
print("Learn Python in imooc")
print(100 < 99)
print(0xff == 255)

print("100 + 200 =",100 + 200)

#注释

a = 100
print(a)


# 如果字符串本身包含'怎么办?比如我们要表示字符串 I'm OK ,这时,可以用" "括起来表示:
#
# "I'm OK"
# 类似的,如果字符串包含",我们就可以用' '括起来表示:
#
# 'Learn "Python" in imooc'
# 如果字符串既包含'又包含"怎么办?
#
# 这个时候,就需要对字符串的某些特殊字符进行“转义”,Python字符串用\进行转义。
# 'Bob said \"I\'m OK\".'
# \n 表示换行
# \t 表示一个制表符
# \\ 表示 \ 字符本
#
# 但是r'...'表示法不能表示多行字符串,也不能表示包含'和 "的字符串(为什么?)
#
# 如果要表示多行字符串,可以用r'''...'''表示:

# 如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释
# -*- coding: utf-8 -*-

# Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
# 由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据:
list = ['love', 100, True];
listRange = range(0,5); #范围大于等于0小于5
# Python之正序访问list,0 这个索引来表示第一个元素
print(list[0])
# Python之倒序访问list,-1 这个索引来表示最后一个元素
print(list[-1])
# Python从list添加新元素
list.append('you')
print(list)
list.insert(1,'xm')
print(list)
# Python从list删除元素
list.pop()
print(list)
list.pop(2)
print(list)

# tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。
# 创建tuple和创建list唯一不同之处是用( )替代了[ ]。
t1 = ('ss','dd','ff')
t2 = ()
# 单元素tuple
t3 = (4,)

# Python代码的缩进规则。具有相同缩进的代码被视为代码块,
# 缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。

a = 9
if a > 10:
    print('a > 10 is TRUE')
elif a < 6:
    print('a > 10 is FALSE')
else:
    print('a > 10 is NONE')

for value in list:
    print(value)

x_total = 0
x_value = 1
while True:
    x_total += x_value
    x_value += 1
    if x_value > 100:
        break
print(x_total)

sum = 0
x = 0
while True:
    x = x + 1
    if x > 100:
        break
    if x % 2 == 0:
        continue
    sum += x
print(sum)


# dict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的。
dic = {
    'nana': 10,
    'doudou': 20,
    'huahua': 30
}
print('dicLength =',len(dic))

print(dic['doudou'])
print(dic.get('nana','没值'))
print(dic.get('haha','haha没值'))

d = {
    95: 'Adam',
    85: 'Lisa',
    59: 'Bart'
}
d[72] = 'Paul'
print(d.get(95))
for key in d:
    print(key,':',d[key])


# set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。
# 创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素:
s = set(['Adam','Lisa','Bart','Paul'])
print('Lisa' in s)

ss = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for sstr in L:
    if sstr in ss:
        ss.remove(sstr)
    else:
        ss.add(sstr)
print(ss)

print(abs(-20))#绝对值

# import operator       #首先要导入运算符模块
# operator.gt(1,2)      #意思是greater than(大于)
# operator.ge(1,2)      #意思是greater and equal(大于等于)
# operator.eq(1,2)      #意思是equal(等于)
# operator.le(1,2)      #意思是less and equal(小于等于)
# operator.lt(1,2)      #意思是less than(小于)


def sum_request(L):
    sum = 0
    for i in L:
        sum += i * i
    return sum


print(sum_request([1, 2, 3, 4, 5]))
print(sum_request([-5, 0, 5, 15, 25]))


def quadratic_equation(a, b, c):
    return (-b + math.sqrt(b**2 - 4*a*c))/(2 * a),(-b - math.sqrt(b**2 - 4*a*c))/(2 * a)
print(quadratic_equation(2, 3, 0))

# int()函数的第二个参数是转换进制,如果不传,默认是十进制 (base=10),如果传了,就用传入的参数。
print(int('123'))
print(int('123', 8))

# 函数的默认参数的作用是简化调用,你只需要把必须的参数传进去。但是在需要的时候,又可以传入额外的参数来覆盖默认参数值。
# 由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面:
# # OK:
# def fn1(a, b=1, c=2):
#     pass
# # Error:
# def fn2(a=1, b):
#     pass

# 如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数:
def changeValue(*value):
    print(value)
# 可变参数的名字前面有个 * 号,我们可以传入0个、1个或多个参数给可变参数,
# Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args 看成一个 tuple 就好了。
changeValue(123)
changeValue(123,'dd')
changeValue(123,'dd',False)

# 对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符
listCut = ['aa','bb','cc','dd','ee','ff','gg','hh','ii']
print(listCut[0:3])#L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。
print(listCut[:3])#如果第一个索引是0,可以省略
print(listCut[:])#只用一个 : ,表示从头到尾
print(listCut[1:3])#可以从索引1开始,取出2个元素出来
print(listCut[0:6:4])#切片操作还可以指定第三个参数:第三个参数表示每4个取一个
# 把list换成tuple,切片操作完全相同,只是切片的结果也变成了tuple。
# 对于list,既然Python支持L[-1]取倒数第一个元素,那么它同样支持倒数切片
print(listCut[-3:])
print(listCut[:-3])
# 字符串 'xxx'和 Unicode字符串 u'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串:

def firstCharUpper(s):
    return s[:1].upper() +s[1:]

print(firstCharUpper('hello'))

# 迭代操作就是对于一个集合,无论该集合是有序还是无序,我们用 for 循环总是可以依次取出集合的每一个元素。
#
# 注意: 集合是指包含一组元素的数据结构,我们已经介绍的包括:
# 1. 有序集合:list,tuple,str和unicode;
# 2. 无序集合:set
# 3. 无序集合并且具有 key-value 对:dict
# 迭代与按下标访问数组最大的不同是,后者是一种具体的迭代实现方式,而前者只关心迭代结果,根本不关心迭代内部是如何实现的


# Python中,迭代永远是取出元素本身,而非元素的索引。
# 对于有序集合,元素确实是有索引的。有的时候,我们确实想在 for 循环中拿到索引,怎么办?
# 方法是使用 enumerate() 函数:
for index,name in enumerate(listCut):
    print(index,'-',name)

# zip()函数可以把两个 list 变成一个 list:
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for index, name in zip(range(1, len(L) + 1), L):
    print(index, '-', name)

# 迭代dict的value
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
for value in d.values():
    print(value)
# 迭代dict的key和value
for key,value in d.items():
    print(key, '-', value);

# 要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11):
#
# >>> range(1, 11)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循环:
#
# >>> L = []
# >>> for x in range(1, 11):
# ...    L.append(x * x)
# ...
# >>> L
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# 但是循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list:
#
# >>> [x * x for x in range(1, 11)]
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]


# d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
# def generate_tr(name, score):
#     if score < 60:
#         return '<tr><td>%s</td><td style="color:red">%s</td></tr>' % (name, score)
#     return '<tr><td>%s</td><td>%s</td></tr>' % (name, score)
#
# tds = [generate_tr(name, score) for name, score in d.items()]
#
# print('<table border="1">')
# print('<tr><th>Name</th><th>Score</th><tr>')
# print('\n'.join(tds))
# print('</table>')

# 列表生成式的 for 循环后面还可以加上 if 判断。例如:
# #
# # >>> [x * x for x in range(1, 11)]
# # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# # 如果我们只想要偶数的平方,不改动 range()的情况下,可以加上 if 来筛选:
# #
# # >>> [x * x for x in range(1, 11) if x % 2 == 0]
# # [4, 16, 36, 64, 100]
# # 有了 if 条件,只有 if 判断为 True 的时候,才把循环的当前元素添加到列表中。

def toUppers(L):
    return [str.upper(value) for value in L if isinstance(value, str) == True]

print(toUppers(['Hello', 'world', 101]))

print([m * 100 + n * 10 + k for m in range(1,10) for n in range(10) for k in range(10) if m == k])

 

输出结果:

Hello,World
123456
Learn Python in imooc
False
True
100 + 200 = 300
100
love
True
['love', 100, True, 'you']
['love', 'xm', 100, True, 'you']
['love', 'xm', 100, True]
['love', 'xm', True]
a > 10 is NONE
love
xm
True
5050
2500
dicLength = 3
20
10
haha没值
Adam
95 : Adam
85 : Lisa
59 : Bart
72 : Paul
True
{'Bart'}
20
55
900
(0.0, -1.5)
123
83
(123,)
(123, 'dd')
(123, 'dd', False)
['aa', 'bb', 'cc']
['aa', 'bb', 'cc']
['aa', 'bb', 'cc', 'dd', 'ee', 'ff', 'gg', 'hh', 'ii']
['bb', 'cc']
['aa', 'ee']
['gg', 'hh', 'ii']
['aa', 'bb', 'cc', 'dd', 'ee', 'ff']
Hello
0 - aa
1 - bb
2 - cc
3 - dd
4 - ee
5 - ff
6 - gg
7 - hh
8 - ii
1 - Adam
2 - Lisa
3 - Bart
4 - Paul
95
85
59
Adam - 95
Lisa - 85
Bart - 59
['HELLO', 'WORLD']
[101, 111, 121, 131, 141, 151, 161, 171, 181, 191, 202, 212, 222, 232, 242, 252, 262, 272, 282, 292, 303, 313, 323, 333, 343, 353, 363, 373, 383, 393, 404, 414, 424, 434, 444, 454, 464, 474, 484, 494, 505, 515, 525, 535, 545, 555, 565, 575, 585, 595, 606, 616, 626, 636, 646, 656, 666, 676, 686, 696, 707, 717, 727, 737, 747, 757, 767, 777, 787, 797, 808, 818, 828, 838, 848, 858, 868, 878, 888, 898, 909, 919, 929, 939, 949, 959, 969, 979, 989, 999]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值